Sinkronisasi tabel bayangan di Data Management (DMS) secara otomatis membuat tabel bayangan dalam database berdasarkan skema tabel sumber. Tabel bayangan mencerminkan struktur tabel sumbernya, tetapi diberi nama dengan awalan atau akhiran yang dapat dikonfigurasi, sehingga aman digunakan untuk uji stres end-to-end tanpa memengaruhi data produksi. DMS mendukung sinkronisasi satu kali dan sinkronisasi terjadwal.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Database sumber dari salah satu jenis berikut:
MySQL: ApsaraDB RDS for MySQL, PolarDB for MySQL, ApsaraDB MyBase for MySQL, PolarDB-X, AnalyticDB for MySQL V3.0, dan database MySQL dari sumber lain
SQL Server: ApsaraDB RDS for SQL Server, ApsaraDB MyBase for SQL Server, dan database SQL Server dari sumber lain
PostgreSQL: ApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, ApsaraDB MyBase for PostgreSQL, AnalyticDB for PostgreSQL, dan database PostgreSQL dari sumber lain
MariaDB: ApsaraDB RDS for MariaDB dan database MariaDB dari sumber lain
ApsaraDB for OceanBase dalam mode MySQL
PolarDB for PostgreSQL (Kompatibel dengan Oracle)
Izin query dan perubahan pada database sumber. Lihat Lihat izin yang dimiliki
Aturan keamanan Enable execution capability diaktifkan untuk database tempat Anda ingin membuat tabel bayangan. Lihat Aktifkan kemampuan eksekusi
Tanpa aturan keamanan Enable execution capability, DMS dapat membandingkan skema tetapi tidak dapat mengeksekusi Pernyataan SQL untuk menerapkan perubahan.
Buat tabel bayangan
Masuk ke Konsol DMS V5.0.
Pada bilah navigasi atas, pilih Database Development > Schema Change > Shadow Table Synchronization.
Dalam mode simple, arahkan kursor ke ikon di pojok kiri atas dan pilih All Features > Database Development > Schema Change > Shadow Table Synchronization.
Pada halaman Table Sync Tickets, konfigurasikan parameter berikut:
Parameter Deskripsi Source Database Database tempat tabel bayangan akan dibuat. Akun Anda harus memiliki izin query dan perubahan pada database ini. Lihat Lihat izin yang dimiliki. Prefix / Suffix Awalan atau akhiran yang ditambahkan ke setiap nama tabel sumber untuk membentuk nama tabel bayangan. Format: <Prefix>+ nama tabel sumber, atau nama tabel sumber +<Suffix>. Nilai default: awalan__test_, menghasilkan nama seperti__test_<source_table_name>.Synchronized Table Cakupan tabel yang akan disinkronkan. Partial Tables: hanya menyinkronkan tabel yang Anda pilih. All Tables: menyinkronkan semua tabel di dalam database. Synchronization Policy Waktu menjalankan sinkronisasi. Synchronize Now: dijalankan sekali segera setelah Anda mengirimkan tiket. Scheduled Synchronization: dijalankan sesuai jadwal berulang yang Anda tentukan menggunakan ekspresi crontab. Interval minimum adalah 1 jam. Jadwal default dijalankan setiap hari pukul 02.00. Whether to Ignore Error Cara DMS menangani error eksekusi SQL. Not Ignore: menghentikan eksekusi saat terjadi error. Ignore: melewati pernyataan yang gagal dan melanjutkan eksekusi pernyataan berikutnya. Klik Submit. DMS memulai analisis skema dan membandingkan skema tabel sumber untuk menentukan Pernyataan SQL yang diperlukan. Jika skema berubah selama langkah ini, klik Re-analyze pada langkah Schema Analysis untuk memperbarui analisis.
Klik Submit for Approval dan tunggu hingga tiket disetujui. Langkah ini mengirimkan tiket melalui alur kerja persetujuan organisasi Anda. DMS tidak akan mengeksekusi Pernyataan SQL apa pun sampai tiket disetujui dan Anda melanjutkan ke langkah berikutnya.
Klik Submit and Synchronize to Target Database.
Tinjau pernyataan SQL yang akan dieksekusi, lalu klik Confirm Synchronization. DMS akan mengeksekusi pernyataan SQL tersebut untuk menyinkronkan skema. Klik Details guna melihat log operasi, termasuk pernyataan SQL, durasi eksekusi, dan detail penjadwalan.
Ekspresi crontab
Gunakan ekspresi crontab untuk menjadwalkan sinkronisasi berulang. Ekspresi tersebut merupakan string enam bidang yang dipisahkan spasi:
Second Minute Hour Day Month WeekReferensi bidang
| Bidang | Nilai valid | Karakter khusus |
|---|---|---|
| Second | 0–59 | - * / |
| Minute | 0–59 | - * / |
| Hour | 0–23 | - * / |
| Day | 1–31 | - * ? / L W C |
| Month | 1–12 atau JAN–DEC | - * / |
| Week | 1–7 atau SUN–SAT (1 = Minggu, 2 = Senin, ..., 7 = Sabtu) | - * ? / L C # |
Tentukan nilai untuk salah satu bidang Day atau Week, bukan keduanya. Atur bidang yang tidak digunakan menjadi ?.
Karakter khusus
| Karakter | Deskripsi | Contoh |
|---|---|---|
* | Semua nilai | * dalam Menit berjalan setiap menit |
? | Nilai apa pun (hanya untuk Day dan Week) | Placeholder untuk salah satu dari Day atau Week yang tidak Anda tentukan |
- | Rentang | 5-20 pada Minutes berjalan setiap menit dari menit ke-5 hingga menit ke-20 |
/ | Mulai dan interval | 5/20 pada Minutes berjalan pada menit ke-5, 25, dan 45 |
, | Daftar | 5,20 pada Minutes berjalan pada menit ke-5 dan menit ke-20 |
L | Hari terakhir atau hari kerja terakhir (hanya untuk Day dan Week) | 5L pada Week berjalan pada Kamis terakhir setiap bulan |
W | Hari kerja terdekat Senin–Jumat (hanya untuk Day) | 5W berjalan pada hari kerja terdekat dengan tanggal 5 setiap bulan |
LW | Hari kerja terakhir dalam sebulan | — |
# | Hari kerja ke-N dalam bulan (hanya untuk Week) | 4#2 berjalan pada Rabu minggu kedua (4 = Rabu, 2 = minggu kedua) |
Contoh
| Ekspresi | Jadwal |
|---|---|
0 0 23 ? * 7,1 | 23.00 setiap Sabtu (7) dan Minggu (1) |
0 30 9 5,15,25 * ? | 09.30 pada tanggal 5, 15, dan 25 setiap bulan |
0 0 0 */2 * ? | 00.00 setiap dua hari |
13 13 15 20 * ? | 15:13:13 pada tanggal 20 setiap bulan |