All Products
Search
Document Center

ApsaraDB RDS:Apa yang harus dilakukan saat status instans adalah 'Locking'?

Last Updated:Aug 27, 2026

Saat instans RDS memasuki status Locking, pernyataan INSERT dan UPDATE gagal. Topik ini menjelaskan penyebabnya, cara mengatasi masing-masing penyebab, serta langkah pencegahan agar tidak terulang.

Pahami perilaku locking

Efek status Locking bervariasi tergantung pada versi mesin database dan versi mesin minor Anda.

MySQL 5.6, 5.7, dan 8.0 (versi mesin minor 20190815 atau lebih baru)

ApsaraDB RDS menggunakan tiga jenis kunci untuk membatasi operasi berdasarkan penyebab penguncian:

Jenis kunci Apa yang diblokir Kondisi pemicu
LOCK_WRITE_GROWTH Operasi yang meningkatkan penggunaan disk (INSERT, UPDATE). Kueri baca tetap berfungsi. Gunakan DROP atau TRUNCATE sebagai ganti DELETE untuk membebaskan ruang, karena DELETE menghasilkan binary log yang meningkatkan penggunaan disk. Penyimpanan instans primer penuh.
LOCK_READ Semua operasi baca dan tulis. Penyimpanan instans read-only penuh.
LOCK_WRITE Semua operasi tulis, termasuk DROP dan TRUNCATE (superset dari pembatasan LOCK_WRITE_GROWTH). Kedaluwarsa instans, kedaluwarsa host di kluster ApsaraDB MyBase, atau migrasi instans.

Saat LOCK_WRITE_GROWTH aktif, pernyataan SQL mengembalikan:

ERROR 1290 (HY000): The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement

MySQL 5.1, 5.5, dan MySQL 5.6/5.7/8.0 dengan versi mesin minor sebelum 20190815

Semua operasi diblokir terlepas dari penyebab penguncian.

Mendiagnosis penyebab

Pada halaman Basic Information instans RDS Anda, periksa bagian Usage Statistics. Dua kemungkinan penyebabnya adalah:

  • Penyebab 1: Kapasitas penyimpanan habis.

  • Penyebab 2: Akun Alibaba Cloud Anda memiliki pembayaran tertunda, atau instans RDS telah kedaluwarsa.

存储空间使用量

Atasi penyebab 1: kapasitas penyimpanan habis

Tersedia dua opsi: perluas kapasitas penyimpanan atau bebaskan ruang penyimpanan. Memperluas penyimpanan lebih cepat dan tidak memerlukan penghapusan data.

Opsi 1: perluas kapasitas penyimpanan (disarankan)

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

  2. Pada halaman Basic Information, buka bagian Configuration Information dan klik Change Specifications untuk memperluas kapasitas penyimpanan.

  3. Selesaikan pembayaran. Klik ikon 按钮 di pojok kanan atas halaman Basic Information untuk memantau progres di halaman Tasks.

Waktu yang diperlukan bervariasi tergantung jenis penyimpanan:

Jenis penyimpanan Durasi Catatan
Premium Local SSDs Bervariasi Migrasi data lintas instans mungkin terjadi. Koneksi transient sekitar 30 detik diperkirakan terjadi. Lakukan ekspansi pada jam sepi dan pastikan aplikasi Anda melakukan reconnect secara otomatis.
Cloud disks Sekitar 5 menit MySQL dan PostgreSQL: tidak ada koneksi transient. SQL Server: koneksi transient sekitar 30 detik mungkin terjadi. Lakukan ekspansi pada jam sepi, atau pastikan aplikasi Anda melakukan reconnect secara otomatis. Instans RDS tertentu mendukung ekspansi kapasitas penyimpanan tanpa kehilangan data. Hal ini tidak mengganggu beban kerja Anda.

Setelah ekspansi, ID instans dan string koneksi tetap tidak berubah. Namun, alamat IP mungkin berubah, misalnya ketika ekspansi Premium Local SSDs memicu migrasi data lintas instans. Hubungkan ke instans menggunakan string koneksi (nama domain) alih-alih alamat IP.

Anda juga dapat login ke Konsol ApsaraDB RDS dan klik Task Center di panel navigasi kiri untuk melihat progres.

Opsi 2: bebaskan ruang penyimpanan

Peringatan

Cadangkan data Anda sebelum menghapus apa pun. Jika memungkinkan, perluas penyimpanan sebagai gantinya untuk menghindari kehilangan data.

  1. Buka halaman Instances. Pilih wilayah, lalu klik ID instans.

  2. Di panel navigasi kiri, klik Monitoring and Alerts untuk melihat penggunaan penyimpanan berdasarkan tipe data.

    空间使用量

  3. Hapus data berdasarkan kategori penyimpanan yang paling banyak mengonsumsi ruang.

File temporary (temp_file_size metrik)

ApsaraDB RDS untuk MySQL menghasilkan tabel temporary untuk operasi sorting, grouping, atau join, serta file cache binary log sebelum melakukan commit transaksi besar. File temporary ini dapat menghabiskan ruang disk.

Untuk langkah penyelesaian, lihat Apa yang harus saya lakukan jika instans ApsaraDB RDS untuk MySQL berada dalam status Locked karena kapasitas penyimpanannya habis oleh file temporary?

File log (binlog_size dan general_log_size metrik)

Database engine Resolusi
MySQL Pada halaman Monitoring and Alerts, lihat penggunaan penyimpanan, lalu hapus file log. Lihat Apa yang harus saya lakukan jika kapasitas penyimpanan instans ApsaraDB RDS for MySQL habis karena file binary log? dan FAQ tentang fitur general query log ApsaraDB RDS for MySQL.
PostgreSQL File log tidak dapat dihapus secara manual. Hapus slot replikasi yang tidak aktif agar AliPG dapat secara otomatis menghapus log WAL. Lihat Gunakan fitur manajemen log WAL untuk instans ApsaraDB RDS for PostgreSQL.
SQL Server File log tidak dapat dihapus secara manual. Shrink transaction logs di Konsol ApsaraDB RDS melainkan.

File data (user_data_size metrik)

MySQL:

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

  2. Jalankan pernyataan berikut untuk menemukan tabel terbesar:

    SELECT
        TABLE_NAME,
        concat(round((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024,2),'MB') AS DATA
    FROM
        information_schema.TABLES
    WHERE
        TABLE_SCHEMA = '<Database name>'
    ORDER BY
        DATA + 0 DESC;
  3. Hapus tabel yang tidak diperlukan:

    DROP TABLE <Table name>;
  4. Tunggu sekitar 5 menit hingga sistem membuka kunci instans.

PostgreSQL:

  1. Hubungkan ke instans RDS Anda menggunakan DMS. Lihat Gunakan DMS untuk login ke instans ApsaraDB RDS.

    Jika Anda tidak dapat terhubung, perluas kapasitas penyimpanan terlebih dahulu, bersihkan ruang disk, lalu kurangi kapasitas penyimpanan sesuai kebutuhan. Lihat Ubah spesifikasi instans.
  2. Jalankan pernyataan berikut untuk menemukan tabel terbesar:

    SELECT
        table_schema || '.' || table_name AS table_full_name,
        pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') AS size
    FROM
        information_schema.tables
    ORDER BY
        pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')
    DESC;
  3. Hapus tabel yang tidak diperlukan:

    DROP TABLE <Table name>;
  4. Tunggu sekitar 5 menit hingga sistem membuka kunci instans.

SQL Server:

Ikuti langkah-langkah dalam Pemecahan masalah insufisiensi penyimpanan pada instans ApsaraDB RDS untuk SQL Server.

File sistem (undolog_size metrik)

Kueri berdurasi panjang pada tabel InnoDB yang dikombinasikan dengan modifikasi data konkuren dalam jumlah besar dapat menyebabkan sistem menghasilkan undo logs berlebihan, sehingga menghabiskan kapasitas penyimpanan.

Untuk langkah penyelesaian, lihat Pemecahan masalah insufisiensi penyimpanan akibat akumulasi file sistem.

Atasi penyebab 2: pembayaran tertunda atau instans kedaluwarsa

  • Instans subscription: Perpanjang instans, lalu tunggu sekitar 5 menit dan periksa apakah instans berada dalam status Running.

  • Instans pay-as-you-go: Top up Akun Alibaba Cloud Anda, lalu tunggu 5 menit dan periksa apakah instans berada dalam status Running.

Cegah penguncian di masa depan

Konfigurasikan hal berikut untuk menghindari penguncian tak terduga:

Atur notifikasi pembayaran dan kedaluwarsa:

  1. Login ke Konsol ApsaraDB RDS.

  2. Klik ikon 通知 di pojok kanan atas untuk membuka Message Center.

  3. Di panel navigasi kiri, klik Common Settings.

  4. Di kolom Notification Type, pilih Product Overdue Payment, Suspension, and Imminent Release Notifications dan klik Modify.

  5. Pilih kontak peringatan dan klik Save.

Konfigurasikan peringatan penggunaan penyimpanan: Atur aturan peringatan untuk penggunaan penyimpanan dan picu peringatan saat penggunaan penyimpanan melebihi 90%.

Aktifkan Penjelajah SQL dan Audit: Aktifkan fitur Penjelajah SQL dan Audit. Jika terjadi lonjakan penggunaan penyimpanan, periksa kueri pernyataan SQL yang dieksekusi selama lonjakan tersebut di halaman Monitoring and Alerts, lalu optimalkan pernyataan tersebut.

Aktifkan ekspansi penyimpanan otomatis: Konfigurasikan ekspansi penyimpanan otomatis agar sistem memperluas kapasitas saat penyimpanan hampir habis. Lihat panduan untuk MySQL, PostgreSQL, dan SQL Server.

Optimalkan pernyataan SQL: Hindari penggunaan klausa ORDER BY dan GROUP BY secara berulang dalam kueri yang memproses dataset besar, karena hal ini menghasilkan file temporary berukuran besar.

FAQ

Mengapa `LOCK_WRITE_GROWTH` masih aktif setelah saya menghapus sejumlah besar data?

Menjalankan DELETE hanya menandai catatan sebagai dapat digunakan kembali tetapi tidak memperkecil file disk dasar atau mereklaim ruang tabel. Untuk melepaskan ruang tabel, gunakan pernyataan OPTIMIZE TABLE. Lihat Bagaimana cara menggunakan pernyataan OPTIMIZE TABLE untuk melepaskan ruang tabel instans ApsaraDB RDS untuk MySQL?

Mengapa instans saya masih terkunci meskipun penyimpanan sudah mencukupi atau instans telah diperpanjang?

Tugas seperti perubahan konfigurasi masih berlangsung. Instans akan membuka kunci secara otomatis saat tugas selesai. Klik ikon 按钮 di pojok kanan atas halaman Basic Information untuk memeriksa progres tugas di halaman Tasks.

Jika penggunaan disk sudah turun di bawah 100% tetapi instans masih terkunci dan tidak ada tugas yang sedang berlangsung, hal ini wajar: pembukaan kunci tidak langsung instan. Proses ini melalui tiga tahap—siklus deteksi periodik memeriksa penggunaan disk, tugas pembuka kunci dikirimkan begitu pemeriksaan mengonfirmasi bahwa penggunaan di bawah 100%, lalu tugas pembuka kunci tersebut dijalankan. Instans biasanya membuka kunci secara otomatis dalam waktu 10 menit setelah penggunaan disk turun di bawah 100%.

Dapatkah saya mengubah spesifikasi instans saat instans berada dalam status Locking?

Jika instans terkunci karena penyimpanan habis, ya—Anda dapat melakukan peningkatan dan penurunan spesifikasi. Jika terkunci karena alasan lain seperti pembayaran tertunda, selesaikan masalah pembayaran terlebih dahulu.

Instans saya menggunakan tipe instans yang sudah tidak tersedia. Bagaimana cara membuka kuncinya dengan memperluas penyimpanan?

Ubah tipe instans menjadi tipe instans yang tersedia terlebih dahulu, lalu perluas penyimpanan. Untuk tipe instans yang tersedia, lihat Tipe instans utama ApsaraDB RDS.

Mengapa penggunaan penyimpanan terus meningkat meskipun instans terkunci?

INSERT dan UPDATE diblokir, tetapi kueri baca masih dapat menghasilkan file log atau data temporary, yang meningkatkan penggunaan penyimpanan.