全部产品
Search
文档中心

ApsaraDB RDS:Apa yang harus saya lakukan jika instance ApsaraDB RDS for MySQL terkunci karena kapasitas penyimpanannya habis oleh file sementara?

更新时间:Jun 25, 2025

Deskripsi masalah

Kapasitas penyimpanan instance ApsaraDB RDS for MySQL Anda telah habis akibat file sementara. Akibatnya, instance RDS memasuki status Terkunci.

Penyebab

Sejumlah besar file sementara ditulis ke instance RDS Anda, atau sejumlah besar file log biner untuk transaksi besar di-cache di instance RDS Anda sebelum transaksi tersebut dikomit. Hal ini mengakibatkan kapasitas penyimpanan instance RDS Anda habis. File sementara dihasilkan saat pernyataan SQL yang memerlukan pengurutan data, pengelompokan data, dan penggabungan tabel dieksekusi. Dalam situasi ini, sistem secara otomatis mengunci instance RDS Anda untuk mencegah kehilangan data, sehingga Anda tidak dapat menulis data ke instance RDS Anda.

Solusi

Dalam situasi darurat, kami sarankan Anda memperluas kapasitas penyimpanan instance RDS Anda. Setelah memperluas kapasitas penyimpanan, tunggu sekitar 5 menit agar sistem membuka kunci instance tersebut. Untuk informasi lebih lanjut tentang cara meningkatkan spesifikasi instance RDS, lihat Ubah Spesifikasi Instance ApsaraDB RDS for MySQL.

Jika Anda tidak dapat memperluas kapasitas penyimpanan instance RDS Anda, Anda dapat me-restart instance RDS untuk melepaskan file sementara. Untuk informasi lebih lanjut, lihat Restart Instance ApsaraDB RDS for MySQL.

Jika instance RDS Anda masih terkunci, lakukan langkah-langkah berikut:

  1. Gunakan Data Management (DMS) untuk terhubung ke instance RDS Anda.

  2. Eksekusi pernyataan berikut untuk melihat sesi instance RDS Anda:

    show processlist
  3. Di hasil keluaran, urutkan file sementara berdasarkan State dan periksa apakah ada sejumlah besar pesan seperti "Copy to tmp table" dan "Sending data" di kolom State dari sebuah sesi. Jika ya, sejumlah besar file sementara dihasilkan oleh sesi tersebut. Catat ID sesinya.state

  4. Eksekusi pernyataan SQL berikut untuk menghentikan sesi:

    kill [$ID];
    Catatan

    [$ID] menunjukkan ID yang diperoleh pada langkah sebelumnya. Sebelum menghentikan sesi, pastikan layanan Anda tidak terpengaruh.

Apa yang harus dilakukan selanjutnya

Jika instance RDS dibuka kuncinya, lakukan langkah-langkah berikut untuk mencegah instance RDS terkunci lagi:

  • Konfigurasikan ekspansi penyimpanan otomatis untuk instance RDS. Jika penggunaan penyimpanan instance RDS mencapai ambang batas, sistem secara otomatis memperluas kapasitas penyimpanan instance RDS. Untuk informasi lebih lanjut, lihat Konfigurasikan Ekspansi Penyimpanan Otomatis untuk Instance ApsaraDB RDS for MySQL.

  • Untuk mencegah file sementara menempati banyak penyimpanan, optimalkan pernyataan SQL untuk menghindari penggunaan sering klausa ORDER BY dan GROUP BY. Anda juga dapat meningkatkan nilai tmp_table_size dan max_heap_table_size sesuai dengan kebutuhan bisnis Anda. Namun, metode ini tidak disarankan karena sumber daya memori lebih penting daripada sumber daya disk. Gunakan EXPLAIN bersama dengan pernyataan SQL untuk memeriksa apakah tabel sementara internal digunakan. Misalnya, jika pesan "Using temporary" ditampilkan di kolom Extra, tabel sementara internal digunakan.

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

    Gambar berikut menunjukkan contoh keluaran.system display

  • Untuk mencegah file log biner yang di-cache menempati banyak penyimpanan, kurangi jumlah transaksi besar, terutama transaksi besar yang dijalankan secara paralel melalui beberapa koneksi. Jika Anda ingin menjalankan sejumlah besar transaksi besar, tingkatkan nilai binlog_cache_size sesuai dengan kebutuhan bisnis Anda. Namun, kami sarankan Anda tidak menggunakan metode ini. Sebagai gantinya, gunakan koneksi singkat untuk menjalankan transaksi besar guna mengurangi penyimpanan yang ditempati oleh file sementara.

  • Pantau penggunaan disk, hapus data yang tidak perlu sesegera mungkin, atau lakukan pemisahan data. Ini membantu memastikan bahwa penggunaan disk tidak melebihi 80%.

Referensi

Jika Anda tidak dapat menghapus file sementara untuk membuka kunci instance RDS Anda, Anda dapat menghapus jenis file lain untuk mengurangi penggunaan disk. Untuk informasi lebih lanjut, lihat topik berikut:

FAQ

Apa yang harus saya lakukan jika tombol Restart Instance redup di halaman Basic Information instance RDS saya?

Anda dapat melakukan langkah-langkah berikut untuk me-restart instance RDS Anda:

  1. Masuk ke konsol ApsaraDB RDS dan buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS berada. Lalu, temukan instance RDS dan klik ID instance.

  2. Di panel navigasi sisi kiri, klik Parameters.

  3. Di tab Editable Parameters, temukan parameter yang menampilkan Yes di kolom Force Restart dan ubah nilai parameter tersebut.