Fitur optimisasi tinjauan SQL dalam aturan keamanan Data Management (DMS) menegakkan standar untuk pernyataan SQL yang dieksekusi di SQL Console atau dalam tiket perubahan data. Fitur ini secara otomatis memeriksa masalah seperti tidak adanya komentar pada tabel atau kolom wajib yang tidak terisi, serta memberikan saran optimisasi—misalnya, merekomendasikan perubahan tanpa lock. Hal ini meningkatkan kualitas pengembangan dan membantu database administrator (DBA) meninjau pernyataan SQL. Topik ini menjelaskan cara menyiapkan aturan tinjauan SQL dan menerapkannya pada tiket perubahan data.
Latar Belakang
Data Management (DMS) menyediakan serangkaian aturan tinjauan SQL bawaan dalam aturan keamanannya, seperti: A table must have comments, An INSERT statement cannot insert a null value into a NOT NULL column, dan Field names cannot be duplicated in an INSERT statement.
Untuk ikhtisar pemeriksaan kepatuhan SQL dan saran optimisasi, lihat Konfigurasikan optimisasi tinjauan SQL.
Prasyarat
Sebelum memulai, buat tabel migration_job dengan pernyataan berikut:
CREATE TABLE `migration_job` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
`gmt_create` datetime NOT NULL COMMENT 'Creation time',
`ref_id` bigint(20) unsigned NOT NULL COMMENT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Test';Jika instans Anda menggunakan mode kontrol Security Collaboration, Anda dapat membuat dan menerapkan kumpulan aturan keamanan kustom ke instans database tersebut. Untuk informasi selengkapnya, lihat Buat kumpulan aturan keamanan dan Terapkan kumpulan aturan keamanan.
Langkah 1: Konfigurasikan aturan keamanan
Bagian ini menjelaskan cara mengonfigurasi aturan optimisasi tinjauan SQL untuk mode Security Collaboration. Untuk menyesuaikan aturan pada mode Flexible Management atau Stable Change, klik SQL review optimization di sebelah mode kontrol yang sesuai.
Masuk ke DMS 5.0.
-
Arahkan penunjuk ke ikon
di pojok kiri atas dan pilih . CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih di bilah navigasi atas.
Temukan kumpulan aturan keamanan yang dituju dan klik Edit di kolom Actions.
Di panel kiri halaman Details, klik tab SQL audit optimization recommendations.
Temukan aturan A table must have a primary key dan klik Edit di kolom Actions.
CatatanAnda dapat mengklik ikon
di samping Tag, Behavioral action, atau Status untuk memfilter aturan dengan cepat. Pengaturan Tag menentukan cakupan aturan, seperti pernyataan DDL atau DML. Status dapat diaktifkan atau dinonaktifkan.Di kotak dialog Rule content configuration, konfigurasikan parameter. Untuk contoh ini, atur behavioral action menjadi Must Improve.
CatatanAturan sistem awal tidak mencakup opsi Must Improve. Untuk informasi selengkapnya tentang opsi behavioral action, lihat System behavioral actions.
Klik OK.
Jika Anda menggunakan fitur seperti pengembangan data, perubahan data, dan tinjauan SQL, fitur optimisasi tinjauan SQL akan memverifikasi pernyataan SQL berdasarkan aturan keamanan yang telah dikonfigurasi.
Langkah 2: Eksekusi perubahan data
Masuk ke DMS 5.0.
Arahkan penunjuk ke ikon
di pojok kiri atas Konsol DMS dan pilih . CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih di bilah navigasi atas.
Di halaman Data Change Ticket Application, konfigurasikan parameter dan klik Submit Application.
CatatanUntuk deskripsi parameter, lihat Normal Data Modify.
Pilih instans database yang terkait dengan kumpulan aturan keamanan yang dituju.
Kode SQL untuk perubahan data adalah sebagai berikut:
CREATE TABLE test1 ( id bigint COMMENT 'id', name varchar(60) COMMENT 'name' ) DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_bin ENGINE = INNODB; INSERT INTO migration_job(id, ref_id, gmt_create, gmt_create) VALUES(1, null, now(), now());
Setelah Anda mengirimkan tiket, sistem memeriksa pernyataan SQL terhadap aturan keamanan yang dikonfigurasi di Langkah 1.
Fitur optimisasi tinjauan SQL melakukan audit terhadap pernyataan yang diajukan. Pada contoh ini, audit menemukan satu item Must Improve, dua potensi masalah, dan satu item Suggested Improvement.
Klik View Details. Arahkan kursor ke item kesalahan tinjauan SQL untuk melihat saran spesifik.
Berdasarkan saran tersebut, klik Modify SQL, optimalkan SQL, lalu klik Confirm Change.
Modifikasi dilakukan sebagai berikut:
Pada pernyataan
CREATE, tambahkan primary key dan komentar pada tabeltest1.Pada pernyataan
INSERT, hapus bidanggmt_createyang duplikat dan masukkan nilai untuk bidangref_id.
Kode SQL yang telah dimodifikasi adalah sebagai berikut:
CREATE TABLE test1 ( id bigint PRIMARY KEY COMMENT 'id', name varchar(60) COMMENT 'name' ) DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_bin ENGINE = INNODB COMMENT = 'Comment'; INSERT INTO migration_job(id, ref_id, gmt_create) VALUES(1, 2, now());Sistem melakukan pemeriksaan awal (precheck) lagi.
Klik Submit for Approval dan tunggu administrator menyetujui tiket tersebut.
Setelah tiket disetujui, sistem menghasilkan tugas eksekusi.
Setelah tiket disetujui, klik Execute Change. Di kotak dialog Task Settings, konfigurasikan parameter eksekusi dan klik Confirm and Execute.
CatatanSaat membuat tiket, jika Execution Method diatur ke Automatically execute after approval, sistem akan melewati langkah ini secara otomatis.
Jika tugas yang dijeda dijalankan ulang, eksekusi dilanjutkan dari titik di mana tugas tersebut dijeda.
Parameter
Deskripsi
Execution strategy
Pilih strategi eksekusi:
Execute Immediately: Tugas dimulai segera setelah Anda mengklik Confirm and Execute.
Scheduled Execution: Tentukan waktu di masa depan untuk memulai tugas. Misalnya, eksekusi tugas pada pukul 00.00 tanggal 22 Mei 2024.
Enable global transaction
Menentukan apakah transaksi global diaktifkan. Secara default, opsi ini dinonaktifkan.
Diaktifkan: Jika eksekusi gagal, semua perubahan dikembalikan (rollback). Ini hanya berlaku untuk pernyataan DML, bukan pernyataan DDL.
Dinonaktifkan: Pernyataan SQL dikirim satu per satu. Jika suatu pernyataan gagal, tugas berhenti, tetapi perubahan sebelumnya tidak dikembalikan.
Enable backup
Menentukan apakah backup dibuat sebelum eksekusi. Opsi ini diaktifkan secara default. Mengaktifkannya memungkinkan Anda memulihkan data dengan cepat dari file backup.
Note
Backup hanya didukung untuk pernyataan UPDATE dan DELETE.
Backup tidak didukung untuk MongoDB dan Redis.
Diaktifkan: Sebelum mengeksekusi pernyataan
UPDATEatauDELETE, sistem secara otomatis menghasilkan skrip backup yang sesuai.Untuk database MySQL dan MariaDB, sistem menghasilkan pernyataan backup
REPLACE INTO.Note
Database MySQL mencakup RDS for MySQL, PolarDB for MySQL, PolarDB-X, dan sumber lain yang kompatibel dengan MySQL.
Untuk mesin database selain MySQL dan MariaDB, sistem menghasilkan pernyataan backup
INSERT.
Dinonaktifkan: Tidak ada skrip backup yang dihasilkan.
CatatanModul SQL execution control dalam security rules memantau eksekusi tugas SQL. Ini mencakup pemeriksaan seperti timeout lock database, beban database, dan kebijakan jeda pasca-eksekusi. Untuk mengubah pengaturan default, lihat Konfigurasikan kontrol eksekusi SQL.
Setelah tiket berhasil dieksekusi, Anda dapat mengklik Details di kolom Actions untuk melihat status eksekusi, jumlah eksekusi, baris yang terpengaruh, skrip yang dieksekusi, log, dan informasi lainnya.
Setelah eksekusi berhasil, Anda juga dapat menghubungkan ke SQL console database untuk memverifikasi bahwa perubahan data telah diterapkan sesuai harapan.
Operasi Lainnya
Setelah tiket berhasil dieksekusi, klik Details untuk melihat log eksekusi, yang mencakup pernyataan yang dieksekusi, durasi eksekusi, dan detail penjadwalan.