All Products
Search
Document Center

ApsaraDB RDS:Cara memperkecil log transaksi untuk ApsaraDB RDS for SQL Server

Last Updated:Jun 18, 2026

Topik ini menjelaskan cara memperkecil log transaksi instans ApsaraDB RDS for SQL Server baik saat ruang log mencukupi maupun tidak mencukupi.

Catatan
  • Sebelum melakukan operasi berisiko, seperti memodifikasi instans atau data, pastikan instans memiliki kemampuan disaster recovery dan fault tolerance yang andal untuk melindungi data Anda.

  • Jika Anda memodifikasi konfigurasi atau data instans, seperti instans ECS atau instans ApsaraDB RDS, kami menyarankan membuat snapshot atau mengaktifkan fitur seperti log backup untuk instans ApsaraDB RDS tersebut.

  • Jika Anda telah memberikan izin atau mengirimkan informasi keamanan, seperti username dan password, di platform Alibaba Cloud, kami menyarankan segera menggantinya.

Ruang log mencukupi

Jika ruang log mencukupi, Anda dapat menggunakan fitur Backup and shrink transaction logs di konsol ApsaraDB RDS. Fitur ini secara otomatis melakukan backup log dan memperkecil ukuran file log transaksi.

Penting
  • Saat Anda memperkecil log transaksi, sistem secara otomatis melakukan backup log. Hal ini mengarsipkan log transaksi sehingga meningkatkan kemungkinan pembersihan log lokal berhasil.

  • Sebelum memperkecil log transaksi, periksa status tunggu penggunaan ulang log (log reuse wait) database.

    • Jika statusnya NOTHING, Anda dapat memperkecil log. Ukuran yang dapat diperkecil tergantung pada ukuran virtual log file (VLF) yang dapat digunakan ulang di akhir log transaksi. Jika transaksi aktif mencegah VLF di akhir log ditandai sebagai dapat digunakan ulang, Anda mungkin perlu melakukan log backup lagi. Tunggu hingga transaksi aktif selesai, lalu periksa kembali status tunggu penggunaan ulang hingga menjadi NOTHING.

    • Jika statusnya LOG_BACKUP, operasi perkecilan mungkin gagal karena adanya transaksi aktif. Anda mungkin perlu melakukan operasi perkecilan beberapa kali agar berhasil.

    Anda dapat membuka halaman Database Management > View Details untuk melihat status penggunaan ulang file log (log_reuse_wait_desc).

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID-nya.

  2. Di panel navigasi kiri, klik Backup and Restoration.

  3. Klik Backup and shrink transaction logs, lalu klik OK.

  4. Setelah operasi perkecilan selesai, buka halaman Monitoring and alerts instans untuk melihat penggunaan ruang log terbaru.

    Di tab Standard Monitoring, temukan grafik Instance Space dan lihat metrik sqlserver.log_size untuk memastikan ruang log telah berkurang.

FAQ

  • Q: Apa yang harus saya lakukan jika tombol Backup and shrink transaction logs tidak merespons?

  • A: Masalah ini biasanya terjadi karena alasan berikut:

    • Status tunggu penggunaan ulang log tidak memenuhi kondisi perkecilan: Jika status log_reuse_wait_desc database bukan NOTHING, virtual log file (VLF) dalam file log tidak dapat ditandai sebagai dapat digunakan ulang, sehingga mencegah operasi perkecilan. Anda dapat membuka halaman Database Management > View Details untuk melihat status penggunaan ulang file log (log_reuse_wait_desc). Ulangi operasi setelah status menjadi NOTHING.

    • Transaksi aktif mencegah pelepasan VLF di akhir log: Meskipun status log_reuse_wait_desc adalah NOTHING, operasi perkecilan tidak dapat melepaskan ruang jika transaksi aktif sedang menggunakan VLF di akhir log. Tunggu hingga transaksi aktif selesai, lakukan log backup lagi, lalu klik Backup and shrink transaction logs.

Ruang log tidak mencukupi

Jika server database melaporkan bahwa "transaction log is full", Anda tidak dapat memperkecil log transaksi dari konsol. Anda harus menjalankan pernyataan SQL untuk melakukannya. Memperkecil log transaksi memerlukan sebagian ruang log. Saat log penuh, satu-satunya opsi adalah memutus rantai log dengan menjalankan perintah tertentu.

Sebelum memulai

  • Operasi berikut hanya untuk situasi darurat. Kami menyarankan Anda terlebih dahulu memperluas disk space.

  • Secara umum, kami tidak menyarankan mengubah model pemulihan database menjadi SIMPLE. Tindakan ini memutus rantai backup ApsaraDB RDS dan menyebabkan semua tugas point-in-time restore berikutnya gagal.

  • Untuk instans edisi High-availability (HA), Anda harus menonaktifkan database mirroring sebelum mengubah model pemulihan database.

Peringatan

Menjalankan operasi ini dalam keadaan darurat berarti Anda mengakui dan menerima risiko yang terkait. Lanjutkan dengan hati-hati.

Prosedur

Instans edisi Basic

-- Atur model pemulihan database ke SIMPLE untuk memutus rantai log database.
ALTER DATABASE [DatabaseName] SET RECOVERY SIMPLE;

Instans edisi High-availability (HA)

Untuk instans edisi High-availability (HA), database mirroring aktif, sehingga memblokir operasi ALTER DATABASE langsung. Ikuti langkah-langkah berikut:

-- Nonaktifkan database mirroring terlebih dahulu.
ALTER DATABASE [DatabaseName] SET PARTNER OFF;
GO
-- Atur model pemulihan database ke SIMPLE untuk memutus rantai log database.
ALTER DATABASE [DatabaseName] SET RECOVERY SIMPLE;
-- Database mirroring dipulihkan secara otomatis. Tidak diperlukan pengaturan manual.

Meskipun sistem segera mengatur ulang model pemulihan ke FULL dan tidak mengubahnya secara permanen menjadi SIMPLE, perintah tersebut tetap berhasil memutus rantai log. Error yang muncul tidak memengaruhi hasil ini dan dapat diabaikan.

Msg 50000, Level 16, State 1, Procedure ******, Line 46
Login User [Test11] can't change database [TestDb] recovery model.
Msg 3609, Level 16, State 2, Line 2
The transaction ended in the trigger. The batch has been aborted.

Pemecahan Masalah

  • Q: Setelah saya menjalankan perintah ALTER DATABASE [TestDb] SET RECOVERY SIMPLE, muncul pesan error seperti berikut. Bagaimana cara memperbaikinya?

    Msg 1468, Level 16, State 2, Line 1
    The operation cannot be performed on database "zhttestdb" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session or in an availability group.
    Msg 5069, Level 16, State 1, Line 1
    ALTER DATABASE statement failed.
  • A: Instans edisi High-availability (HA) ApsaraDB RDS for SQL Server menggunakan database mirroring, yang melarang operasi ALTER pada model pemulihan. Ikuti Prosedur untuk mengatasi masalah ini.

Referensi