全部产品
Search
文档中心

ApsaraDB RDS:Apa yang harus saya lakukan jika kapasitas penyimpanan instance ApsaraDB RDS for MySQL habis karena file sistem?

更新时间:Jul 06, 2025

Jika sebuah instance ApsaraDB RDS for MySQL secara otomatis terkunci ketika kapasitas penyimpanannya habis karena file sistem, terutama file undo, Anda dapat mengikuti petunjuk dalam topik ini untuk membuka kunci instance RDS dan membersihkan file sistem.

Deskripsi masalah

Kapasitas penyimpanan dari sebuah instance ApsaraDB RDS for MySQL telah habis. Nilai Instance Status untuk instance RDS adalah Locking. Pada halaman Pemantauan dan Peringatan, detail penggunaan penyimpanan menunjukkan bahwa penyimpanan diisi oleh file undo yang besar.

Penyebab

Dalam banyak kasus, file sistem yang besar disebabkan oleh file undo yang besar. Jika query pada tabel InnoDB berjalan dalam waktu lama dan sejumlah besar data diperbarui dalam tabel selama query tersebut, sejumlah besar data undo dihasilkan, yang mengisi penyimpanan dan menyebabkan kapasitas penyimpanan habis. Untuk mencegah kehilangan data, sistem secara otomatis mengunci instance RDS. Instance RDS memasuki status Locking.

Catatan

Masalah ini tidak terjadi pada instance RDS yang menjalankan MySQL 8.0 karena sistem secara otomatis menghapus file undo.

Solusi

Langkah 1: Buka kunci instance RDS

Anda dapat membuka kunci instance RDS setelah memperluas kapasitas penyimpanannya. Untuk informasi lebih lanjut, lihat Ubah Spesifikasi Instance.

Langkah 2: Hapus file undo

  • Instance RDS yang menjalankan MySQL 5.7:

    Hubungkan ke instance RDS dan jalankan pernyataan berikut untuk menanyakan nilai parameter innodb_undo_tablespaces. Untuk informasi lebih lanjut, lihat Hubungkan ke Instance ApsaraDB RDS for MySQL.

    SHOW VARIABLES LIKE 'innodb_undo_tablespaces';
    • Jika nilai parameter innodb_undo_tablespaces adalah 2, data undo dari instance RDS disimpan di ruang tabel undo independen dan dapat dihapus.

      Ketika ukuran file undo melebihi nilai parameter innodb_max_undo_log_size dan log dalam file undo tidak lagi diperlukan oleh transaksi aktif, sistem memotong file undo untuk membebaskan penyimpanan. Untuk informasi lebih lanjut tentang cara memodifikasi parameter instance RDS, lihat Modifikasi Parameter Instance.

      Catatan

      Parameter innodb_undo_tablespaces hanya dapat ditentukan saat Anda membuat instance RDS dan tidak dapat dimodifikasi setelah pembuatan. Jika nilai parameter innodb_undo_tablespaces tidak ditentukan saat Anda membuat instance RDS yang menjalankan MySQL 5.7, parameter tersebut diatur ke 0 secara default. Dalam hal ini, Anda tidak dapat memperbarui versi mesin minor dari instance RDS untuk menggunakan ruang tabel undo independen.

    • Jika nilai parameter innodb_undo_tablespaces adalah 0, ruang tabel undo independen tidak digunakan. File undo disimpan di ruang tabel sistem ibdata1 dan tidak dapat dihapus.

      Jika Anda ingin membersihkan data undo di ruang tabel sistem ibdata1, Anda dapat membuat instance RDS baru dan memigrasikan data dari instance RDS asli ke instance RDS baru. Atau, Anda dapat meningkatkan versi mesin utama dari instance RDS ke MySQL 8.0. Untuk informasi lebih lanjut, lihat Tingkatkan Versi Mesin Utama.

      Penting
      • Jika Anda meningkatkan versi mesin utama dari instance RDS, masalah kompatibilitas mungkin terjadi. Untuk informasi lebih lanjut, lihat batasan dan perbedaan antara versi mesin utama di Tingkatkan Versi Mesin Utama.

      • Selama migrasi atau peningkatan instance RDS, pergantian instance terjadi. Kami merekomendasikan agar Anda melakukan migrasi atau peningkatan selama jam-jam sepi dan pastikan aplikasi Anda dikonfigurasi untuk secara otomatis tersambung kembali ke instance RDS. Untuk informasi tentang dampak pergantian instance, lihat Dampak Pergantian Instance.

  • Instance RDS yang menjalankan MySQL 5.5 atau MySQL 5.6: File undo dari instance RDS tidak dapat dihapus. Kami merekomendasikan agar Anda meningkatkan versi mesin utama dari instance RDS ke MySQL 5.7 atau MySQL 8.0. Untuk informasi lebih lanjut, lihat Tingkatkan Versi Mesin Utama.

    Jika Anda ingin meningkatkan versi mesin utama dari instance RDS ke MySQL 5.7, atur parameter Edition ke High-availability Edition. Nilai parameter innodb_undo_tablespaces di RDS High-availability Edition adalah 2. Anda dapat menyimpan dan menghapus data undo di ruang tabel undo independen.

    Penting
    • Jika Anda meningkatkan versi mesin utama dari instance RDS, masalah kompatibilitas mungkin terjadi. Untuk informasi lebih lanjut, lihat batasan dan perbedaan antara versi mesin utama di Tingkatkan Versi Mesin Utama.

    • Selama peningkatan, pergantian instance terjadi. Kami merekomendasikan agar Anda melakukan peningkatan selama jam-jam sepi dan pastikan aplikasi Anda dikonfigurasi untuk secara otomatis tersambung kembali ke instance RDS. Untuk informasi tentang dampak pergantian instance, lihat Dampak Pergantian Instance.

Apa yang harus dilakukan selanjutnya

  • Optimalkan pernyataan SQL untuk mencegah query SQL lambat.

  • Lakukan operasi seperti pembuatan dan penghapusan indeks, modifikasi skema tabel, pemeliharaan tabel, dan penghapusan tabel selama jam-jam sepi.

  • Pantau dan bersihkan sesi atau transaksi yang berjalan dalam waktu lama. Untuk informasi lebih lanjut, lihat Lihat Informasi Pemantauan.

Referensi