Data Transmission Service (DTS) mendukung sinkronisasi data dua arah secara real-time antara kluster PolarDB for PostgreSQL dan database PostgreSQL, seperti instance RDS PostgreSQL dan database PostgreSQL yang dikelola sendiri. Topik ini menjelaskan langkah-langkah untuk mengonfigurasi sinkronisasi data dua arah dengan menggunakan instance RDS PostgreSQL sebagai tujuan. Proses konfigurasi serupa berlaku untuk sumber data lainnya.
Prasyarat
-
Anda telah membuat kluster PolarDB for PostgreSQL sebagai sumber dan instance RDS for PostgreSQL sebagai tujuan. Untuk informasi lebih lanjut, lihat Buat kluster PolarDB for PostgreSQL dan Buat instance ApsaraDB RDS for PostgreSQL.
Catatan-
Untuk informasi tentang versi database yang didukung oleh database sumber dan tujuan, lihat Solusi sinkronisasi.
-
Pilih ukuran penyimpanan yang sesuai untuk database sumber dan tujuan.
-
-
Database untuk menerima data telah dibuat di instance RDS PostgreSQL target. Untuk informasi lebih lanjut, lihat Buat Database.
-
Anda telah mengatur parameter
wal_levelkelogicaluntuk kluster PolarDB for PostgreSQL sumber dan instans RDS for PostgreSQL tujuan. Untuk informasi selengkapnya, lihat Ubah parameter kluster dan Ubah parameter instans ApsaraDB RDS untuk PostgreSQL.
Catatan
Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari database sumber ke database tujuan.
Selama sinkronisasi data penuh dan sinkronisasi data inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala dan operasi kaskade kunci asing pada tingkat sesi. Ketidakkonsistenan data dapat terjadi jika operasi pembaruan atau penghapusan kaskade dilakukan pada database sumber saat tugas sedang berjalan.
Type | Description |
Batasan database sumber |
|
Batasan lainnya |
|
Penagihan
Jenis sinkronisasi | Harga |
Sinkronisasi skema dan sinkronisasi data penuh | Gratis. |
Sinkronisasi data inkremental | Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. |
Deteksi Konflik yang Didukung
Untuk memastikan konsistensi data, pastikan bahwa catatan data dengan primary key, business primary key, atau unique key yang sama hanya diperbarui di salah satu instance database dalam sinkronisasi dua arah. Jika catatan data diperbarui di kedua instance database, sistem DTS akan menerapkan kebijakan resolusi konflik yang dikonfigurasi dalam tugas tersebut.
DTS memeriksa dan memperbaiki konflik untuk memaksimalkan stabilitas tugas sinkronisasi dua arah. DTS dapat mendeteksi jenis konflik berikut:
-
Konflik keunikan yang disebabkan oleh operasi INSERT
Dalam sinkronisasi dua arah, jika catatan dengan primary key yang sama dimasukkan ke kedua instance database secara bersamaan (atau berurutan dekat), konflik kendala keunikan akan dipicu. Saat pernyataan INSERT disinkronkan ke instance pasangan, pernyataan tersebut akan gagal karena catatan dengan nilai primary key yang sama sudah ada.
-
Catatan yang tidak cocok dalam operasi UPDATE
-
Jika catatan yang akan diperbarui tidak ada di instance tujuan, DTS mengubah operasi UPDATE menjadi operasi INSERT. Namun, konflik keunikan mungkin terjadi.
-
Catatan yang akan diperbarui oleh operasi UPDATE menyebabkan konflik primary key atau unique key.
-
-
Catatan yang tidak ada untuk dihapus
Catatan yang akan dihapus tidak ada di instance tujuan. Dalam kasus ini, DTS mengabaikan operasi DELETE terlepas dari kebijakan resolusi konflik yang Anda tentukan.
-
Karena perbedaan waktu dan latensi, DTS tidak dapat menjamin pencegahan konflik 100%. Untuk memastikan konsistensi, perbarui catatan dengan primary key atau unique key yang sama hanya di satu instance database dalam satu waktu.
-
DTS menyediakan berbagai strategi resolusi konflik untuk konflik data tersebut, yang dapat Anda pilih saat mengonfigurasi sinkronisasi data dua arah.
Objek Sinkronisasi yang Didukung
SCHEMA, TABLE
-
Ini mencakup PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, DATATYPE (tipe data bawaan), dan DEFAULT CONSTRAINT.
-
Fitur yang didukung untuk jenis database ini sebagai sumber bervariasi berdasarkan jenis database tujuan. Untuk informasi lebih lanjut, lihat halaman konfigurasi di konsol.
Operasi SQL yang Didukung
Operasi Data Definition Language (DDL) hanya dapat disinkronkan dalam tugas maju, dari database sumber ke database tujuan. Operasi DDL tidak didukung dalam tugas balik, dari database tujuan ke database sumber, dan secara otomatis difilter.
|
Jenis operasi |
Pernyataan SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
Penting
|
Izin Akun Database
|
Database |
Izin yang Diperlukan |
Pembuatan dan Otorisasi Akun |
|
PolarDB for PostgreSQL |
Akun istimewa dan pemilik database. |
|
|
RDS PostgreSQL |
Akun istimewa dan pemilik database (akun yang diotorisasi). |
Buat akun dan Buat database. |
Prosedur
-
Beli instance sinkronisasi dua arah. Untuk informasi lebih lanjut, lihat Beli instance sinkronisasi data.
PentingSaat membeli instance, atur Feature ke Data Synchronization, Source Instance ke PolarDB PostgreSQL, Destination Instance ke PostgreSQL, dan Synchronization Topology ke Two-way Synchronization. Konfigurasikan parameter lain sesuai kebutuhan.
Buka halaman daftar tugas sinkronisasi di wilayah tujuan. Anda dapat menggunakan salah satu dari dua metode berikut:
Dari konsol DTS
Login ke Data Transmission Service (DTS) console.
Di panel navigasi kiri, klik Data Synchronization.
Di pojok kiri atas halaman, pilih wilayah tempat instance sinkronisasi berada.
Dari konsol DMS
CatatanOperasi aktual dapat bervariasi berdasarkan mode dan tata letak konsol DMS. Untuk informasi lebih lanjut, lihat Mode sederhana dan Sesuaikan tata letak dan gaya antarmuka DMS.
Login ke Data Management (DMS).
Di bilah menu atas, pilih .
Di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instance sinkronisasi berada.
-
Temukan instance sinkronisasi dua arah. Di kolom Actions tugas maju, klik Configure Task.
-
Konfigurasikan database sumber dan tujuan.
Kategori
Konfigurasi
Deskripsi
Tidak ada
Task Name
DTS secara otomatis menghasilkan nama tugas. Kami menyarankan agar Anda menentukan nama deskriptif untuk memudahkan identifikasi. Nama tersebut tidak harus unik.
Source Database
Select Existing Connection
Untuk menggunakan instans database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instans database dari daftar drop-down. Informasi database dikonfigurasi secara otomatis.
CatatanDi konsol DMS, item konfigurasi ini bernama Select a DMS database instance..
Jika Anda belum menambahkan instans database ke sistem, atau tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan informasi database berikut secara manual.
Database Type
Pilih PolarDB for PostgreSQL.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Ini tetap pada wilayah yang dipilih saat membeli instans dan tidak dapat diubah.
Replicate Data Across Alibaba Cloud Accounts
Contoh ini menggunakan instans database yang dimiliki oleh Akun Alibaba Cloud saat ini. Pilih No.
Instance ID
Pilih ID kluster PolarDB for PostgreSQL sumber.
Database Name
Masukkan nama database tempat objek yang akan disinkronkan berada di kluster PolarDB for PostgreSQL sumber.
Database Account
Masukkan akun database untuk kluster PolarDB for PostgreSQL sumber. Untuk informasi lebih lanjut, lihat Izin yang diperlukan untuk akun database.
Database Password
Masukkan kata sandi yang sesuai dengan akun database.
Destination Database
Select Existing Connection
Untuk menggunakan instans database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instans database dari daftar drop-down. Informasi database dikonfigurasi secara otomatis.
CatatanDi konsol DMS, item konfigurasi ini bernama Select a DMS database instance..
Jika Anda belum menambahkan instans database ke sistem, atau tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan informasi database berikut secara manual.
Database Type
Pilih PostgreSQL.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Ini tetap pada wilayah yang dipilih saat membeli instans dan tidak dapat diubah.
Instance ID
Pilih ID instance RDS PostgreSQL tujuan.
Database Name
Masukkan nama database di instance RDS PostgreSQL tujuan yang menerima data.
Database Account
Masukkan akun database untuk instance RDS PostgreSQL target. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.
Database Password
Masukkan kata sandi yang sesuai dengan akun database.
Encryption
Menentukan apakah akan mengenkripsi koneksi ke database sumber. Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, Non-encrypted dipilih.
Jika Anda ingin membuat koneksi terenkripsi SSL ke database sumber, lakukan langkah-langkah berikut: Pilih SSL-encrypted, unggah CA Certificate, Client Certificate, dan Private Key of Client Certificate sesuai kebutuhan, lalu tentukan Private Key Password of Client Certificate.
CatatanJika Anda mengatur Encryption ke SSL-encrypted untuk database PostgreSQL yang dikelola sendiri, Anda harus mengunggah CA Certificate.
Jika Anda ingin menggunakan sertifikat klien, Anda harus mengunggah Client Certificate dan Private Key of Client Certificate serta menentukan Private Key Password of Client Certificate.
Untuk informasi tentang cara mengonfigurasi enkripsi SSL untuk instance ApsaraDB RDS for PostgreSQL, lihat Enkripsi SSL.
Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman.
CatatanPastikan blok CIDR alamat IP server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Hal ini dapat dilakukan secara otomatis atau manual. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR alamat IP server DTS ke daftar putih.
Jika database sumber atau tujuan adalah database yang dikelola sendiri (di mana Access Method bukan Alibaba Cloud Instance), Anda juga harus mengklik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
-
Konfigurasikan objek tugas.
-
Di halaman Configure Objects, konfigurasikan objek yang akan disinkronkan.
Konfigurasi
Deskripsi
Synchronization Types
Incremental Data Synchronization dipilih. Secara default, Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal selesai, DTS melakukan sinkronisasi data penuh dari objek yang dipilih dari instans sumber ke kluster tujuan. Ini berfungsi sebagai data garis dasar untuk sinkronisasi data inkremental berikutnya.
Exclude DDL Operations
-
Pilih Yes: Operasi DDL tidak disinkronkan.
-
Pilih No: Operasi DDL disinkronkan.
PentingUntuk memastikan stabilitas tautan sinkronisasi dua arah, Anda dapat memilih apakah akan menyinkronkan operasi DDL hanya untuk tugas maju (database sumber ke database tujuan). Tugas balik (database tujuan ke database sumber) secara otomatis memfilter operasi DDL.
Global Conflict Resolution Policy
Pilih kebijakan resolusi konflik berdasarkan kebutuhan Anda.
TaskFailed (If a conflict occurs, an error is reported and the task is stopped)
Jika terjadi konflik data selama sinkronisasi, tugas melaporkan kesalahan dan berhenti. Tugas masuk ke status Gagal dan memerlukan intervensi manual.
Ignore (If a conflict occurs, the conflicting record in the destination instance is used)
Jika terjadi konflik data selama sinkronisasi, pernyataan sinkronisasi saat ini dilewati dan proses berlanjut. Catatan yang bertentangan di database tujuan dipertahankan.
Overwrite (If a conflict occurs, the conflicting record in the destination instance is overwritten)
Jika terjadi konflik data selama sinkronisasi, catatan yang bertentangan di database tujuan ditimpa.
Catatan-
Untuk informasi tentang jenis konflik yang didukung, lihat Deteksi Konflik yang Didukung.
-
Jika tugas sinkronisasi dijeda atau dimulai ulang dan terjadi keterlambatan sinkronisasi, kebijakan ini tidak berlaku selama keterlambatan tersebut. Secara default, data di tujuan ditimpa.
Processing Mode of Conflicting Tables
Precheck and Report Errors: Memeriksa apakah tabel dengan nama yang sama ada di database tujuan. Jika tabel dengan nama yang sama tidak ada, pemeriksaan awal berhasil. Jika tabel dengan nama yang sama ada, pemeriksaan awal gagal dan tugas sinkronisasi data tidak dimulai.
CatatanJika Anda tidak dapat menghapus atau mengganti nama tabel dengan nama yang sama di database tujuan, Anda dapat memetakannya ke nama tabel yang berbeda. Untuk informasi lebih lanjut, lihat Pemetaan nama tabel dan kolom.
Ignore Errors and Proceed: Melewati pemeriksaan nama tabel duplikat di database tujuan.
PeringatanMemilih Ignore Errors and Proceed dapat menyebabkan ketidakkonsistenan data dan membahayakan bisnis Anda. Misalnya:
Jika skema tabel sama dan catatan di database tujuan memiliki nilai primary key atau unique key yang sama dengan catatan di database sumber:
Selama sinkronisasi penuh, DTS mempertahankan catatan di kluster tujuan. Catatan yang sesuai dari database sumber tidak disinkronkan.
Selama sinkronisasi inkremental, catatan dari database sumber menimpa catatan di database tujuan.
Jika skema tabel berbeda, sinkronisasi data awal mungkin gagal. Hal ini dapat mengakibatkan hanya data kolom parsial yang disinkronkan atau kegagalan sinkronisasi total. Lakukan dengan hati-hati.
Capitalization of Object Names in Destination Instance
Anda dapat mengonfigurasi kebijakan sensitivitas huruf besar/kecil untuk nama objek yang dimigrasikan, seperti database, tabel, dan kolom, di instans tujuan. Secara default, DTS default policy dipilih. Anda juga dapat memilih untuk menjaga sensitivitas huruf besar/kecil konsisten dengan kebijakan default database sumber atau tujuan. Untuk informasi lebih lanjut, lihat Sensitivitas huruf besar/kecil nama objek di database tujuan.
Source Objects
Di kotak Source Objects, klik objek yang akan disinkronkan, lalu klik
untuk memindahkannya ke kotak Selected Objects.Catatan-
Anda dapat memilih skema atau tabel sebagai objek sinkronisasi. Jika Anda memilih tabel, objek lain seperti view, trigger, dan stored procedure tidak disinkronkan ke database tujuan.
Jika tabel yang akan disinkronkan berisi tipe data SERIAL, dan Anda memilih Schema Synchronization sebagai Synchronization Types, kami menyarankan agar Anda juga memilih Sequence atau sinkronisasi seluruh skema.
Selected Objects
-
Untuk mengubah nama objek di instans tujuan, klik kanan objek di kotak Selected Objects dan ubah namanya. Untuk informasi lebih lanjut, lihat Pemetaan nama tabel dan kolom.
-
Untuk menghapus objek, klik objek di kotak Selected Objects, lalu klik
untuk memindahkannya kembali ke kotak Source Objects.
Catatan-
Jika Anda menggunakan fitur pemetaan nama objek, objek lain yang bergantung pada objek yang dipetakan mungkin gagal disinkronkan.
-
Untuk memfilter data menggunakan klausa WHERE, klik kanan tabel di kotak Selected Objects dan tentukan kondisi filter di kotak dialog yang muncul. Untuk informasi lebih lanjut, lihat Filter kolom.
-
Untuk memilih operasi SQL untuk sinkronisasi inkremental, klik kanan objek di kotak Selected Objects. Di kotak dialog yang muncul, pilih operasi SQL yang ingin Anda sinkronkan.
-
-
Klik Next: Advanced Settings untuk mengonfigurasi parameter lanjutan.
Konfigurasi
Deskripsi
Dedicated Cluster for Task Scheduling
Secara default, DTS menjadwalkan tugas pada kluster bersama, dan Anda tidak perlu memilih kluster. Untuk kinerja yang lebih stabil, Anda dapat membeli kluster khusus untuk menjalankan tugas sinkronisasi DTS. Untuk informasi lebih lanjut, lihat Apa itu kluster khusus DTS?.
Retry Time for Failed Connections
Setelah tugas sinkronisasi dimulai, jika koneksi ke database sumber atau tujuan gagal, DTS melaporkan kesalahan dan segera mulai mencoba menghubungkan kembali. Durasi percobaan ulang default adalah 720 menit. Anda juga dapat menentukan durasi percobaan ulang kustom dari 10 hingga 1.440 menit. Kami menyarankan agar Anda mengatur durasi minimal 30 menit. Jika DTS berhasil terhubung kembali ke database dalam durasi yang ditentukan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.
CatatanJika Anda memiliki beberapa instance DTS (misalnya, Instance A dan Instance B) yang berbagi sumber atau tujuan yang sama, dan Anda mengatur waktu percobaan ulang jaringan menjadi 30 menit untuk Instance A dan 60 menit untuk Instance B, durasi yang lebih pendek yaitu 30 menit digunakan untuk keduanya.
Karena DTS mengenakan biaya untuk waktu proses tugas selama periode percobaan ulang koneksi, kami menyarankan agar Anda menyesuaikan durasi percobaan ulang berdasarkan kebutuhan bisnis Anda atau segera melepas instance DTS setelah instance database sumber dan tujuan dilepas.
Retry Time for Other Issues
Setelah tugas sinkronisasi dimulai, jika terjadi masalah non-konektivitas lainnya pada database sumber atau tujuan (seperti pengecualian eksekusi DDL atau DML), DTS melaporkan kesalahan dan segera mulai melakukan operasi percobaan ulang terus-menerus. Durasi percobaan ulang default adalah 10 menit. Anda juga dapat menyesuaikan durasi percobaan ulang dalam rentang 1 hingga 1.440 menit. Kami menyarankan agar Anda mengaturnya minimal 10 menit. Jika operasi terkait berhasil dalam durasi percobaan ulang yang ditetapkan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.
PentingNilai untuk Retry Time for Other Issues harus kurang dari nilai untuk Retry Time for Failed Connections.
Enable Throttling for Full Data Synchronization
Selama tahap sinkronisasi penuh, DTS mengonsumsi sumber daya baca dan tulis dari database sumber dan tujuan, yang dapat meningkatkan beban database. Untuk mengurangi beban pada database sumber dan tujuan, Anda dapat mengatur batas laju untuk tugas sinkronisasi penuh dengan mengonfigurasi parameter Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s).
CatatanItem konfigurasi ini tersedia hanya ketika Synchronization Types diatur ke Full Data Synchronization.
Anda juga dapat menyesuaikan laju sinkronisasi penuh setelah instance sinkronisasi sedang berjalan.
Enable Throttling for Incremental Data Synchronization
Anda juga dapat mengatur batas laju untuk tugas sinkronisasi inkremental. Untuk mengurangi tekanan pada database tujuan, atur RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
Environment Tag
Jika diperlukan, pilih tag lingkungan untuk mengidentifikasi instance. Untuk contoh ini, tidak perlu pemilihan.
Configure ETL
Pilih apakah akan mengaktifkan fitur ekstrak, transformasi, muat (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL? Nilai yang valid:
-
Yes: Mengaktifkan fitur ETL. Masukkan pernyataan pemrosesan data di editor kode. Untuk informasi lebih lanjut, lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data.
-
No: Menonaktifkan fitur ETL.
Klik Next: Data Validation untuk mengonfigurasi tugas validasi data.
Jika Anda ingin menggunakan fitur validasi data, lihat Konfigurasikan validasi data untuk instruksi konfigurasi.
-
Simpan tugas dan jalankan pemeriksaan awal.
Untuk melihat parameter API untuk mengonfigurasi instance ini, arahkan kursor ke tombol Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters di gelembung.
Jika Anda telah selesai melihat parameter API, klik Next: Save Task Settings and Precheck di bagian bawah halaman.
CatatanSebelum pekerjaan sinkronisasi dimulai, DTS menjalankan pemeriksaan awal. Pekerjaan hanya dapat dimulai setelah semua item pemeriksaan awal lulus.
Jika pemeriksaan awal gagal, klik View Details untuk item yang gagal. Perbaiki masalah sesuai petunjuk, lalu jalankan pemeriksaan awal lagi.
Jika pemeriksaan awal mengembalikan peringatan:
Jika item pemeriksaan gagal dan tidak dapat diabaikan, klik View Details di sebelah item tersebut. Ikuti petunjuk untuk memperbaiki masalah, lalu jalankan pemeriksaan awal lagi.
Untuk item pemeriksaan yang dapat diabaikan, Anda dapat mengklik Confirm Alert Details, Ignore, OK, dan Precheck Again secara berurutan untuk melewati peringatan dan menjalankan kembali pemeriksaan awal. Jika Anda memilih untuk mengabaikan item peringatan, hal ini dapat menyebabkan masalah seperti ketidakkonsistenan data dan menimbulkan risiko bagi bisnis Anda.
-
Saat Success Rate adalah 100%, klik Back.
-
Konfigurasikan tugas sinkronisasi balik.
-
Tunggu hingga tugas sinkronisasi maju menyelesaikan sinkronisasi awal hingga Status-nya menjadi Running.
-
Di kolom Actions tugas balik, klik Configure Task.
-
Lihat Langkah 4 hingga Langkah 7 untuk mengonfigurasi tugas sinkronisasi balik.
PentingSaat mengonfigurasi tugas sinkronisasi balik, Anda harus memilih instance sumber dan tujuan yang benar. Instance sumber dalam tugas balik adalah instance tujuan dalam tugas maju. Instance tujuan dalam tugas balik adalah instance sumber dalam tugas maju. Anda juga harus memastikan bahwa informasi instance, seperti nama database, akun, dan kata sandi, konsisten.
Instance Region database sumber dan tujuan tidak dapat dimodifikasi untuk tugas sinkronisasi balik. Lebih sedikit parameter yang tersedia untuk konfigurasi dibandingkan dengan tugas sinkronisasi maju. Konfigurasikan parameter yang ditampilkan di konsol.
Processing Mode of Conflicting Tables untuk tugas sinkronisasi balik tidak memeriksa tabel yang disinkronkan ke instance tujuan oleh tugas sinkronisasi maju.
Tugas sinkronisasi balik tidak mendukung penyinkronan objek yang tidak ada dalam daftar Selected Objects tugas maju.
Kami menyarankan agar Anda tidak menggunakan fitur pemetaan saat mengonfigurasi tugas balik. Jika tidak, ketidakkonsistenan data dapat terjadi.
-
Saat Success Rate adalah 100%, klik Back.
-
-
Setelah tugas sinkronisasi balik dikonfigurasi, tunggu hingga Status kedua tugas sinkronisasi menjadi Running. Ini menyelesaikan proses konfigurasi sinkronisasi data dua arah.
