Data Transmission Service (DTS) mendukung sinkronisasi data dua arah secara real-time antara klaster PolarDB for PostgreSQL dan database PostgreSQL, seperti instance RDS for PostgreSQL dan database PostgreSQL yang dikelola sendiri. Topik ini menjelaskan cara mengonfigurasi sinkronisasi data dua arah menggunakan instance RDS for PostgreSQL sebagai tujuan. Proses konfigurasi serupa berlaku untuk sumber data lainnya.
Prasyarat
Anda telah membuat klaster PolarDB for PostgreSQL sebagai sumber dan instance RDS for PostgreSQL sebagai tujuan. Untuk informasi selengkapnya, lihat Buat klaster database dan Buat instance ApsaraDB RDS for PostgreSQL.
CatatanUntuk informasi versi database sumber dan tujuan yang didukung, lihat Solusi sinkronisasi.
Pastikan database sumber dan tujuan memiliki ruang penyimpanan yang cukup.
Anda telah membuat database di instance RDS for PostgreSQL tujuan untuk menerima data. Untuk informasi selengkapnya, lihat Buat database.
Parameter
wal_levelpada klaster PolarDB for PostgreSQL sumber dan instance RDS for PostgreSQL tujuan harus diatur kelogical. Untuk informasi selengkapnya, lihat Atur Parameter Klaster dan Atur Parameter Instance.
Catatan
Selama sinkronisasi skema, DTS menyinkronkan foreign key dari database sumber ke database tujuan.
Selama sinkronisasi data penuh awal dan sinkronisasi data inkremental, DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade foreign key pada tingkat sesi. Ketidakkonsistenan data dapat terjadi jika operasi pembaruan atau penghapusan kaskade dilakukan pada database sumber saat tugas sedang berjalan.
Tipe | Deskripsi |
Batasan database sumber |
|
Batasan lainnya |
|
Penagihan
Tipe sinkronisasi | Harga |
Sinkronisasi skema dan sinkronisasi data penuh | Gratis. |
Sinkronisasi data inkremental | Dikenakan biaya. Untuk informasi selengkapnya, lihat Ikhtisar penagihan. |
Deteksi konflik yang didukung
Untuk memastikan konsistensi data, pastikan 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, operasi 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 mengonversi 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 yang didukung untuk disinkronkan
SCHEMA, TABLE
CatatanIni mencakup PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, DATATYPE (tipe data bawaan), dan DEFAULT CONSTRAINT.
VIEW, PROCEDURE (PostgreSQL 11 atau lebih baru), FUNCTION, RULE, SEQUENCE, EXTENSION, TRIGGER, AGGREGATE, INDEX, OPERATOR, DOMAIN
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.
Tipe operasi | Pernyataan operasi SQL |
DML | INSERT, UPDATE, DELETE |
DDL |
Penting
|
Izin akun database
Database | Izin yang diperlukan | Metode pembuatan dan otorisasi akun |
PolarDB for PostgreSQL | Akun istimewa yang merupakan pemilik database. | Lihat Buat akun database dan Manajemen database. |
RDS for PostgreSQL | Akun istimewa yang merupakan pemilik database (akun yang diotorisasi). | Lihat Buat akun dan Buat database. |
Prosedur
Beli instance sinkronisasi dua arah. Untuk informasi selengkapnya, lihat Prosedur pembelian.
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 lainnya sesuai kebutuhan.
Buka halaman daftar tugas sinkronisasi di wilayah tujuan. Anda dapat menggunakan salah satu dari dua metode berikut:
Dari konsol DTS
Login ke konsol Data Transmission Service (DTS).
Di panel navigasi sebelah kiri, klik Data Synchronization.
Di pojok kiri atas halaman, pilih wilayah tempat instance sinkronisasi berada.
Dari konsol DMS
CatatanOperasi aktual dapat berbeda tergantung pada mode dan tata letak konsol DMS. Untuk informasi selengkapnya, 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 yang telah dibuat. Di kolom Actions tugas maju, klik Configure Task.
Konfigurasikan database sumber dan tujuan.
Kategori
Konfigurasi
Deskripsi
N/A
Task Name
DTS secara otomatis menghasilkan nama tugas. Kami menyarankan Anda menentukan nama deskriptif agar mudah diidentifikasi. Nama tersebut tidak harus unik.
Source Database
Select Existing Connection
Untuk menggunakan instance database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instance database dari daftar drop-down. Informasi database akan dikonfigurasi secara otomatis.
CatatanDi konsol DMS, item konfigurasi ini bernama Select a DMS database instance..
Jika Anda belum menambahkan instance database ke sistem, atau tidak perlu menggunakan instance 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 Anda pilih saat membeli instance dan tidak dapat diubah.
Replicate Data Across Alibaba Cloud Accounts
Contoh ini menggunakan instance database yang dimiliki oleh Akun Alibaba Cloud saat ini. Pilih No.
Instance ID
Pilih ID klaster PolarDB for PostgreSQL sumber.
Database Name
Masukkan nama database yang berisi objek yang akan disinkronkan di klaster PolarDB for PostgreSQL sumber.
Database Account
Masukkan akun database klaster PolarDB for PostgreSQL sumber. Untuk persyaratan izin, lihat Izin akun database.
Database Password
Masukkan password yang sesuai dengan akun database tersebut.
Destination Database
Select Existing Connection
Untuk menggunakan instance database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instance database dari daftar drop-down. Informasi database akan dikonfigurasi secara otomatis.
CatatanDi konsol DMS, item konfigurasi ini bernama Select a DMS database instance..
Jika Anda belum menambahkan instance database ke sistem, atau tidak perlu menggunakan instance 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 Anda pilih saat membeli instance dan tidak dapat diubah.
Instance ID
Pilih ID instance RDS for PostgreSQL tujuan.
Database Name
Masukkan nama database yang akan menerima data di instance RDS for PostgreSQL tujuan.
Database Account
Masukkan akun database instance RDS for PostgreSQL tujuan. Untuk persyaratan izin, lihat Izin akun database.
Database Password
Masukkan password yang sesuai dengan akun database tersebut.
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 selengkapnya, 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 objek yang dipilih dari instance sumber ke klaster tujuan. Hal ini berfungsi sebagai data garis dasar untuk sinkronisasi data inkremental berikutnya.
Exclude DDL Operations
Jika Anda memilih Yes, operasi DDL tidak disinkronkan.
Jika Anda memilih No, operasi DDL disinkronkan.
PentingUntuk memastikan stabilitas tautan sinkronisasi dua arah, hanya tugas maju (sinkronisasi dari database sumber ke database tujuan) yang memungkinkan Anda memilih apakah akan menyinkronkan DDL. Tugas balik (sinkronisasi dari database tujuan ke database sumber) secara otomatis memfilter operasi DDL.
Global Conflict Resolution Policy
Pilih kebijakan resolusi konflik sesuai kebutuhan.
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.
CatatanUntuk informasi tentang jenis konflik yang didukung, lihat Deteksi konflik yang didukung.
Jika tugas sinkronisasi dijeda atau dimulai ulang dan terjadi penundaan, kebijakan ini tidak berlaku selama penundaan. Data di tujuan ditimpa secara default.
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 lolos. 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 selengkapnya, lihat Petakan 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 klaster 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 instance 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 selengkapnya, 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.CatatanGranularitas objek sinkronisasi dapat berupa skema atau tabel. Jika Anda memilih tabel sebagai objek sinkronisasi, 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 Anda juga memilih Sequence atau sinkronisasi seluruh skema.
Selected Objects
Untuk mengganti nama objek sinkronisasi di instans tujuan, klik kanan objek di kotak Selected Objects dan edit namanya. Untuk informasi selengkapnya, lihat Pemetaan nama skema, tabel, dan kolom.
Untuk menghapus objek sinkronisasi yang dipilih, klik objek tersebut di kotak Selected Objects, lalu klik
untuk memindahkannya ke kotak Source Objects.
CatatanJika Anda menggunakan fitur pemetaan nama objek, objek lain yang bergantung pada objek yang dipetakan mungkin gagal disinkronkan.
Untuk memfilter data dengan klausa WHERE, klik kanan tabel target di kotak Selected Objects dan atur kondisi filter di kotak dialog yang muncul. Untuk informasi selengkapnya, lihat Atur kondisi filter.
Untuk menentukan operasi SQL untuk sinkronisasi inkremental, klik kanan objek sinkronisasi di kotak Selected Objects dan pilih operasi SQL yang diinginkan di kotak dialog yang muncul.
Klik Next: Advanced Settings untuk mengonfigurasi parameter lanjutan.
Konfigurasi
Deskripsi
Dedicated Cluster for Task Scheduling
Secara default, DTS menjadwalkan tugas pada klaster bersama, dan Anda tidak perlu memilih klaster. Untuk performa yang lebih stabil, Anda dapat membeli klaster khusus untuk menjalankan tugas sinkronisasi DTS. Untuk informasi selengkapnya, lihat Apa itu klaster 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 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 akan digunakan untuk keduanya.
Karena DTS mengenakan biaya untuk waktu proses tugas selama periode percobaan ulang koneksi, kami menyarankan 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 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 hanya tersedia saat Synchronization Types diatur ke Full Data Synchronization.
Anda juga dapat menyesuaikan laju sinkronisasi penuh setelah instance sinkronisasi 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
Anda dapat memilih tag lingkungan untuk mengidentifikasi instance sesuai kebutuhan. Contoh ini tidak memerlukan pemilihan.
Configure ETL
Pilih apakah akan mengaktifkan fitur ekstrak, transformasi, muat (ETL). Untuk informasi selengkapnya, lihat Apa itu ETL? Nilai yang valid:
-
Yes: Mengaktifkan fitur ETL. Masukkan pernyataan pemrosesan data di editor kode. Untuk informasi selengkapnya, 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 petunjuk 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 lolos.
Jika pemeriksaan awal gagal, klik View Details untuk item yang gagal. Perbaiki masalah sesuai petunjuk, lalu jalankan kembali pemeriksaan awal.
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 kembali pemeriksaan awal.
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 mencapai 100%, klik Back.
Konfigurasikan tugas sinkronisasi balik.
Tunggu hingga sinkronisasi awal tugas sinkronisasi maju selesai. Proses selesai saat Status berubah menjadi Running.
Klik Configure Task pada kolom Actions tugas jarak jauh.
Merujuk ke 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 password, konsisten.
Instance Region database sumber dan tujuan tidak dapat dimodifikasi untuk tugas sinkronisasi balik. Lebih sedikit parameter yang tersedia untuk konfigurasi dibandingkan 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 Anda tidak menggunakan fitur pemetaan saat mengonfigurasi tugas balik. Jika tidak, ketidakkonsistenan data dapat terjadi.
Saat Success Rate mencapai 100%, klik Back.
Setelah tugas sinkronisasi balik dikonfigurasi, tunggu hingga Status kedua tugas sinkronisasi berubah menjadi Running. Konfigurasi untuk sinkronisasi data dua arah kini telah selesai.
