Fitur Perubahan Data Standar di Data Management Service (DMS) memungkinkan Anda menjalankan pernyataan SQL untuk memodifikasi data dalam database. Anda dapat menjalankan pernyataan seperti INSERT, UPDATE, DELETE, dan TRUNCATE secara langsung atau sesuai jadwal. Topik ini menjelaskan cara mengirim tiket perubahan data standar.
Ikhtisar operasi
-
Konfigurasikan dan kirim tiket perubahan data standar
Pilih database atau instans yang ingin Anda ubah. Masukkan pernyataan SQL untuk perubahan tersebut atau unggah lampiran SQL.
-
Pemeriksaan Awal
Selama fase Pemeriksaan Awal, DMS memverifikasi pernyataan SQL yang Anda kirimkan, termasuk validitas jenis SQL untuk perubahan data standar dan kepemilikan izin yang diperlukan.
-
Setujui tiket
Selama fase persetujuan, DMS memeriksa potensi dampak pernyataan SQL terhadap kinerja database serta memastikan pengguna yang mengirim tiket memiliki izin untuk menjalankan pernyataan tersebut.
-
Jalankan perubahan data
Pernyataan SQL yang diajukan akan dieksekusi. Jika terjadi kesalahan atau Anda perlu memutar balik pernyataan SQL karena alasan bisnis, DMS memungkinkan Anda membuat tiket rollback untuk memulihkan data asli dengan cepat setelah perubahan selesai.
Prasyarat
Mode kontrol instans harus berupa Stable Change atau Security Collaboration. Untuk informasi selengkapnya, lihat Control modes.
Catatan
-
Anda dapat menutup tiket terlepas dari status persetujuannya untuk mencegah eksekusi tugas yang tidak disengaja setelah tiket disetujui.
-
Anda dapat mengelola perubahan data di lingkungan staging menggunakan tiket. Tiket menyediakan perlindungan seperti cadangan data dan pemeriksaan jumlah baris. Jika suatu operasi tidak menghasilkan hasil yang diharapkan, Anda dapat memulihkan data dengan cepat.
CatatanJika Anda khawatir bahwa persetujuan tiket dapat memengaruhi efisiensi pengembangan, Anda dapat mengonfigurasi pengaturan tanpa persetujuan. Untuk informasi selengkapnya, lihat SQL change.
-
Jika Anda telah mengonfigurasi logical databases, logical tables, dan routing algorithms, Anda dapat mengirim satu tiket untuk perubahan sharding tanpa perlu mengirim tiket terpisah untuk setiap database dan tabel fisik.
-
Jika Anda menggunakan routing algorithm dan kondisi update mencakup bidang routing, pernyataan tersebut secara otomatis diarahkan ke database dan tabel fisik yang tepat untuk dieksekusi.
-
Pernyataan SQL dijalankan pada setiap shard satu per satu dalam skenario berikut, yang dapat meningkatkan waktu eksekusi: tidak ada routing algorithm yang dikonfigurasi, kondisi perubahan tidak mencakup bidang routing, atau definisi tipe atau struktur bidang routing salah.
-
-
DMS secara otomatis menghasilkan lampiran skrip backup hanya sebelum mengeksekusi pernyataan
UPDATEatauDELETE.
Prosedur
Langkah 1: Konfigurasikan dan kirim tiket
Masuk ke DMS 5.0.
Arahkan pointer ke ikon
di pojok kiri atas Konsol DMS, lalu pilih . CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih di bilah navigasi atas.
-
Pada halaman Data Change Ticket Request, konfigurasikan parameter tiket. Tabel berikut menjelaskan beberapa parameter tersebut.
Catatan-
Contoh berikut menunjukkan cara mengonfigurasi parameter untuk instans dalam mode Security Collaboration. Parameter dapat berbeda jika Anda memilih instans dalam mode Stable Change.
-
Fitur untuk mengubah instans sumber data sedang diluncurkan secara bertahap.
Configuration item
Required
Description
Change Target
Yes
Anda dapat memilih Database atau Data Source Instance.
CatatanSaat ini, Anda hanya dapat memilih instans MySQL dari jenis berikut untuk perubahan instans sumber data: RDS MySQL, PolarDB for MySQL, dan AnalyticDB for MySQL.
Database atau Data Source Instance
Yes
Cari dan pilih database atau instans yang memiliki izin perubahan.
CatatanSaat ini, Anda hanya dapat memilih satu instance untuk mengubah instance sumber data.
Reason Category
Yes
Pilih alasan perubahan data agar lebih mudah ditemukan nanti.
CatatanAdministrator dapat mengonfigurasi daftar kategori alasan di bagian . Untuk informasi selengkapnya, lihat Configuration management.
Business Background
Yes
Berikan deskripsi rinci tentang alasan atau tujuan perubahan untuk mengurangi beban komunikasi.
Execution Method
Yes
Pilih metode eksekusi untuk tiket:
-
Setelah disetujui, pengirim menjalankan operasi.
-
Eksekusi otomatis setelah disetujui.
-
Dieksekusi oleh approver terakhir.
CatatanAdministrator dapat memodifikasi daftar metode eksekusi di bagian . Untuk informasi selengkapnya, lihat Configuration management.
Affected Rows
Yes
Perkirakan jumlah baris data yang akan terpengaruh oleh perubahan ini.
Change SQL
Yes
Anda dapat memilih Text atau Attachment.
SQL Text
Yes
Item konfigurasi ini muncul hanya jika Anda mengatur Change SQL ke Text. Di kotak teks SQL, masukkan pernyataan SQL yang dapat dieksekusi langsung.
Catatan-
Pisahkan beberapa pernyataan SQL dengan titik koma (;).
-
Jika target perubahan adalah instans, Anda harus menambahkan nama database sebelum setiap nama tabel dalam pernyataan SQL. Gunakan format
${dbName}.${tableName}. -
Saat Anda mengirim tiket, sistem secara otomatis memeriksa sintaks SQL. Jika sintaks salah, Anda tidak dapat mengirim tiket.
Attachment
Yes
Item konfigurasi ini muncul hanya jika Anda mengatur Change SQL ke Attachment. Unggah lampiran SQL untuk perubahan tersebut.
CatatanLampiran dapat berupa file .txt, .zip, atau .sql. Ukuran file maksimum adalah 15 MB.
Rollback SQL
No
Anda dapat memilih Text atau Attachment.
CatatanDMS hanya akan mengisi informasi rollback SQL secara otomatis saat membuat tiket rollback jika Anda memasukkan SQL rollback atau mengunggah file rollback. Jika tidak, Anda harus memasukkan informasi tersebut sendiri.
SQL Text
No
Item konfigurasi ini muncul hanya jika Anda mengatur Rollback SQL ke Text. Masukkan pernyataan SQL rollback. SQL rollback adalah skrip kebalikan dari SQL perubahan.
Attachment
No
Item konfigurasi ini muncul hanya jika Anda mengatur Rollback SQL ke Attachment. Klik Upload File untuk mengunggah lampiran SQL rollback.
CatatanLampiran dapat berupa file .txt, .zip, atau .sql. Ukuran file maksimum adalah 15 MB.
Stakeholders
No
Stakeholder yang ditentukan dapat melihat tiket dan berkolaborasi di dalamnya. Pengguna yang bukan stakeholder tidak dapat melihat tiket, kecuali administrator dan DBA.
Ticket Attachment
No
Unggah lampiran untuk memberikan informasi tambahan untuk tiket ini.
-
-
Klik Submit Request.
Langkah 2: Lakukan Pemeriksaan Awal terhadap SQL
Setelah Anda mengirim tiket, sistem secara otomatis melakukan Pemeriksaan Awal. Jika Pemeriksaan Awal gagal, modifikasi pernyataan SQL berdasarkan prompt dan coba lagi.
Setelah Pemeriksaan Awal berhasil, status setiap item pemeriksaan (SQL Splitting, Type Check, Permission Check, SQL Review, dan Check Scanned Rows) menjadi Passed. Jumlah Affected Rows juga ditampilkan. Jumlah aktual baris yang terpengaruh bergantung pada perilaku eksekusi SQL.
Langkah 3: Setujui tiket
Setelah Pemeriksaan Awal berhasil, klik Submit for Approval. Di kotak dialog Notice, klik OK.
Approver dalam templat persetujuan default untuk perubahan data adalah DBA. Untuk mengubah templat persetujuan default, lihat Modify the default approval template.
Kotak dialog Notice menampilkan informasi validasi, seperti jumlah database fisik, jumlah pernyataan SQL, dan perkiraan jumlah baris yang terpengaruh. Jika jumlah baris yang terpengaruh yang diverifikasi sistem berbeda dengan jumlah yang Anda masukkan, pesan peringatan merah akan muncul. Konfirmasi informasi tersebut sebelum mengirim tiket.
Langkah 4: Jalankan perubahan
Jalankan perubahan selama jam sepi jika memungkinkan.
-
Setelah tiket disetujui, klik Execute Change. Di kotak dialog Task Settings, atur parameter eksekusi tugas, lalu klik Execute.
Catatan-
Saat membuat tiket, jika Anda mengatur Execution Method ke Execute automatically after approval, sistem melewati langkah ini.
-
Jika Anda restart tugas yang dijeda, skrip melanjutkan eksekusi dari titik di mana tugas dijeda.
Configuration item
Description
Execution Policy
Pilih kebijakan eksekusi:
-
Execute Immediately: Tugas dimulai segera setelah Anda mengklik Execute.
-
Scheduled Execution: Tentukan waktu mulai untuk tugas. Misalnya, jalankan tugas pada pukul 00:00:00 tanggal 22 Mei 2024.
CatatanWaktu eksekusi aktual tugas terjadwal mungkin memiliki margin kesalahan ±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. Hal ini mencegah tugas berjalan selama jam sibuk dan memengaruhi operasi bisnis.
CatatanWaktu akhir aktual tugas mungkin memiliki margin kesalahan ±1 menit.
Enable Global Transaction
Pilih apakah akan mengaktifkan transaksi global. Fitur ini dinonaktifkan secara default.
-
Aktifkan: Jika eksekusi gagal, semua perubahan diputar balik. Ini hanya berlaku untuk pernyataan DML, bukan pernyataan DDL.
-
Nonaktifkan: Tugas SQL diajukan satu per satu. Jika suatu tugas gagal, eksekusi berhenti, tetapi tidak ada perubahan yang diputar balik.
Enable Backup
Pilih apakah akan mengaktifkan backup. Fitur ini diaktifkan secara default. Jika Anda mengaktifkan fitur ini, Anda dapat menggunakan file backup untuk memulihkan data dengan cepat nanti.
Catatan-
Cadangan data hanya didukung saat Anda mengeksekusi pernyataan UPDATE dan DELETE.
-
Cadangan data tidak didukung untuk MongoDB dan Redis.
-
Aktifkan: Sebelum mengeksekusi pernyataan
UPDATEatauDELETE, sistem secara otomatis menghasilkan lampiran skrip backup.-
Jika database adalah MySQL atau MariaDB, pernyataan backup
REPLACE INTOdihasilkan.CatatanMySQL mencakup: RDS MySQL, PolarDB for MySQL, PolarDB-X, dan sumber MySQL lainnya.
-
Jika database menggunakan engine selain MySQL atau MariaDB, pernyataan backup
INSERTdihasilkan.
-
-
Nonaktifkan: Tidak ada lampiran backup yang dihasilkan.
Enable Primary/Standby Check
Setelah Anda mengaktifkan pemeriksaan primary/standby untuk database, Anda dapat memastikan sinkronisasi data real-time antara instans primary dan standby. Hal ini meningkatkan ketersediaan tinggi database dan pemulihan bencana yang cepat.
Grayscale Type
Kebijakan untuk mengeksekusi pernyataan SQL secara batch.
-
No Grayscale: DMS secara otomatis mengeksekusi semua pernyataan SQL dalam tugas.
-
Pause after the first SQL statement succeeds: Setelah pernyataan SQL pertama berhasil dieksekusi, DMS secara otomatis menjeda eksekusi. Untuk melanjutkan, klik Retry. Sisa pernyataan SQL akan dieksekusi sekaligus tanpa jeda tambahan.
-
Pause after each SQL statement succeeds: Eksekusi dijeda setelah setiap pernyataan SQL. Anda harus mengklik Retry secara manual untuk mengeksekusi pernyataan SQL berikutnya.
CatatanEksekusi tugas SQL dipantau oleh modul Security Rules, khususnya bagian SQL Execution Control. Ini mencakup mekanisme seperti timeout lock database sebelum eksekusi SQL, pemeriksaan beban database, dan kebijakan sleep setelah eksekusi SQL. Untuk memodifikasi pengaturan titik deteksi default, lihat Configure SQL execution control.
-
Setelah tiket berhasil dieksekusi, di kolom Actions, klik Details untuk melihat detail seperti status eksekusi, jumlah eksekusi, jumlah baris yang terpengaruh, skrip eksekusi, dan log.
-
Setelah tiket berhasil dieksekusi, Anda dapat membuka jendela SQL database target untuk memeriksa apakah perubahan data sesuai harapan.
-
-
Opsional: Buat tiket rollback untuk memulihkan data asli dengan cepat.
Jika perubahan data tidak sesuai harapan, Anda dapat membuat tiket rollback atau mengirim tiket perubahan data standar secara manual untuk memulihkan data asli dengan cepat. Langkah-langkah berikut menunjukkan cara membuat tiket rollback:
-
Di area Execution tiket, klik Generate Rollback Ticket di sebelah kanan tugas target.
-
Pilih Source rollback dan klik OK. Tiga sumber rollback berikut didukung:
-
Rollback text: Teks rollback yang Anda masukkan saat mengonfigurasi tiket.
-
Rollback attachment: Lampiran rollback yang Anda unggah saat mengonfigurasi tiket.
-
Backup file: Lampiran backup yang dihasilkan selama eksekusi tiket.
CatatanUntuk memulihkan data asli menggunakan file backup, Anda harus mengaktifkan backup sebelum mengeksekusi perubahan.
-
-
(Opsional): Anda dapat memodifikasi teks rollback, lampiran, atau file backup sesuai kebutuhan.
-
Rollback text: Anda dapat memodifikasinya langsung di kotak teks SQL.
-
Rollback attachment atau file backup: Anda dapat mengunduh lampiran ke komputer lokal, memodifikasinya, lalu mengunggah ulang ke tiket rollback.
-
-
Setelah Anda memastikan informasi rollback benar, klik Submit Request. Proses tiket selanjutnya sama dengan proses tiket perubahan data standar.
-
-
Unduh file backup.
Anda dapat mengunduh file backup untuk menyimpannya atau memodifikasinya sebelum mengunggahnya ke DMS.
-
Di kolom Actions, klik Download Backup. File backup berisi bagian utama berikut:
-
Pernyataan SQL asli untuk perubahan.
-
Pernyataan SQL kueri untuk perubahan data.
-
SQL backup perubahan data.
Contohnya:
/* [Database]: rds@rm-bp144d5ky4l4rli0417****.mysql.rds.aliyuncs.com:3306[rds mysql] */ /* [SQL]: UPDATE t_order SET product_id = 88 WHERE id = 10054 [BACKUP SQL]: SELECT * FROM t_order WHERE id = 10054 */ REPLACE INTO `t_order`(`id`,`product_id`,`gmt_create`,`gmt_modified`,`customer_id`,`price`,`status`,`province`) VALUES (10054,81,'2021-12-14 09:44:44','2021-12-14 09:44:44',71,63.45,'Success','Hangzhou'); -
-
Ekstrak pernyataan backup dari file backup. Setelah Anda memastikan pernyataan backup benar, kirim tiket perubahan data standar baru untuk memulihkan data sesuai kebutuhan.
CatatanJika pernyataan
UPDATEdieksekusi secara keliru dan pernyataan backup berupa pernyataanINSERT, Anda harus menentukan metode pemulihan sendiri.
-
-
(Opsional) Verifikasi bahwa perubahan sesuai harapan.
-
Di halaman detail tiket, di area Basic Information, arahkan pointer mouse ke nama database dan klik Query.
-
Anda akan diarahkan ke SQL Console. Kueri data tabel untuk memeriksa apakah data sesuai harapan.
-
FAQ
-
T: Saat saya mengajukan perubahan data di DMS, pengajuan gagal dengan pesan kesalahan: "Topologi database XXX yang dipublikasikan tidak konsisten dengan topologi database garis dasar perubahan. Harap perbaiki topologi dan coba lagi."
A: Untuk perubahan logical database, struktur sharding database garis dasar dan database produksi harus konsisten. Misalnya, jika database garis dasar memiliki 8 shard dan 256 tabel, database produksi juga harus memiliki 8 shard dan 256 tabel. Konsistensi ini diperlukan karena skrip untuk perubahan online dihasilkan dengan membandingkan database produksi dengan database garis dasar.
-
Q: Saat saya membuat tiket perubahan data di DMS, saya tidak dapat menemukan Redis DB.
A: Daftar drop-down database mungkin tidak menampilkan semua database yang tersedia. Biasanya hanya menampilkan database yang baru saja Anda gunakan. Jika database tidak ada dalam daftar drop-down, Anda harus mencarinya. Anda dapat menyalin string koneksi dari jendela SQL Console dan menggunakannya untuk pencarian.