Topik ini menjelaskan cara menggunakan Data Transmission Service (DTS) untuk mengonfigurasi sinkronisasi dua arah antara kluster PolarDB for PostgreSQL.
Prasyarat
-
Kluster PolarDB for PostgreSQL sumber dan tujuan telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster database.
Catatan-
Untuk versi database sumber dan tujuan yang didukung, lihat Ikhtisar sinkronisasi.
-
Disarankan agar spesifikasi kluster PolarDB PostgreSQL tujuan sesuai dengan spesifikasi kluster PolarDB PostgreSQL sumber.
-
-
Database telah dibuat di kluster PolarDB for PostgreSQL tujuan untuk menerima data. Untuk informasi selengkapnya tentang cara membuat database, lihat Manajemen Database.
-
Parameter
wal_leveldiatur kelogicalpada kedua kluster PolarDB for PostgreSQL sumber dan tujuan. Untuk informasi selengkapnya, lihat Mengatur parameter kluster.
Catatan penting
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 selengkapnya, lihat Ikhtisar penagihan. |
Deteksi konflik yang didukung
Untuk memastikan konsistensi data, pastikan bahwa catatan data dengan kunci primer, kunci primer bisnis, atau kunci unik yang sama hanya diperbarui di salah satu instans database dalam sinkronisasi dua arah. Jika catatan data diperbarui di kedua instans database, sistem DTS akan menerapkan kebijakan resolusi conflict yang dikonfigurasi dalam tugas tersebut.
DTS memeriksa dan memperbaiki conflict untuk memaksimalkan stabilitas tugas sinkronisasi dua arah. DTS dapat mendeteksi jenis conflict berikut:
-
Conflict unik yang disebabkan oleh operasi INSERT
Dalam sinkronisasi dua arah, jika catatan dengan kunci primer yang sama dimasukkan ke kedua instans database secara bersamaan (atau berurutan dekat), conflict kendala unik akan dipicu. Saat pernyataan INSERT disinkronkan ke instans pasangan, pernyataan tersebut akan gagal karena catatan dengan nilai kunci primer yang sama sudah ada.
-
Catatan yang tidak cocok dalam operasi UPDATE
-
Jika catatan yang akan diperbarui tidak ada di instans tujuan, DTS mengonversi operasi UPDATE menjadi operasi INSERT. Namun, conflict unik dapat terjadi.
-
Catatan yang akan diperbarui oleh operasi UPDATE menyebabkan conflict kunci primer atau kunci unik.
-
-
Catatan yang tidak ada untuk dihapus
Catatan yang akan dihapus tidak ada di instans tujuan. Dalam kasus ini, DTS mengabaikan operasi DELETE terlepas dari kebijakan resolusi conflict yang Anda tentukan.
-
Karena perbedaan waktu dan latensi, DTS tidak dapat menjamin pencegahan conflict 100%. Untuk memastikan konsistensi, perbarui catatan dengan kunci primer atau kunci unik yang sama hanya di satu instans database dalam satu waktu.
-
DTS menyediakan berbagai strategi resolusi conflict untuk conflict data tersebut, yang dapat Anda pilih saat mengonfigurasi sinkronisasi data dua arah.
Objek sinkronisasi yang didukung
SCHEMA, TABLE
-
Mencakup PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, tipe data bawaan, dan DEFAULT CONSTRAINT.
-
Fitur yang didukung bervariasi tergantung pada jenis database tujuan. Periksa konsol untuk detailnya.
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 |
Cara membuat dan memberikan izin |
|
Kluster PolarDB for PostgreSQL sumber dan target |
Akun istimewa yang memiliki database. |
Prosedur
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 instans sinkronisasi berada.
Dari konsol DMS
CatatanOperasi aktual dapat bervariasi berdasarkan 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 instans sinkronisasi berada.
Klik Create Task untuk membuka halaman konfigurasi tugas.
-
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 Anda tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan manual informasi database berikut.
Database Type
Pilih PolarDB for PostgreSQL.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah kluster PolarDB PostgreSQL sumber.
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 yang berisi objek yang akan disinkronkan di kluster PolarDB for PostgreSQL sumber.
Database Account
Masukkan akun database untuk kluster PolarDB for PostgreSQL sumber. Untuk informasi selengkapnya, lihat Izin yang diperlukan untuk akun database.
Database Password
Masukkan password 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 Anda tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan manual informasi database berikut.
Database Type
Pilih PolarDB for PostgreSQL.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah tempat kluster PolarDB for PostgreSQL target berada.
Instance ID
Pilih ID kluster PolarDB for PostgreSQL target.
Database Name
Masukkan nama database di kluster PolarDB for PostgreSQL target yang menerima data.
Database Account
Masukkan akun database untuk kluster PolarDB for PostgreSQL target. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.
Database Password
Masukkan password yang sesuai dengan akun database.
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.
-
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 instans sumber ke kluster tujuan. Hal ini berfungsi sebagai data garis dasar untuk sinkronisasi data inkremental berikutnya.
Synchronization Topology
Pilih Two-way Synchronization.
Exclude DDL Operations
-
Pilih Yes untuk melewati operasi DDL.
-
Pilih No untuk menyinkronkan operasi DDL.
PentingUntuk menjaga stabilitas tautan sinkronisasi dua arah, hanya tugas maju (dari database sumber ke database tujuan) yang mendukung sinkronisasi DDL. Tugas balik (dari database tujuan ke database sumber) secara otomatis memfilter operasi DDL.
Global Conflict Resolution Policy
Pilih kebijakan resolusi conflict berdasarkan kebutuhan bisnis Anda.
TaskFailed (If a conflict occurs, an error is reported and the task is stopped)
Jika terjadi conflict 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 conflict data selama sinkronisasi, pernyataan sinkronisasi saat ini dilewati dan proses berlanjut. Catatan conflict di database tujuan dipertahankan.
Overwrite (If a conflict occurs, the conflicting record in the destination instance is overwritten)
Jika terjadi conflict data selama sinkronisasi, catatan conflict di database tujuan ditimpa.
Catatan-
Untuk jenis conflict yang didukung, lihat Detect conflict yang didukung.
-
Jika tugas sinkronisasi dijeda atau dimulai ulang dan mengalami latensi, kebijakan ini tidak berlaku. Secara default, DTS menimpa data tujuan.
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 Map table and column names.
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 kunci primer atau kunci unik 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 database, tabel, dan kolom yang disinkronkan ke instans tujuan. Secara default, DTS default policy dipilih. Anda juga dapat memilih untuk menggunakan kebijakan default database sumber dan tujuan. Untuk informasi selengkapnya, lihat Kebijakan sensitivitas huruf besar/kecil untuk nama objek 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 prosedur tersimpan 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 mengganti nama objek yang disinkronkan di instans tujuan, klik kanan objek di bagian Selected Objects dan edit. Untuk informasi selengkapnya, lihat Map database, table, and column names.
-
Untuk menghapus objek sinkronisasi yang dipilih, klik objek di kotak Selected Objects, lalu klik
untuk memindahkannya kembali ke kotak Source Objects.
Catatan-
Menggunakan fitur pemetaan nama objek dapat menyebabkan kegagalan sinkronisasi untuk objek dependen.
-
Untuk memfilter data menggunakan klausa WHERE, klik kanan tabel yang akan disinkronkan di Selected Objects, lalu atur kondisi filter di kotak dialog. Untuk petunjuknya, lihat Set filter conditions.
-
Untuk memilih operasi SQL untuk sinkronisasi inkremental, klik kanan objek yang akan disinkronkan di Selected Objects, lalu pilih operasi SQL yang diperlukan di kotak dialog.
-
-
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 selengkapnya, 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 koneksi ulang. Durasi percobaan ulang default adalah 720 menit. Anda juga dapat menentukan durasi percobaan ulang kustom dari 10 hingga 1.440 menit. Disarankan 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 instans DTS (misalnya, Instans A dan Instans B) yang berbagi sumber atau tujuan yang sama, dan Anda mengatur waktu percobaan ulang jaringan menjadi 30 menit untuk Instans A dan 60 menit untuk Instans B, durasi yang lebih pendek yaitu 30 menit digunakan untuk keduanya.
Karena DTS mengenakan biaya untuk waktu proses tugas selama periode percobaan ulang koneksi, disarankan agar Anda menyesuaikan durasi percobaan ulang berdasarkan kebutuhan bisnis Anda atau segera melepas instans DTS setelah instans 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. Disarankan 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 hanya tersedia saat Synchronization Types diatur ke Full Data Synchronization.
Anda juga dapat menyesuaikan laju sinkronisasi penuh setelah instans 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
Pilih tag lingkungan untuk mengidentifikasi instans. Contoh ini tidak memerlukan tag.
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 Configure ETL in a data migration or data synchronization task.
-
No: Menonaktifkan fitur ETL.
Monitoring and Alerting
Tentukan apakah akan mengonfigurasi peringatan. Jika sinkronisasi gagal atau latensi melebihi ambang batas yang ditentukan, notifikasi dikirim ke kontak peringatan.
No: Tidak ada peringatan yang dikonfigurasi.
Yes: Konfigurasikan peringatan dengan mengatur ambang batas peringatan dan menentukan notifikasi peringatan. Untuk informasi selengkapnya, lihat Configure monitoring and alerting during task configuration.
Klik Next: Data Validation untuk mengonfigurasi tugas validasi data.
Jika Anda ingin menggunakan fitur validasi data, lihat Configure data validation untuk petunjuk konfigurasi.
-
Simpan tugas dan jalankan pemeriksaan awal.
Untuk melihat parameter API untuk mengonfigurasi instans 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 menyembunyikan item peringatan, hal ini dapat menyebabkan masalah seperti ketidakkonsistenan data dan menimbulkan risiko bagi bisnis Anda.
-
Beli instans.
Saat Success Rate mencapai 100%, klik Next: Purchase Instance.
Di halaman Purchase, pilih metode penagihan dan spesifikasi tautan untuk instans sinkronisasi data. Tabel berikut menjelaskan parameter ini secara rinci.
Kategori
Parameter
Deskripsi
New Instance Class
Billing Method
Langganan: Anda membayar saat membuat instans. Ini cocok untuk kebutuhan jangka panjang dan lebih hemat biaya daripada bayar sesuai penggunaan. Semakin lama durasi langganan, semakin tinggi diskonnya.
Bayar sesuai penggunaan: Anda dikenai biaya per jam. Ini cocok untuk kebutuhan jangka pendek. Anda dapat melepas instans segera setelah digunakan untuk menghemat biaya.
Resource Group Configuration
Kelompok sumber daya tempat instans berada. Default-nya adalah kelompok sumber daya default. Untuk informasi selengkapnya, lihat Apa itu Resource Management?.
Link Specification
DTS menyediakan spesifikasi sinkronisasi dengan tingkat kinerja berbeda. Spesifikasi tautan sinkronisasi memengaruhi laju sinkronisasi. Anda dapat memilih spesifikasi berdasarkan skenario bisnis Anda. Untuk informasi selengkapnya, lihat Spesifikasi tautan sinkronisasi data.
Subscription Duration
Dalam mode langganan, pilih durasi dan jumlah untuk instans langganan. Anda dapat memilih langganan bulanan dari 1 hingga 9 bulan, atau langganan tahunan 1, 2, 3, atau 5 tahun.
CatatanOpsi ini hanya tersedia saat metode penagihan adalah Subscription.
Setelah menyelesaikan konfigurasi, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start. Di kotak dialog OK, klik OK.
Anda dapat melihat progres tugas di halaman Data Synchronization.
-
Konfigurasikan tugas sinkronisasi balik.
-
Tunggu hingga tugas sinkronisasi maju menyelesaikan inisialisasi dan Status-nya menunjukkan Running.
-
Di kolom Actions untuk tugas balik, klik Configure Task.
-
Konfigurasikan tugas sinkronisasi balik mengikuti langkah 3 hingga 6. Untuk informasi selengkapnya, lihat Langkah 3–Langkah 6.
PentingSaat mengonfigurasi tugas sinkronisasi balik, Anda harus memilih instans sumber dan tujuan yang benar. Instans sumber dalam tugas balik adalah instans tujuan dalam tugas maju. Instans tujuan dalam tugas balik adalah instans sumber dalam tugas maju. Anda juga harus memastikan bahwa informasi instans, 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 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 instans tujuan oleh tugas sinkronisasi maju.
Tugas sinkronisasi balik tidak mendukung penyinkronan objek yang tidak ada dalam daftar Selected Objects tugas maju.
Disarankan agar Anda tidak menggunakan fitur pemetaan saat mengonfigurasi tugas balik. Jika tidak, ketidakkonsistenan data dapat terjadi.
-
Saat Success Rate menunjukkan 100%, klik Back.
-
-
Setelah mengonfigurasi tugas sinkronisasi balik, tunggu hingga kedua tugas sinkronisasi menunjukkan Status sebagai Running. Hal ini menyelesaikan konfigurasi sinkronisasi data dua arah.
