Layanan Transmisi Data (DTS) memungkinkan Anda melakukan sinkronisasi data secara berkelanjutan dari instans PolarDB-X 2.0 ke instans AnalyticDB for PostgreSQL, sehingga Anda dapat menjalankan analitik dan kueri real-time terhadap data transaksional tanpa memengaruhi database sumber.
Prasyarat
Sebelum memulai, pastikan Anda telah menyiapkan:
Instans AnalyticDB for PostgreSQL dengan kapasitas penyimpanan yang cukup untuk menampung seluruh data dari instans PolarDB-X 2.0 sumber. Untuk petunjuk penyiapan, lihat Buat instans.
Database yang telah dibuat di instans tujuan untuk menerima data yang disinkronkan. Untuk petunjuk penyiapan, lihat bagian "CREATE DATABASE" dalam Sintaks SQL.
Izin yang sesuai pada kedua database sumber dan tujuan (lihat Izin yang diperlukan untuk akun database).
Batasan
Database sumber
| Batasan | Detail |
|---|---|
| Persyaratan tabel | Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE, dengan semua field bersifat unik. Tabel tanpa kendala ini dapat menghasilkan baris duplikat di tujuan. |
| Jumlah tabel (saat mengedit nama objek) | Jika Anda mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 5.000 tabel. Melebihi batas ini menyebabkan error permintaan. Bagi pekerjaan menjadi beberapa tugas, atau lakukan sinkronisasi di tingkat database. |
| Pencatatan log biner | Pencatatan log biner harus diaktifkan di konsol PolarDB-X 2.0 (lihat Pengaturan parameter), dan binlog_row_image harus diatur ke full. Jika salah satu persyaratan tidak terpenuhi, pemeriksaan awal gagal dan tugas tidak dapat dimulai. |
| Periode retensi log biner | Hanya sinkronisasi inkremental: pertahankan log biner minimal selama 24 jam. Sinkronisasi penuh + inkremental: pertahankan log biner minimal selama 7 hari; setelah sinkronisasi penuh selesai, Anda dapat mengatur periode retensi lebih dari 24 jam. Jika DTS tidak dapat membaca log biner, tugas gagal dan ketidakkonsistenan atau kehilangan data dapat terjadi. |
| Kompatibilitas MySQL | Instans PolarDB-X harus kompatibel dengan MySQL V5.7. |
Batasan lainnya
Hanya tabel yang dapat dipilih sebagai objek sinkronisasi. Tabel Append-optimized (AO) tidak didukung.
Jika pemetaan kolom antara sumber dan tujuan tidak lengkap atau skema berbeda, data pada kolom yang tidak dipetakan akan hilang.
Jalankan tugas sinkronisasi selama jam sepi. Sinkronisasi data penuh awal menggunakan sumber daya baca dan tulis pada database sumber dan tujuan, yang dapat meningkatkan beban server.
Operasi INSERT konkuren selama sinkronisasi data penuh awal menyebabkan fragmentasi tabel di tujuan, sehingga ruang tabel tujuan akan lebih besar daripada sumber setelah sinkronisasi penuh selesai.
Tulis data ke database tujuan hanya melalui DTS selama sinkronisasi. Menulis melalui alat lain menyebabkan ketidakkonsistenan data, dan operasi DDL Online DMS dapat menyebabkan kehilangan data di database tujuan.
Kasus khusus
DTS secara berkala memperbarui tabel dts_health_check.ha_health_check di database sumber untuk memajukan posisi log biner.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. |
Operasi SQL yang didukung
DTS menyinkronkan operasi SQL berikut:
DML: INSERT, UPDATE, DELETE
DDL: ADD COLUMN
CREATE TABLE tidak didukung. Untuk menyinkronkan tabel yang baru dibuat, tambahkan secara manual ke objek yang dipilih. Lihat Tambahkan objek ke tugas sinkronisasi data.
Izin yang diperlukan untuk akun database
Berikan izin yang diperlukan kepada akun database sebelum membuat tugas sinkronisasi.
| Database | Izin yang diperlukan |
|---|---|
| PolarDB-X 2.0 sumber | SELECT pada objek yang akan disinkronkan, REPLICATION SLAVE, REPLICATION CLIENT |
| AnalyticDB for PostgreSQL tujuan | Hak baca dan tulis pada database tujuan. Gunakan akun awal atau akun dengan izin RDS_SUPERUSER. |
Untuk informasi lebih lanjut, lihat Kelola akun database dan Izin yang diperlukan untuk menyinkronkan data.
Untuk instans AnalyticDB for PostgreSQL tujuan, lihat Buat akun database dan Kelola izin akun.
Buat tugas sinkronisasi
Langkah 1: Buka halaman Tugas Sinkronisasi Data
Masuk ke Konsol DMS.
Pada bilah navigasi atas, klik DTS.
Di panel navigasi sebelah kiri, pilih DTS (DTS) > Data Synchronization.
Navigasi aktual dapat berbeda tergantung mode dan tata letak DMS Anda. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS. Atau, buka langsung halaman Tugas Sinkronisasi Data di konsol DTS baru.
Langkah 2: Pilih wilayah
Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih Wilayah tempat Anda ingin membuat Tugas.halaman Data Synchronization Tasks dari konsol DTS baru
Di konsol DTS baru, pilih wilayah di pojok kiri atas halaman.
Langkah 3: Konfigurasikan database sumber dan tujuan
Klik Create Task. Di wizard Create Task, konfigurasikan parameter berikut:
Database sumber
| Parameter | Nilai |
|---|---|
| Task Name | Nama deskriptif untuk tugas. DTS memberikan nama secara otomatis, tetapi nama yang bermakna membantu Anda mengidentifikasi tugas nanti. Nama tugas tidak perlu unik. |
| Select an existing DMS database instance | (Opsional) Pilih instans terdaftar yang sudah ada untuk mengisi otomatis parameter database. Jika dilewati, konfigurasikan parameter secara manual. |
| Database Type | Pilih PolarDB-X 2.0. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah instans PolarDB-X 2.0. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk sinkronisasi dalam akun yang sama. |
| Instance ID | ID instans PolarDB-X 2.0. |
| Database Account | Akun untuk instans PolarDB-X 2.0. Lihat Izin yang diperlukan untuk akun database. |
| Database Password | Kata sandi akun database. |
Database tujuan
| Parameter | Nilai |
|---|---|
| Select an existing DMS database instance | (Opsional) Pilih instans terdaftar yang sudah ada untuk mengisi otomatis parameter database. Jika dilewati, konfigurasikan parameter secara manual. |
| Database Type | Pilih AnalyticDB for PostgreSQL. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah instans AnalyticDB for PostgreSQL. |
| Instance ID | ID instans AnalyticDB for PostgreSQL. |
| Database Name | Nama database di instans tujuan yang menerima data yang disinkronkan. |
| Database Account | Akun untuk instans AnalyticDB for PostgreSQL. Lihat Izin yang diperlukan untuk akun database. |
| Database Password | Kata sandi akun database. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan instans Elastic Compute Service (ECS) yang menghosting database yang dikelola sendiri. Untuk database yang dikelola sendiri di pusat data lokal atau cloud pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Lihat Tambahkan blok CIDR server DTS ke pengaturan keamanan database lokal.
Menambahkan blok CIDR server DTS ke daftar putih atau grup keamanan membawa risiko keamanan potensial. Sebelum melanjutkan, ambil langkah perlindungan seperti memperkuat kredensial, membatasi port yang terbuka, mengautentikasi panggilan API, melakukan audit rutin terhadap aturan daftar putih, dan memblokir blok CIDR yang tidak sah. Pertimbangkan untuk menghubungkan melalui Express Connect, VPN Gateway, atau Smart Access Gateway (SAG) demi keamanan yang lebih baik.
Langkah 5: Pilih objek dan jenis sinkronisasi
Konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih ketiganya: Schema Synchronization, Schema Synchronization, dan Incremental Data Synchronization. DTS secara default telah memilih Incremental Data Synchronization. Sinkronisasi data penuh memigrasi data historis terlebih dahulu, menetapkan garis dasar untuk sinkronisasi inkremental berkelanjutan. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors (direkomendasikan): DTS memeriksa konflik nama tabel sebelum memulai. Jika ada konflik, pemeriksaan awal gagal. Gunakan pemetaan nama objek untuk mengganti nama tabel yang bertabrakan di tujuan. Ignore Errors and Proceed: melewati pemeriksaan konflik. Selama sinkronisasi penuh, DTS melewati baris yang bertabrakan dan mempertahankan data tujuan yang sudah ada. Selama sinkronisasi inkremental, baris yang bertabrakan akan menimpa data tujuan. Jika skema berbeda, inisialisasi dapat gagal atau kolom bisa hilang. Gunakan dengan hati-hati. |
| Capitalization of object names in destination instance | Mengontrol apakah nama database, tabel, dan kolom di tujuan mengikuti konvensi huruf besar/kecil dari sumber atau tujuan. Default adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Source Objects | Pilih satu atau beberapa tabel dari Source Objects dan klik ikon panah untuk memindahkannya ke Selected Objects. Hanya tabel yang didukung — view, trigger, dan prosedur tersimpan tidak disinkronkan. |
| Selected Objects | Klik kanan objek untuk mengganti namanya, menetapkan kondisi filter WHERE, atau memilih operasi SQL mana yang akan disinkronkan. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Perhatikan bahwa mengganti nama objek dapat menyebabkan objek dependen gagal disinkronkan. |
Langkah 6: Konfigurasikan pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Select the dedicated cluster used to schedule the task | Biarkan pada nilai default (kluster bersama) kecuali Anda telah membeli kluster khusus. Lihat Apa itu kluster khusus DTS. |
| Set Alerts | Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan kontak. Lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS. |
| Retry Time for Failed Connections | Durasi DTS mencoba kembali koneksi yang gagal setelah tugas dimulai. Atur ke nilai lebih dari 30 menit (rentang valid: 10–1.440 menit; default: 720). Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu coba ulang terpendek di antara tugas-tugas tersebut yang berlaku. |
| Wait time before a retry for other issues | Durasi DTS mencoba kembali setelah operasi DDL atau DML gagal. Atur ke nilai lebih dari 10 menit (rentang valid: 1–1.440 menit; default: 10). Nilai ini harus lebih kecil dari nilai Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan BPS of Full Data Migration untuk mengurangi beban pada tujuan selama sinkronisasi penuh. Opsi ini hanya tersedia saat Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Synchronization | Konfigurasikan RPS of Incremental Data Migration dan BPS of Incremental Data Migration untuk mengurangi beban pada tujuan selama sinkronisasi inkremental. |
| Environment Tag | (Opsional) Beri tag pada instans DTS untuk identifikasi. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Pilih Yes untuk mencegah DTS menulis operasi heartbeat ke database sumber. Ini menghindari dampak pada backup fisik dan kloning, tetapi mungkin menampilkan offset latensi di konsol DTS. Pilih No untuk menulis operasi heartbeat ke database sumber. Fitur tertentu seperti backup fisik dan kloning mungkin terpengaruh. |
| Configure ETL | Pilih Yes untuk mengonfigurasi fitur ekstrak, transformasi, dan muat (ETL) serta masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasikan ETL dalam tugas migrasi atau sinkronisasi data. |
Langkah 7: (Opsional) Konfigurasikan bidang database dan tabel
Klik Next: Configure Database and Table Fields.
Di halaman ini, tentukan tipe, kolom kunci primer, dan kunci distribusi untuk setiap tabel yang Anda sinkronkan ke AnalyticDB for PostgreSQL. Langkah ini tersedia hanya jika Anda memilih Schema Synchronization di Langkah 5.
Atur Definition Status ke All untuk melihat dan mengedit semua tabel.
Di Primary Key Column, Anda dapat menentukan beberapa kolom untuk membentuk kunci primer komposit. Setidaknya satu kolom kunci primer juga harus ditetapkan sebagai kunci distribusi. Lihat Kelola tabel dan Definisikan distribusi tabel.
Langkah 8: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Tugas hanya dapat dilanjutkan setelah semua pemeriksaan lolos.
Jika pemeriksaan gagal, klik View Details di sebelah item yang gagal, perbaiki masalahnya, lalu jalankan kembali pemeriksaan awal.
Jika peringatan dipicu untuk item yang dapat diabaikan dengan aman, klik Confirm Alert Details, lalu Ignore, konfirmasi dengan OK, dan klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Untuk melihat pratinjau parameter API yang digunakan untuk mengonfigurasi instans ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.
Langkah 9: Beli instans
Tunggu hingga tingkat keberhasilan pemeriksaan awal mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: bayar di muka untuk satu hingga sembilan bulan, atau satu, dua, tiga, atau lima tahun. Lebih hemat biaya untuk tugas jangka panjang. Pay-as-you-go: dikenai biaya per jam. Cocok untuk tugas jangka pendek; rilis instans setelah selesai untuk menghentikan biaya. |
| Resource Group | Kelompok sumber daya untuk instans. Default: default resource group. Lihat Apa itu Resource Management?. |
| Instance Class | Spesifikasi sinkronisasi menentukan throughput dan performa. Pilih berdasarkan volume data dan kebutuhan latensi Anda. Lihat Spesifikasi instansi sinkronisasi data. |
Langkah 10: Mulai tugas
Baca dan setujui Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start.
Tugas sinkronisasi dimulai. Lacak progresnya di daftar tugas.