Saat kapasitas penyimpanan habis, ApsaraDB RDS for MySQL secara otomatis mengunci instans untuk mencegah kehilangan data. Dalam status Locked, instans tidak menerima operasi write. Topik ini menjelaskan penyebab umum dan cara mengatasinya.
Setelah Anda membebaskan ruang disk, tunggu 5 hingga 15 menit agar sistem secara otomatis membuka kunci instans.
Diagnosis penyebab
Masuk ke Konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah tempat instans berada, lalu klik ID instans.
Di panel navigasi sebelah kiri, klik Monitoring and Alerts untuk melihat jenis file yang mengonsumsi ruang penyimpanan paling besar. Untuk informasi selengkapnya, lihat Lihat informasi pemantauan.
Gunakan tabel berikut untuk mengidentifikasi penyebab dan menemukan solusi yang sesuai.
Penyebab dan solusi
| Penyebab | Deskripsi | Solusi |
|---|---|---|
| Data files | Sejumlah besar file data disimpan pada instans. | Atasi kehabisan penyimpanan akibat file data |
| Binary log files | Kebijakan pencadangan log yang tidak tepat atau transaksi besar menghasilkan file log biner berlebihan. | Atasi kehabisan penyimpanan akibat file log biner |
| Temporary files | Operasi sorting, grouping, dan join dalam kueri SQL menghasilkan file temporary berukuran besar. Transaksi besar juga menghasilkan file log yang di-cache sebelum commit. | Atasi kehabisan penyimpanan akibat file temporary |
| System files (undo files) | Kueri berdurasi panjang pada tabel InnoDB yang dikombinasikan dengan pembaruan data besar menghasilkan banyak file undo. Catatan Hal ini tidak terjadi pada MySQL 8.0 karena sistem secara otomatis menghapus file undo. | Atasi kehabisan penyimpanan akibat file sistem |
| General query log | Saat parameter general_log diatur ke ON, setiap operasi kueri, insert, update, dan delete dicatat. File ini menjadi besar jika kueri berjalan dalam waktu lama atau log tidak dibersihkan secara berkala. | Atasi kehabisan penyimpanan akibat general query log |
Periksa ukuran general query log
Untuk memastikan bahwa general query log menyebabkan kehabisan penyimpanan, ikuti langkah-langkah berikut.
Periksa apakah
sys_data_sizetidak biasa besar dalam informasi pemantauan. Untuk detailnya, lihat Lihat informasi pemantauan.Verifikasi bahwa parameter
general_logdiatur keON. Untuk detailnya, lihat Lihat parameter instans ApsaraDB RDS for MySQL.Hubungkan ke instans dan jalankan kueri berikut untuk memeriksa ukuran tabel log. Untuk detailnya, lihat Hubungkan ke instans ApsaraDB RDS for MySQL.
CatatanKueri ini mengembalikan ukuran tabel
mysql.general_logdariinformation_schema.TABLESdalam satuan MB. Nilai yang dikembalikan merupakan data sampel dan dapat berbeda.SELECT table_schema AS 'Database', table_name, SUM(data_length + index_length + data_free)/1024/1024 AS "Table size in MB", SUM(DATA_FREE)/1024/1024 AS "Fragment size in MB" FROM information_schema.TABLES WHERE table_name='general_log'