All Products
Search
Document Center

Data Management:Operasi DML tanpa kunci

Last Updated:Apr 23, 2026

Jika Anda perlu memodifikasi sejumlah besar data tabel tanpa mengunci tabel tersebut, gunakan fitur Lockless Change di Data Management (DMS). Fitur ini membagi satu pernyataan SQL menjadi beberapa batch untuk dieksekusi, sehingga memungkinkan modifikasi data tabel tanpa penguncian dan mengurangi dampak operasi DML terhadap performa serta ruang database. Topik ini menjelaskan cara melakukan perubahan data tanpa kunci di DMS.

Prasyarat

  • Jenis database yang didukung:

    Database engineInstans yang didukung
    MySQLApsaraDB RDS for MySQL, PolarDB for MySQL, MyBase for MySQL, PolarDB for Xscale, database MySQL pihak ketiga
    PostgreSQLApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, MyBase for PostgreSQL, database PostgreSQL pihak ketiga
    MariaDBApsaraDB for MariaDB, database MariaDB pihak ketiga
    OceanBaseApsaraDB for OceanBase dalam mode MySQL
    Oracle-compatiblePolarDB for PostgreSQL (Compatible with Oracle)
  • Instans harus berada dalam mode kontrol Stable Change atau Security Collaboration. Untuk informasi selengkapnya, lihat View the control mode.

Batasan

Hanya pernyataan UPDATE, DELETE, dan INSERT...SELECT yang didukung.

UPDATE dan DELETE

KendalaDetail
Cakupan tabelHanya satu tabel
Klausa WHEREWajib. Untuk memperbarui atau menghapus semua baris, gunakan WHERE 1=1
SubkueriTidak didukung
Klausa LIMITTidak didukung — penggunaan LIMIT untuk paginasi manual memaksa pemindaian seluruh tabel, yang menyebabkan penguncian tabel yang justru ingin dicegah oleh fitur ini

INSERT...SELECT

KendalaDetail
Pilih cakupanHanya satu tabel
Klausa WHEREWajib dalam klausa SELECT. Untuk memilih semua baris, gunakan WHERE 1=1
Klausa yang tidak diizinkanLIMIT, ORDER BY, dan GROUP BY tidak didukung dalam klausa SELECT

Prosedur

  1. Masuk ke DMS 5.0.

  2. Di bilah navigasi atas, pilih Database Development > Data Change > Lockless Change.

    Catatan

    Jika Anda menggunakan konsol DMS dalam mode simple, klik ikon function di pojok kiri atas. Di panel navigasi yang muncul, pilih All Features > Database Development > Data Change > Lockless Change.

  3. Konfigurasikan parameter tiket Lockless Change ticket dan klik Submit. Tabel berikut menjelaskan beberapa parameter tersebut.

    Catatan

    Contoh ini menunjukkan konfigurasi untuk instans dalam mode Security Collaboration. Untuk instans dalam mode Flexible Management atau Stable Change, Anda hanya perlu mengonfigurasi parameter Database dan SQL statements for change.

    Parameter

    Wajib

    Deskripsi

    Database

    Ya

    Cari dan pilih database target.

    Catatan

    Anda harus memiliki izin untuk mengubah data di database target. Untuk informasi selengkapnya, lihat View your permissions.

    Business Background

    Tidak

    Berikan konteks untuk perubahan guna mengurangi beban komunikasi.

    Execution Method

    Ya

    Pilih metode eksekusi untuk tiket:

    • Ticket Submitter Executes Upon Approval

    • Automatically Execute Upon Approval

    • Last Approver Executes

    Catatan

    Administrator dapat memodifikasi daftar metode eksekusi di O&M > Configuration Management. Untuk informasi selengkapnya, lihat Configuration Management.

    Affected rows

    Ya

    Perkirakan jumlah baris yang terpengaruh. Anda dapat menjalankan kueri COUNT di SQL Console untuk mendapatkan angka ini.

    Catatan

    Jika data terus-menerus ditulis ke tabel, hitung hanya jumlah baris data yang sudah ada.

    SQL Statements for Change

    Ya

    Masukkan pernyataan DML, seperti UPDATE, DELETE, atau INSERT_SELECT.

    Catatan

    Jika Anda memasukkan pernyataan DDL, Anda sedang melakukan tugas perubahan skema lock-free DDL. Untuk informasi selengkapnya, lihat Perform a lock-free schema change by using a Lockless Change ticket.

    SQL Statements for Rollback

    Tidak

    Skrip balik untuk pernyataan dalam SQL statements for change. Skrip ini harus dapat dieksekusi.

    SQL Text

    Tidak

    Parameter ini hanya muncul jika Anda memilih Text untuk parameter Rollback SQL. Masukkan pernyataan SQL rollback, yaitu kebalikan dari pernyataan SQL perubahan.

    Attachment

    Tidak

    Parameter ini hanya muncul jika Anda memilih Attachment untuk parameter SQL Statements for Rollback. Klik File untuk mengunggah lampiran SQL rollback.

    Catatan

    Hanya file .txt, .zip, dan .sql yang didukung. Ukuran file tidak boleh melebihi 15 MB.

    Change Stakeholder

    Tidak

    Pemangku kepentingan yang ditentukan dapat melihat dan berkolaborasi dalam tiket. Pihak non-pemangku kepentingan (kecuali administrator dan DBA) tidak dapat melihatnya.

    Attachments

    Tidak

    Unggah lampiran untuk memberikan konteks tambahan untuk tiket ini.

  4. Setelah mengirimkan tiket, Anda dapat mengaktifkan pemeriksaan latensi primary-secondary, menetapkan ambang batas, dan memodifikasi pernyataan SQL.

    • (Opsional) Aktifkan pemeriksaan latensi primary-secondary dan tetapkan ambang batas. Ini mencegah latensi primary-secondary yang berlebihan memengaruhi alih bencana instans.

      Di bagian Basic Information, klik chunk option, lalu tetapkan ambang batas latensi primary-secondary yang wajar dalam satuan detik. Jika latensi primary-secondary melebihi ambang batas, eksekusi SQL akan dihentikan.

      Catatan

      Fitur ini saat ini hanya tersedia untuk database ApsaraDB RDS for MySQL.

    • (Opsional) Modifikasi pernyataan SQL.

      Setelah mengirimkan permohonan, sistem secara otomatis melakukan pemeriksaan awal terhadap pernyataan SQL. Jika pemeriksaan awal gagal, Anda dapat mengklik Edit SQL, mengedit pernyataan berdasarkan alasan kegagalan, lalu mencoba lagi.

  5. Klik Submit. Tiket untuk instans dalam mode Security Collaboration memerlukan persetujuan berdasarkan aturan yang dikonfigurasi, sedangkan tiket untuk instans dalam mode Stable Change disetujui secara otomatis.

  6. Setelah tiket disetujui, klik Execute Change di bagian Execute pada halaman detail tiket.

    Catatan

    Anda dapat melihat progres persetujuan di bagian Approval pada halaman detail tiket.

  7. Konfigurasikan parameter eksekusi tugas.

    Item Konfigurasi

    Deskripsi

    Execution Strategy

    • Running immediately: Opsi default. Tugas dieksekusi segera setelah Anda mengklik Confirm Execution.

    • Schedule: Pilih waktu mulai untuk tugas. Setelah Anda mengklik Confirm Execution, tugas dijalankan pada waktu yang ditentukan.

    Catatan

    Waktu eksekusi aktual tugas terjadwal mungkin memiliki selisih ±1 menit.

    Specify End Time

    Tentukan waktu akhir untuk tugas. Jika tugas belum selesai pada waktu akhir yang ditentukan, sistem akan menghentikan eksekusi sisa tugas SQL. Ini mencegah tugas berjalan selama jam sibuk dan memengaruhi operasi bisnis.

    Catatan

    Waktu akhir aktual tugas mungkin memiliki selisih ±1 menit.

    Primary/Secondary Node Check

    Mengaktifkan pemeriksaan ini memastikan sinkronisasi data real-time antara instans primer dan standby, ketersediaan tinggi, serta pemulihan cepat dari kegagalan.

    Canary Release Type

    Kebijakan untuk mengeksekusi pernyataan SQL dalam batch.

    • No Canary Release: DMS secara otomatis mengeksekusi semua pernyataan SQL dalam tugas.

    • Suspend after Executing the First SQL Statement: Setelah pernyataan SQL pertama berhasil dieksekusi, DMS secara otomatis menjeda tugas. Untuk melanjutkan, klik Retry. Sisa pernyataan SQL kemudian dieksekusi sekaligus tanpa jeda tambahan.

    • Suspend after Executing a SQL Statement: Tugas secara otomatis menjeda setelah setiap pernyataan SQL dieksekusi. Anda harus mengklik Retry secara manual untuk mengeksekusi pernyataan SQL berikutnya.

  8. Klik Confirm Execution.

    Catatan

    Saat tugas yang dijeda dimulai ulang, tugas tersebut dimulai dari awal.

    Di bagian Execute, Anda dapat melihat status eksekusi tugas, pengaturan tugas, detail, dan Scheduling Logs.

Dokumen Terkait

FAQ

  • Q: Apakah fitur perubahan data tanpa kunci mendukung operasi SQL kompleks?

    A: Tidak. Misalnya, fitur ini tidak mendukung CREATE_INDEX atau operasi multi-tabel seperti pernyataan DELETE yang menyertakan JOIN. Untuk informasi selengkapnya tentang jenis SQL yang didukung, lihat Limitations.

  • Q: Apakah DMS Lockless Change mendeteksi kunci tabel dan pemblokiran?

    A: Saat DMS melakukan perubahan data tanpa kunci, sistem membagi pernyataan SQL besar menjadi batch-batch kecil dan menjeda setelah setiap batch. Hal ini menghindari pemanfaatan sumber daya dalam waktu lama. Selama eksekusi, DMS tidak melakukan deteksi kunci baris terlebih dahulu. MySQL tetap mengunci baris yang dimodifikasi. Dampak keseluruhan minimal karena batch kecil dan jeda, tetapi ini tidak menjamin bahwa tabel tidak akan dikunci. Untuk perubahan skema tanpa kunci, DMS menggunakan tabel sementara untuk mensimulasikan pernyataan DDL Anda. Ini memeriksa terlebih dahulu apakah operasi tersebut akan menyebabkan penguncian atau pemblokiran tabel. Jika pemeriksaan menentukan bahwa operasi akan mengunci tabel, verifikasi gagal dan pesan ditampilkan.

  • Q: Bisakah verifikasi pemutaran ulang inkremental untuk tugas DMS Lockless Change disesuaikan?

    A: Ya. Pertama, di halaman O&M > Configuration Management, cari dan aktifkan fitur "Allow adjustment of the playback data verification ratio for lockless change results".

    1. Buka tiket DDL yang sesuai di konsol.

    2. Di bagian eksekusi, klik Details.

    3. Temukan skrip yang sesuai dan klik Execution Progress.

    4. Rasio verifikasi ditampilkan di bagian bawah. Sesuaikan rasio sesuai kebutuhan. Satuannya adalah permil (‰).