Ketika instans ApsaraDB RDS for MySQL kehabisan penyimpanan akibat file temporary, instans tersebut secara otomatis masuk ke status Locked untuk mencegah kehilangan data. Dalam status ini, operasi tulis diblokir. Topik ini menjelaskan cara membuka kunci instans dan mencegah masalah ini terulang.
Mengapa file temporary menghabiskan penyimpanan
File temporary dihasilkan ketika MySQL mengeksekusi kueri yang melibatkan sorting (ORDER BY), grouping (GROUP BY), atau join tabel. File cache binary log (binlog) untuk transaksi besar juga mengonsumsi penyimpanan selama transaksi menunggu untuk dikomit.
Saat penyimpanan penuh, ApsaraDB RDS for MySQL akan mengunci instans secara otomatis.
Buka kunci instans
Opsi 1: Perluas kapasitas penyimpanan (disarankan)
Perluas kapasitas penyimpanan instans. Instans akan membuka kuncinya secara otomatis dalam waktu sekitar 5 menit setelah perluasan diterapkan.
Untuk petunjuk lebih lanjut, lihat Mengubah Spesifikasi Instans ApsaraDB RDS for MySQL.
Opsi 2: Bersihkan file temporary berdasarkan versi
Jika perluasan penyimpanan tidak memungkinkan, gunakan pendekatan yang sesuai dengan versi MySQL Anda:
MySQL 5.7 atau lebih lama: Restart instans. Lihat FAQ jika tombol Restart Instance berwarna pudar.
MySQL 8.0: Saat instans terkunci, semua session dihentikan secara otomatis dan transaksinya di-rollback. Penyimpanan akan dilepas setelah proses rollback selesai. Durasi rollback bergantung pada kueri yang dieksekusi oleh session dalam transaksi tersebut.
Opsi 3: Identifikasi dan hentikan session (jika masih terkunci)
Jika instans tetap terkunci setelah mencoba opsi di atas, gunakan Data Management (DMS) untuk mengidentifikasi dan menghentikan session yang mengonsumsi penyimpanan.
Hubungkan ke instans menggunakan Data Management (DMS).
Jalankan pernyataan berikut untuk menampilkan daftar session aktif:
show processlistUrutkan hasil berdasarkan kolom State. Cari session dengan status "Copy to tmp table" atau "Sending data" di kolom State, lalu catat ID-nya.

Hentikan setiap session dengan menjalankan pernyataan berikut, ganti
[$ID]dengan ID session:kill [$ID];
Sebelum menghentikan session, pastikan tindakan tersebut tidak akan memengaruhi layanan Anda.
Cegah instans terkunci lagi
Setelah instans dibuka kuncinya, lakukan langkah-langkah berikut untuk mencegah pengulangan masalah.
Aktifkan ekspansi penyimpanan otomatis
Konfigurasikan ekspansi penyimpanan otomatis agar sistem memperluas kapasitas saat penggunaan mencapai ambang batas tertentu. Untuk petunjuknya, lihat Configure automatic storage expansion for an ApsaraDB RDS for MySQL instance.
Kurangi pembuatan file temporary
Optimalkan kueri untuk menghindari penggunaan
ORDER BYdanGROUP BYyang sering pada set data besar.Gunakan
EXPLAINuntuk memeriksa apakah kueri menggunakan tabel temporary internal. Cari teks "Using temporary" di bidangExtra:explain select * from alarm group by created_on order by default;
Anda dapat meningkatkan nilai
tmp_table_sizedanmax_heap_table_sizesesuai kebutuhan bisnis, tetapi hal ini tidak disarankan. Utamakan ketersediaan memori daripada penghematan disk.
Kurangi penggunaan cache binlog
Pecah transaksi besar menjadi transaksi yang lebih kecil, dan hindari menjalankan transaksi besar secara paralel di beberapa koneksi.
Gunakan koneksi singkat untuk menjalankan transaksi besar; ini mengurangi jumlah penyimpanan yang terikat pada file cache binlog.
Anda dapat meningkatkan
binlog_cache_sizesesuai kebutuhan bisnis, tetapi kami menyarankan agar Anda tidak meningkatkanbinlog_cache_sizehanya untuk menghemat penyimpanan disk.
Monitor penggunaan disk
Pastikan penggunaan disk tetap di bawah 80%. Hapus data yang tidak diperlukan secara berkala, atau pecah set data besar ke beberapa instans. Atur notifikasi untuk mendeteksi penggunaan disk tinggi sebelum instans terkunci.
Langkah selanjutnya
Jika instans masih dalam status Locked setelah membersihkan file temporary, jenis file lain mungkin mengonsumsi penyimpanan. Lihat:
FAQ
Tombol Restart Instance berwarna pudar di halaman Basic Information. Bagaimana cara me-restart instans?
Picu restart dengan mengubah parameter yang memerlukan restart:
Buka halaman Instances, pilih wilayah tempat instans berada, temukan instans tersebut, lalu klik ID-nya.
Di panel navigasi sebelah kiri, klik Parameters.
Di tab Editable Parameters, cari parameter apa pun yang memiliki nilai Yes di kolom Force Restart dan ubah nilainya untuk memicu restart.