Data Management (DMS) memungkinkan Anda mengubah skema tanpa mengunci tabel. Fitur ini mencegah gangguan bisnis akibat penguncian tabel dan mengurangi latensi yang disebabkan oleh fitur DDL online MySQL selama replikasi utama-sekunder. Proses ini melibatkan pembuatan satu atau lebih tabel sementara dengan skema baru, mereplikasi data penuh dan data log biner inkremental ke tabel tersebut, lalu menggantikan tabel asli dengan tabel sementara.
Prasyarat
Instansi database harus dikelola dalam mode Stable Change atau Security Collaboration di DMS. Untuk informasi lebih lanjut, lihat Mode Kontrol.
Fitur perubahan skema tanpa kunci harus diaktifkan untuk instansi database Anda. Untuk detail lebih lanjut, lihat Aktifkan Fitur Perubahan Skema Tanpa Kunci.
CatatanPada contoh berikut, fitur ini diaktifkan untuk instansi ApsaraDB RDS for MySQL dalam lingkungan pengembangan simulasi.
Prosedur
Pada contoh berikut, tipe data kolom long_text_a pada tabel big_table diubah dari varchar(1024) menjadi text.
Ajukan Tiket sebagai pengguna biasa.
Masuk ke Konsol DMS V5.0 sebagai pengguna biasa.
Di bilah navigasi atas, pilih
CatatanJika menggunakan konsol DMS dalam mode sederhana, gerakkan pointer ke ikon
di sudut kiri atas konsol dan pilih All functions > Database Development > Data Change > Lockless Change.Atur parameter-parameter yang dijelaskan dalam tabel berikut dan klik Submit.
Parameter
Deskripsi
Database
Wajib. Database tempat Anda ingin mengubah data. Dalam contoh ini, database
poc_devdalam mode Secure Collaboration dipilih.Reason Category
Wajib. Alasan untuk perubahan data. Ini membantu Anda menemukan tiket dalam operasi selanjutnya.
Business Background
Wajib. Tujuan atau objektif dari perubahan data. Ini mengurangi komunikasi yang tidak perlu.
Execution Method
Wajib. Metode eksekusi tiket yang diajukan. Pilih Last Auditor Execute.
Affected Rows
Wajib. Estimasi jumlah baris data yang akan terpengaruh oleh operasi penghapusan data. Untuk mendapatkan jumlah sebenarnya dari baris yang terpengaruh, Anda dapat menggunakan fungsi
COUNTdalam pernyataan SQL dan menjalankan pernyataan SQL pada tab SQLConsole .SQL Statements for Change
Wajib. Pernyataan SQL yang ingin Anda jalankan untuk mengubah data. Dalam contoh ini, pernyataan
ALTERberikut dijalankan:ALTER TABLE `big_table` MODIFY COLUMN `long_text_a` text NULL AFTER `name`;CatatanPernyataan ini mengubah tipe data kolom
long_text_adarivarchar(1024)menjaditext.SQL Statements for Rollback
Opsional. Pernyataan SQL yang dapat Anda jalankan untuk membatalkan perubahan data.
Change Stakeholder
Opsional. Pemangku kepentingan yang terlibat dalam perubahan data. Semua pemangku kepentingan yang ditentukan dapat melihat detail tiket dan membantu dalam proses persetujuan. Pengguna yang tidak ditentukan tidak diizinkan untuk melihat detail tiket (kecuali administrator DMS dan DBA).
Di halaman Ticket Details, konfirmasikan detail tiket.
CatatanAnda dapat melihat detail tiket di halaman Ticket Details. DMS melakukan pra-pemeriksaan terhadap pernyataan SQL yang ingin Anda jalankan. Item pra-pemeriksaan meliputi sintaks pernyataan SQL, apakah jenis pernyataan SQL sesuai dengan aturan keamanan yang dikonfigurasikan, izin pengguna yang mengajukan tiket, dan estimasi jumlah baris yang akan dipindai.
Setelah detail tiket dikonfirmasi dan pra-pemeriksaan selesai, klik Submit for Approval. Dalam pesan yang muncul, klik OK.
PentingAnda hanya dapat memodifikasi detail tiket sebelum mengajukannya untuk persetujuan.
Setujui tiket sebagai administrator DMS.
Masuk ke Konsol DMS V5.0 sebagai administrator DMS.
Di halaman Beranda konsol DMS, klik Pending Tickets di bagian My Tickets.
Di halaman My Tickets, temukan tiket yang ingin Anda tangani dan klik nomor tiket di kolom Ticket Number.
Di panel Ticket Details, konfirmasikan informasi perubahan data dalam tiket dan klik Approve.
Di kotak dialog yang muncul, masukkan komentar dan klik Submit.
Jalankan tiket sebagai pengguna biasa.
Masuk ke Konsol DMS V5.0 sebagai pengguna biasa.
Di bagian Execute di panel Detail Tiket, klik Execute Change. Di kotak dialog yang muncul, atur parameter-parameter yang dijelaskan dalam tabel berikut dan klik Confirm Execution.
Parameter
Deskripsi
Execute strategy
Menentukan apakah tugas akan dieksekusi segera atau pada waktu yang dijadwalkan. Nilai valid:
Running immediately: DMS menjalankan tugas segera setelah Anda mengirimkan tugas.
Schedule: DMS menjalankan tugas pada waktu yang dijadwalkan yang Anda tentukan.
Nilai default: Running immediately.
Transaction Control
Menentukan apakah kontrol transaksi diaktifkan. Nilai valid:
on: Jika pernyataan SQL gagal dijalankan, semua pernyataan DML yang telah dieksekusi dalam transaksi yang sama akan dibatalkan. Pernyataan DDL tidak dapat dibatalkan.
off: Satu pernyataan SQL dijalankan pada satu waktu. Jika pernyataan SQL gagal dijalankan, transaksi dihentikan. Pernyataan SQL lain yang telah dieksekusi dalam transaksi yang sama tidak dibatalkan.
Nilai default: off.
Data Backup
Menentukan apakah data dicadangkan. Nilai valid:
on: DMS menghasilkan skrip
INSERTuntuk mencadangkan data yang akan terpengaruh ketika pernyataanUPDATEatauDELETEdijalankan.off: Tidak ada skrip cadangan yang dihasilkan untuk data tersebut.
Nilai default: on.
CatatanSetelah Anda klik Confirm Execution, DMS mulai menjalankan tugas.
Lihat kemajuan tugas dan verifikasi skema
Gerakkan pointer ke nama database yang akan diubah di bagian Basic Information sebagai administrator DMS. Di menu yang muncul, klik Query.
Anda akan dialihkan secara otomatis ke halaman SQL Console.
Di tab SQL Console, masukkan pernyataan kueri SQL di editor SQL. Kemudian, klik Execute di bagian atas editor SQL.
Sebagai contoh, Anda dapat memasukkan pernyataan SQL berikut untuk menanyakan tabel-tabel dari database saat ini.
SHOW TABLES;CatatanKetika DMS mengubah skema tabel tanpa mengunci tabel, dua tabel sementara dihasilkan.
Di bilah navigasi atas, pilih .
CatatanJika menggunakan konsol DMS dalam mode sederhana, gerakkan pointer ke ikon
di sudut kiri atas konsol DMS dan pilih .Klik nomor tugas dari tugas yang ingin Anda kelola. Kotak dialog Execution details muncul.
Klik Progress di kolom Operation.
Di pesan Perubahan Struktur Tanpa Kunci, lihat informasi kemajuan tugas.
Setelah tugas selesai, verifikasi skema.
Skema tabel
big_tabletelah diubah, dan tabel sementara telah dihapus.