Deskripsi
Instance ApsaraDB RDS for SQL Server Anda mungkin kehabisan ruang karena serangan seperti pernyataan SQL dan data eksternal. Untuk mencegah kehilangan data, ApsaraDB RDS for SQL Server secara otomatis mengunci instance tersebut. Setelah disk terkunci, operasi penulisan akan gagal. Ketika instance terkunci secara otomatis akibat ruang penuh, status berjalan di konsol menampilkan informasi berikut.
Penyebab
Terdapat tiga alasan utama yang menyebabkan ruang pada instance SQL Server penuh:
Penggunaan File Log tinggi.
Penggunaan File Data tinggi.
Penggunaan file sementara tinggi.
Solusi
Alibaba Cloud mengingatkan Anda bahwa:
Ketika melakukan operasi berisiko seperti memodifikasi konfigurasi instance atau data, pastikan untuk memeriksa kemampuan pemulihan bencana dan toleransi kesalahan dari instance guna memastikan keamanan data.
Sebelum memodifikasi konfigurasi dan data instance, termasuk tetapi tidak terbatas pada instance ECS dan RDS, disarankan untuk membuat snapshot atau mengaktifkan pencadangan log RDS.
Jika Anda telah memberikan otorisasi atau mengirimkan informasi keamanan seperti akun login dan kata sandi di Konsol Manajemen Alibaba Cloud, segera modifikasi informasi tersebut.
Lihat Penggunaan Ruang
Metode 1
Periksa penggunaan ruang pada halaman pemantauan konsol RDS. Untuk informasi lebih lanjut, lihat lihat data pemantauan sumber daya dan mesin.
Tabel berikut menjelaskan parameter dalam konvensi penamaan.
Parameter | Deskripsi |
Ukuran ruang disk yang digunakan. | Ukuran file data dan file log untuk semua database pengguna. |
Ukuran data. | Ukuran file data (file mdf dan ndf) untuk semua database pengguna. |
Ukuran ruang log yang digunakan. | File log (file ldf) untuk semua database pengguna. |
Ukuran file sementara | Ukuran semua file mdf, ndf, dan ldf untuk tempdb. |
Penggunaan ruang File Sistem | File data dan file log untuk database master, msdb, dan model, serta ukuran beberapa file sistem (log kesalahan, file dll, dll.) di bawah direktori instance SQL Server. |
Metode 2
Jalankan pernyataan SQL untuk melihat ukuran file data (file mdf dan ndf) dan file log (file ldf) di semua database. Untuk informasi lebih lanjut, lihat RDS for SQL Server cara melihat ruang penyimpanan yang digunakan oleh instance, database, dan tabel.
Memecahkan Masalah Ruang Penuh dan Penguncian Otomatis
Tingkatkan Ruang Penyimpanan Sebuah Instance
Anda dapat membuka kunci sebuah instance setelah meningkatkan ruang penyimpanannya. Untuk informasi lebih lanjut tentang cara meningkatkan ruang penyimpanan sebuah instance, lihat ubah konfigurasi. Jika ruang penyimpanan instance telah mencapai batas maksimum, ajukan tiket untuk menghubungi layanan pelanggan agar instance dibuka kunci sementara.
Solusi untuk Penggunaan File Log yang Tinggi
Penyebab
Jika aplikasi memiliki sejumlah besar operasi transaksi, log transaksi terus bertambah, dan ruang disk instance mungkin melebihi batas atas, sehingga mengakibatkan instance terkunci.
Solusi 1
Setelah klien terhubung ke instance, jalankan pernyataan berikut:
select name,log_reuse_wait,log_reuse_wait_desc from sys.databases;Jika nilai log_reuse_wait_desc adalah LOG_BACKUP, silakan perkecil log transaksi.
CatatanPetunjuk: Jika file log sangat besar, waktu pencadangan log relatif lama, dan saat memperkecil file log, jika menemui transaksi yang belum dikomit, efek pemampatan tunggal tidak akan terlihat jelas. Dalam kasus di mana efek pemampatan tunggal tidak terlihat jelas, disarankan Anda memperkecil log transaksi lagi.
Solusi 2
Penyebab utama pertumbuhan cepat log transaksi adalah jumlah transaksi yang banyak atau transaksi besar. Misalnya, 5 juta baris data dioperasikan dalam satu transaksi. Jika transaksi besar seperti itu ada, kami sarankan Anda membagi transaksi dan menjalankan setiap transaksi dalam 100.000 baris sebanyak 50 kali.
Solusi untuk Penggunaan File Data yang Tinggi. Jika file database menempati sejumlah besar ruang, Anda dapat memeriksa penggunaan file data. Untuk database dengan file besar tetapi penggunaan rendah, Anda dapat menanganinya sesuai. Langkah-langkah rinci adalah sebagai berikut:
Jalankan pernyataan SQL berikut secara berurutan untuk memeriksa ruang bebas di database:
USE [$DB_Name]; SELECT SUM(unallocated_extent_page_count) AS [free pages], (SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB] FROM sys.dm_db_file_space_usageCatatan: [$DB_Name] menunjukkan nama database.
Temukan database yang mengonsumsi sejumlah besar ruang dan jalankan pernyataan berikut untuk memperkecil database:
DBCC SHRINKDATABASE([$DB_Name]);Anda juga dapat menjalankan perintah berikut untuk memperkecil file tunggal.
DBCC SHRINKFILE(file_id,[$Size]);CatatanCatatan: [$Size] menunjukkan Ukuran setelah pemampatan, bukan Ukuran yang akan dipampatkan. Satuannya adalah MB.
Solusi untuk Penggunaan File Sementara yang Tinggi. Dari tab pemantauan instance, Anda dapat menentukan apakah file sementara mengonsumsi terlalu banyak ruang. Jika tidak ada cukup ruang untuk file sementara, Error Log yang sesuai juga dicatat. Untuk informasi tentang cara mendiagnosis situasi di mana ruang file sementara tidak mencukupi, lihat Pemecahan Masalah Ruang Disk Tidak Cukup di tempdb, kami sarankan Anda melakukan operasi berikut.
Mulai ulang instance untuk melepaskan ruang untuk file sementara.
Lepaskan tabel sementara, versi baris, dan variabel tabel secara tepat waktu.
Ruang lingkup aplikasi
ApsaraDB RDS for SQL Server