All Products
Search
Document Center

ApsaraDB RDS:Apa yang harus saya lakukan jika instans ApsaraDB RDS for MySQL berada dalam status Locked karena kapasitas penyimpanannya habis akibat file temporary?

Last Updated:Aug 08, 2026

Ketika file temporary menghabiskan ruang penyimpanan instans ApsaraDB RDS for MySQL, sistem secara otomatis mengunci instans tersebut untuk mencegah kehilangan data. Dokumen ini menjelaskan penyebab masalah ini, cara membuka kunci instans, serta langkah pencegahan agar tidak terulang.

Mengapa instans dikunci

File temporary menumpuk saat MySQL mengeksekusi pernyataan SQL yang memerlukan pengurutan data, pengelompokan data, dan penggabungan tabel. File cache log biner (binlog) untuk transaksi besar juga mengonsumsi ruang penyimpanan selama transaksi tersebut sedang berjalan dan belum di-commit.

Saat ruang penyimpanan habis, sistem secara otomatis mengunci instans RDS untuk mencegah kehilangan data, sehingga Anda tidak dapat menulis data ke instans RDS tersebut.

Buka kunci instans

Lakukan opsi berikut secara berurutan. Hentikan segera setelah instans berhasil dibuka kuncinya.

Opsi 1: Perluas kapasitas penyimpanan

Perluas kapasitas penyimpanan instans. Setelah diperluas, sistem secara otomatis membuka kunci instans dalam waktu sekitar 5 menit. Untuk detailnya, lihat Ubah spesifikasi instans ApsaraDB RDS for MySQL.

Opsi 2: Restart instans untuk melepaskan file temporary

Jika perluasan penyimpanan tidak memungkinkan, gunakan salah satu metode berikut berdasarkan versi utama MySQL dari instans:

  • MySQL 5.6: Ruang tabel temporary berada dalam ruang tabel sistem ibdata1. Restart instans tidak akan melepaskan file temporary. Bandingkan ukuran ibdata1 antara node primary dan secondary. Jika node secondary memiliki ibdata1 yang lebih kecil, lakukan alih bencana high availability (HA), lalu bangun ulang node secondary asal untuk melepaskan ruang tersebut. Jika kedua node memiliki ibdata1 yang besar, buat instans baru dan gunakan DTS untuk memigrasikan data.

  • MySQL 5.7: Ruang tabel temporary berada dalam file terpisah bernama ibtmp1. Restart instans akan melepaskan file temporary. Untuk instans dengan ketersediaan tinggi, bandingkan ukuran ibtmp1 antara node primary dan secondary. Jika node secondary memiliki ibtmp1 yang lebih kecil, lakukan alih bencana HA, lalu restart node secondary asal untuk melepaskan ruang tersebut. Anda dapat mengatur parameter innodb_temp_data_file_path menjadi ibtmp1:12M:autoextend:max:10G untuk membatasi ukuran ibtmp1 maksimal 10G. Perubahan ini memerlukan restart instans agar berlaku.

  • MySQL 8.0 dan 8.4: Saat instans dikunci, semua session pengguna dihentikan. Session tersebut secara otomatis mulai melakukan rollback setelah dihentikan. Durasi rollback bergantung pada query yang sedang berjalan. Ruang penyimpanan instans akan dilepaskan setelah rollback transaksi selesai.

Catatan

Parameter innodb_temp_data_file_path mengontrol ukuran dan perilaku ekstensi file ruang tabel temporary. Parameter ini didukung oleh MySQL 5.7 dan 8.0, dengan nilai default ibtmp1:12M:autoextend. MySQL 5.6 tidak mendukung parameter ini.

Peringatan

Operasi DDL pada tabel besar (seperti menambahkan indeks) menghasilkan file temporary untuk pengurutan. Secara default, file-file ini tidak memiliki batas ukuran dan dapat terus membesar. Pastikan instans memiliki ruang penyimpanan yang cukup sebelum menjalankan operasi semacam ini.

Jika tombol Restart Instance pada halaman Basic Information tampak redup, gunakan solusi berikut:

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans berada, lalu klik ID instans tersebut.

  2. Di panel navigasi kiri, klik Parameters.

  3. Pada tab Editable Parameters, cari parameter apa pun yang menampilkan Yes di kolom Force Restart, lalu ubah nilainya.

Opsi 3: Identifikasi dan hentikan session yang bermasalah

Jika instans masih terkunci setelah restart, identifikasi session yang menghasilkan file temporary dan hentikan session tersebut.

  1. Hubungkan ke instans menggunakan Data Management (DMS).

  2. Jalankan pernyataan berikut untuk menampilkan daftar session aktif:

    show processlist
  3. Urutkan hasil berdasarkan kolom State. Cari session dengan nilai State berupa Copy to tmp table atau Sending data — ini menandakan penggunaan file temporary yang tinggi. Catat ID session yang bermasalah.

  4. Hentikan session tersebut:

    kill [$ID];

    Ganti [$ID] dengan ID session dari langkah sebelumnya.

    Penting

    Sebelum menghentikan session, pastikan tindakan tersebut tidak akan mengganggu layanan yang sedang berjalan.

Cegah masalah agar tidak terulang

Setelah instans dibuka kuncinya, lakukan langkah-langkah berikut untuk mencegah terulangnya masalah ini.

Aktifkan ekspansi penyimpanan otomatis

Konfigurasikan ekspansi penyimpanan otomatis agar sistem secara otomatis memperluas ruang penyimpanan saat penggunaan mendekati ambang batas. Untuk detailnya, lihat Konfigurasikan ekspansi penyimpanan otomatis untuk instans ApsaraDB RDS for MySQL.

Optimalkan pernyataan SQL yang menghasilkan file temporary

Untuk memeriksa apakah suatu pernyataan SQL tertentu menggunakan tabel temporary, jalankan EXPLAIN dan periksa kolom Extra. Jika muncul Using temporary, berarti pernyataan tersebut menghasilkan tabel temporary.

explain select * from alarm group by created_on order by default;

Untuk mengurangi penggunaan file temporary:

  • Tulis ulang query agar menghindari ORDER BY dan GROUP BY yang sering pada set hasil yang besar.

  • Tambahkan indeks yang sesuai untuk menghindari pengurutan seluruh tabel.

  • Anda dapat menaikkan nilai tmp_table_size dan max_heap_table_size sesuai kebutuhan bisnis Anda. Namun, metode ini tidak disarankan karena sumber daya memori lebih penting daripada sumber daya disk.

Kurangi ruang temporary dari transaksi besar

Transaksi besar menulis file cache binlog ke disk selama proses berlangsung. Untuk menguranginya:

  • Pecah operasi batch besar menjadi transaksi-transaksi yang lebih kecil.

  • Hindari menjalankan beberapa transaksi besar secara paralel melalui banyak koneksi.

  • Gunakan koneksi singkat untuk transaksi besar guna mengurangi ruang penyimpanan yang ditempati oleh file temporary.

  • Anda dapat menaikkan nilai binlog_cache_size sesuai kebutuhan bisnis Anda. Namun, kami tidak menyarankan penggunaan metode ini.

Pantau penggunaan disk

Pastikan penggunaan disk tetap di bawah 80%. Atur alert pemantauan agar Anda dapat menghapus data yang tidak diperlukan atau memisahkan set data besar sebelum ruang penyimpanan habis.

Langkah selanjutnya

Jika Anda tidak dapat menghapus file temporary untuk membuka kunci instans, kurangi penggunaan disk dengan menghapus jenis file lainnya. Lihat topik-topik berikut: