All Products
Search
Document Center

Data Transmission Service:Sinkronisasi dua arah antar database PostgreSQL

Last Updated:Jul 11, 2026

DTS mendukung sinkronisasi data dua arah secara real-time antara dua database PostgreSQL, seperti ApsaraDB RDS for PostgreSQL dan Database PostgreSQL yang dikelola sendiri. Fitur ini mendukung kasus penggunaan seperti redundansi geo-aktif (arsitektur berbasis sel) dan pemulihan bencana geo. Topik ini menggunakan sinkronisasi dua arah antar instans ApsaraDB RDS for PostgreSQL sebagai contoh untuk memandu Anda melalui langkah-langkah konfigurasi. Proses konfigurasi untuk sumber data lainnya serupa.

Prasyarat

Batasan

Jenis

Deskripsi

Batasan database sumber dan tujuan

  • Jika tabel yang akan disinkronkan tidak memiliki primary key atau kendala UNIQUE, Anda harus mengaktifkan fitur Penulisan Exactly-Once saat mengonfigurasi tugas. Jika tidak, data duplikat dapat terjadi di database tujuan. Untuk informasi lebih lanjut, lihat Sinkronkan tabel tanpa primary key atau kendala UNIQUE.

  • Nama database yang akan disinkronkan tidak boleh mengandung tanda hubung (-), misalnya dts-testdata.

  • Jika Anda menyinkronkan data pada tingkat tabel dan perlu mengedit objek, seperti memetakan nama tabel atau kolom, satu tugas mendukung maksimal 5.000 tabel. Untuk menyinkronkan lebih banyak tabel, bagi menjadi beberapa tugas atau konfigurasikan satu tugas untuk menyinkronkan seluruh database. Jika tidak, kesalahan permintaan dapat terjadi setelah Anda mengirimkan tugas.

  • DTS tidak mendukung penyinkronan temporary tables, internal system triggers, atau beberapa fungsi (fungsi bahasa C dan fungsi internal untuk PROCEDURE dan FUNCTION) dari database sumber. DTS mendukung penyinkronan beberapa tipe data kustom (COMPOSITE, ENUM, atau RANGE) dan kendala berikut: primary key, foreign key, unique, dan CHECK.

  • Write-ahead log (WAL):

    • Fitur WAL harus diaktifkan. Atur parameter wal_level ke logical.

    • Untuk tugas sinkronisasi inkremental, DTS mensyaratkan bahwa log WAL database sumber dipertahankan lebih dari 24 jam. Untuk tugas yang mencakup sinkronisasi penuh dan inkremental, DTS mensyaratkan bahwa log WAL dipertahankan minimal 7 hari. Setelah sinkronisasi penuh selesai, Anda dapat mengubah periode retensi log menjadi lebih dari 24 jam. Jika periode retensi lebih pendek dari yang disyaratkan, tugas DTS dapat gagal karena tidak dapat memperoleh log WAL. Dalam kasus ekstrem, ketidakkonsistenan data atau kehilangan data dapat terjadi. Masalah yang disebabkan oleh periode retensi log lebih pendek dari yang disyaratkan tidak dicakup oleh Perjanjian Tingkat Layanan (SLA) DTS.

  • Batasan operasi database sumber

    • Untuk memastikan tugas sinkronisasi berjalan sesuai harapan dan mencegah gangguan langganan logis akibat failover, Anda harus mengaktifkan Logical Replication Slot Failover untuk instans ApsaraDB RDS for PostgreSQL. Untuk informasi lebih lanjut, lihat Logical Replication Slot Failover.

    • Karena batasan replikasi logis di database sumber, jika satu data yang akan disinkronkan melebihi 256 MB setelah perubahan inkremental, instans sinkronisasi dapat gagal dan tidak dapat dipulihkan. Anda harus mengonfigurasi ulang instans sinkronisasi.

    • Jangan menjalankan operasi DDL yang mengubah skema database atau tabel selama sinkronisasi skema atau sinkronisasi penuh. Jika tidak, tugas sinkronisasi akan gagal.

      Catatan

      Selama sinkronisasi penuh, DTS melakukan kueri ke database sumber. Hal ini membuat kunci metadata yang dapat memblokir operasi DDL pada database sumber.

  • Jika instans sumber memiliki transaksi jangka panjang dan tugas mencakup sinkronisasi inkremental, write-ahead log (WAL) yang terjadi sebelum transaksi jangka panjang tersebut dikomit tidak dapat dihapus. Hal ini dapat menyebabkan akumulasi log WAL dan menghabiskan disk space instans sumber.

  • Jika Anda melakukan peningkatan versi mesin utama pada database sumber saat instans sinkronisasi sedang berjalan, instans tersebut akan gagal dan tidak dapat dipulihkan. Anda harus mengonfigurasi ulang instans sinkronisasi.

Batasan lainnya

  • Satu tugas sinkronisasi data hanya dapat menyinkronkan satu database. Untuk menyinkronkan beberapa database, Anda harus mengonfigurasi tugas terpisah untuk setiap database.

  • DTS tidak mendukung penyinkronan tabel ekstensi TimescaleDB, tabel dengan pewarisan lintas-skema, atau tabel dengan indeks unik berbasis ekspresi.

  • Skema yang dibuat dengan menginstal ekstensi tidak didukung. Anda tidak dapat menemukan informasi tentang skema ini di konsol saat mengonfigurasi tugas.

  • Jika tabel yang akan disinkronkan berisi bidang bertipe SERIAL, database sumber secara otomatis membuat Sequence untuk bidang tersebut. Oleh karena itu, saat Anda mengonfigurasi Source Objects, jika Anda memilih Schema Synchronization untuk Synchronization Types, kami sarankan Anda juga memilih Sequence atau menyinkronkan seluruh skema. Jika tidak, instans sinkronisasi mungkin gagal berjalan.

  • Dalam tiga skenario berikut, Anda harus menjalankan perintah ALTER TABLE schema.table REPLICA IDENTITY FULL; pada tabel yang akan disinkronkan di database sumber sebelum menulis data ke dalamnya. Hal ini memastikan konsistensi data. Jangan mengunci tabel saat menjalankan perintah ini untuk mencegah deadlock. Jika Anda melewatkan item pemeriksaan awal terkait, DTS akan menjalankan perintah ini secara otomatis selama inisialisasi instans.

    • Saat instans pertama kali dijalankan.

    • Saat Anda memilih Schema sebagai granularitas pemilihan objek, dan tabel baru dibuat dalam skema tersebut atau tabel yang akan disinkronkan dibangun ulang menggunakan perintah RENAME.

    • Saat Anda menggunakan fitur untuk memodifikasi objek sinkronisasi.

    Catatan
    • Dalam perintah tersebut, ganti schema dan table dengan nama skema dan nama tabel yang sebenarnya.

    • Kami sarankan Anda melakukan operasi ini selama jam sepi.

  • DTS memvalidasi konten data tetapi tidak mendukung validasi untuk metadata seperti sequences. Anda harus memvalidasi metadata tersebut sendiri.

  • Setelah Anda mengalihkan bisnis ke instans tujuan, sequence baru tidak dimulai dari nilai maksimum sequence sumber. Sebelum alih bencana bisnis, Anda harus mengkueri nilai maksimum sequence yang sesuai di database sumber, lalu mengaturnya sebagai nilai awal untuk sequence yang sesuai di database tujuan. Perintah berikut mengkueri nilai sequence di database sumber:

    do language plpgsql $$
    declare
      nsp name;
      rel name;
      val int8;
    begin
      for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S'
      loop
        execute format($_$select last_value from %I.%I$_$, nsp, rel) into val;
        raise notice '%',
        format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1);
      end loop;
    end;
    $$;
    Catatan

    Pernyataan SQL yang dikembalikan setelah menjalankan perintah berisi semua sequence dari database sumber. Jalankan pernyataan SQL tersebut di database tujuan sesuai kebutuhan.

  • DTS membuat tabel sementara berikut di database sumber untuk memperoleh pernyataan DDL untuk data inkremental, struktur tabel inkremental, dan informasi heartbeat. Jangan menghapus tabel sementara ini selama sinkronisasi. Jika tidak, tugas DTS menjadi abnormal. Tabel sementara ini akan dihapus secara otomatis setelah instans DTS dirilis.

    public.dts_pg_class, public.dts_pg_attribute, public.dts_pg_type, public.dts_pg_enum, public.dts_postgres_heartbeat, public.dts_ddl_command, public.dts_args_session, dan public.aliyun_dts_instance.

  • Untuk memastikan akurasi latensi sinkronisasi yang ditampilkan, DTS menambahkan tabel heartbeat bernama dts_postgres_heartbeat ke database sumber.

  • Selama sinkronisasi data, DTS membuat replication slot dengan awalan dts_sync_ di database sumber untuk mereplikasi data. Replication slot ini memungkinkan DTS memperoleh log inkremental dari database sumber dalam 15 menit terakhir. Saat sinkronisasi data gagal atau instans sinkronisasi dirilis, DTS mencoba menghapus replication slot secara otomatis.

    Catatan
    • Jika Anda mengubah password akun database sumber yang digunakan oleh tugas atau menghapus alamat IP DTS dari daftar putih database sumber selama sinkronisasi data, replication slot tidak dapat dihapus secara otomatis. Dalam hal ini, Anda harus menghapus replication slot secara manual di database sumber. Hal ini mencegah slot terus mengakumulasi dan mengonsumsi disk space, yang dapat membuat database sumber tidak tersedia.

    • Jika terjadi failover di database sumber, Anda harus login ke database sekunder untuk menghapus slot secara manual.

    Amazon slot查询信息

  • Sebelum menyinkronkan data, evaluasi performa database sumber dan tujuan. Kami sarankan Anda menyinkronkan data selama jam sepi. Jika tidak, sinkronisasi data penuh awal akan mengonsumsi sumber daya baca dan tulis di kedua database, yang dapat meningkatkan beban database.

  • Sinkronisasi data penuh awal menjalankan operasi INSERT secara konkuren. Hal ini menyebabkan fragmentasi tabel di database tujuan. Akibatnya, ruang tabel instans tujuan lebih besar daripada instans sumber setelah sinkronisasi data penuh awal selesai.

  • Untuk sinkronisasi data tingkat tabel, jika tidak ada data selain data dari DTS yang ditulis ke database tujuan, Anda dapat menggunakan Data Management (DMS) untuk melakukan operasi DDL Online. Untuk informasi lebih lanjut, lihat Lakukan perubahan skema tanpa mengunci tabel.

  • Selama sinkronisasi DTS, jangan menulis data dari sumber lain ke database tujuan. Hal ini dapat menyebabkan ketidakkonsistenan data antara database sumber dan tujuan. Misalnya, jika Anda menggunakan DMS untuk melakukan operasi DDL Online sementara data dari sumber lain sedang ditulis ke database tujuan, kehilangan data dapat terjadi di database tujuan.

  • Untuk tugas sinkronisasi penuh atau inkremental, jika tabel yang akan disinkronkan di database sumber berisi foreign keys, triggers, atau event triggers, DTS secara sementara mengatur parameter `session_replication_role` ke `replica` pada tingkat session jika akun database tujuan adalah akun istimewa atau memiliki izin superuser. Jika akun database tujuan tidak memiliki izin tersebut, Anda harus mengatur parameter `session_replication_role` ke `replica` secara manual di database tujuan. Selama periode ini (saat `session_replication_role` adalah `replica`), jika operasi cascade update atau delete terjadi di database sumber, ketidakkonsistenan data dapat terjadi. Setelah tugas DTS dirilis, Anda dapat mengubah parameter `session_replication_role` kembali ke `origin`.

  • Tugas sinkronisasi dua arah mencakup tugas sinkronisasi maju dan balik. Saat Anda mengonfigurasi atau mengatur ulang tugas, jika objek tujuan salah satu tugas cocok dengan objek sinkronisasi tugas lainnya:

    • Izinkan hanya satu tugas untuk menyinkronkan data penuh dan inkremental. Tugas lain hanya mendukung sinkronisasi inkremental.

    • Data dari sumber tugas saat ini hanya disinkronkan ke tujuan tugas saat ini. Data tersebut tidak berfungsi sebagai data sumber untuk tugas lainnya.

  • Jika tugas gagal, staf dukungan DTS akan mencoba memulihkannya dalam waktu delapan jam. Selama pemulihan, mereka mungkin me-restart tugas atau menyesuaikan parameternya.

    Catatan

    Hanya parameter tugas DTS yang dimodifikasi—bukan parameter database. Parameter yang mungkin disesuaikan termasuk yang tercantum dalam Modifikasi parameter instans.

  • Saat menyinkronkan tabel partisi, Anda harus menyertakan tabel induk dan partisi anaknya sebagai objek sinkronisasi. Jika tidak, ketidakkonsistenan data dapat terjadi pada tabel partisi tersebut.

    Catatan

    Tabel induk dari tabel partisi PostgreSQL tidak menyimpan data secara langsung. Semua data disimpan di partisi anak. Tugas sinkronisasi harus mencakup tabel induk dan semua partisi anaknya. Jika tidak, data dari partisi anak mungkin tidak disinkronkan, menyebabkan ketidakkonsistenan data antara sumber dan tujuan.

Kasus khusus

  • Saat instans sumber adalah instans ApsaraDB RDS for PostgreSQL

    Selama sinkronisasi, jangan mengubah endpoint atau zona instans ApsaraDB RDS for PostgreSQL. Jika tidak, sinkronisasi akan gagal.

  • Saat instans sumber adalah database PostgreSQL yang dikelola sendiri

    Pastikan nilai parameter `max_wal_senders` dan `max_replication_slots` lebih besar dari jumlah total slot replikasi yang sedang digunakan ditambah jumlah instans DTS yang akan dibuat dengan database PostgreSQL yang dikelola sendiri ini sebagai sumber.

  • Saat instans sumber adalah Google Cloud Platform Cloud SQL for PostgreSQL, Anda harus menyediakan akun yang memiliki izin `cloudsqlsuperuser` untuk Database Account database sumber. Saat memilih objek untuk disinkronkan, pilih objek yang dikelola oleh akun ini, atau berikan izin Owner untuk objek yang akan disinkronkan kepada akun ini (misalnya, jalankan perintah GRANT <owner_of_the_object_to_be_synced> TO <source_database_account_for_the_task> untuk mengizinkan akun ini melakukan operasi terkait sebagai pemilik objek yang akan disinkronkan).

    Catatan

    Akun dengan izin `cloudsqlsuperuser` tidak dapat mengelola data yang pemiliknya adalah akun lain dengan izin `cloudsqlsuperuser`.

Penagihan

Jenis sinkronisasi

Harga

Sinkronisasi skema dan sinkronisasi data penuh

Gratis.

Sinkronisasi data inkremental

Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.

Topologi sinkronisasi dua arah

DTS hanya mendukung sinkronisasi data dua arah antara dua database PostgreSQL.

Detect 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 instans database dalam sinkronisasi dua arah. Jika catatan data diperbarui di kedua instans database, sistem DTS akan menerapkan kebijakan resolusi konflik yang dikonfigurasi dalam tugas.

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 instans database secara bersamaan (atau berurutan dekat), konflik kendala keunikan akan dipicu. Saat pernyataan INSERT disinkronkan ke instans 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 instans tujuan, DTS mengubah operasi UPDATE menjadi operasi INSERT. Namun, konflik keunikan dapat 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 instans tujuan. Dalam hal ini, DTS mengabaikan operasi DELETE terlepas dari kebijakan resolusi konflik yang Anda tentukan.

Penting
  • 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 instans 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

  • skema dan tabel

    Catatan

    Ini mencakup primary key, unique key, foreign key, DATATYPE (tipe data bawaan), dan kendala default.

  • view, procedure (untuk PostgreSQL 11 atau lebih baru), function, rule, sequence, extension, trigger, aggregate, index, operator, dan domain

Operasi SQL yang didukung

Jenis operasi

Pernyataan SQL

DML

INSERT, UPDATE, dan DELETE

DDL

  • Operasi DDL hanya didukung untuk tugas sinkronisasi data yang dibuat setelah .

    Penting
  • Anda dapat menyinkronkan pernyataan DDL berikut jika akun database sumber adalah akun istimewa dan versi mesin minor instans ApsaraDB RDS for PostgreSQL adalah 20210228 atau lebih baru. Untuk informasi tentang cara memperbarui versi mesin minor, lihat Perbarui versi mesin minor.

    • CREATE TABLE dan DROP TABLE

    • ALTER TABLE (termasuk RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK, dan ALTER COLUMN DROP DEFAULT)

    • TRUNCATE TABLE (untuk PostgreSQL sumber 11 atau lebih baru)

    • CREATE INDEX ON TABLE

    Penting
    • Klausa tambahan dalam pernyataan DDL, seperti CASCADE atau RESTRICT, tidak disinkronkan.

    • Pernyataan DDL dalam session yang menggunakan perintah SET session_replication_role = replica tidak disinkronkan.

    • Pernyataan DDL yang dieksekusi dengan memanggil FUNCTION tidak disinkronkan.

    • Jika satu transaksi di database sumber berisi pernyataan DML dan DDL, pernyataan DDL tidak disinkronkan.

    • Jika satu transaksi di database sumber berisi pernyataan DDL untuk objek yang tidak dipilih untuk disinkronkan, pernyataan tersebut tidak disinkronkan.

    • Pernyataan DDL yang dieksekusi langsung dalam plugin menggunakan Server Programming Interface (SPI) tidak didukung.

Penting

Hanya tugas maju (dari database sumber ke database tujuan) yang mendukung sinkronisasi DDL. Tugas balik (dari database tujuan ke database sumber) tidak mendukung sinkronisasi DDL dan secara otomatis menyaring operasi DDL.

Prosedur

  1. Beli instans sinkronisasi data dua arah. Untuk informasi lebih lanjut, lihat Beli tugas sinkronisasi data.

    Penting

    Di halaman pembelian, pilih PostgreSQL untuk PostgreSQL dan PostgreSQL, serta pilih Two-way Synchronization untuk Two-way Synchronization.

  2. Login ke halaman Tugas Sinkronisasi DTS baru.

    Catatan

    Anda juga dapat login ke Data Management (DMS). Di bilah menu atas, pilih Data + AI. Di panel navigasi kiri, pilih Data Transmission (DTS) > Data Synchronization.

  3. Di pojok kiri atas halaman, pilih wilayah tempat instans tujuan berada.

  4. Temukan instans sinkronisasi data yang telah Anda beli dan klik Configure Task untuk tugas sinkronisasi pertamanya.

  5. Konfigurasikan database sumber dan tujuan.

    Peringatan

    Setelah memilih instans sumber dan tujuan, baca dengan cermat batasan yang ditampilkan di bagian atas halaman. Jika Anda tidak mengikuti batasan tersebut, tugas dapat gagal atau terjadi ketidakkonsistenan data.

    Kategori

    Parameter

    Deskripsi

    N/A

    Task Name

    DTS secara otomatis menghasilkan nama tugas. Kami sarankan Anda menentukan nama deskriptif untuk memudahkan identifikasi. Nama tersebut tidak harus unik.

    Source Database

    Database Type

    Pilih PostgreSQL.

    Connection Type

    Pilih Alibaba Cloud Instance.

    Instance Region

    Wilayah instans sumber yang Anda pilih saat pembelian. Parameter ini tidak dapat diubah.

    Instance ID

    Pilih ID instans ApsaraDB RDS for PostgreSQL sumber.

    Database Name

    Masukkan nama database yang berisi objek yang akan disinkronkan di instans ApsaraDB RDS for PostgreSQL sumber.

    Database Account

    Masukkan akun berhak tinggi untuk instans ApsaraDB RDS for PostgreSQL sumber. Akun tersebut harus merupakan pemilik database yang dipilih. Untuk informasi lebih lanjut tentang cara membuat akun dan memberikan izin, lihat Buat akun dan Buat database.

    Database Password

    Masukkan password yang sesuai dengan akun database.

    Encryption

    Pilih metode koneksi. Dalam contoh ini, Non-encrypted dipilih.

    Jika Anda perlu menghubungkan ke database menggunakan enkripsi SSL, pilih SSL-encrypted, lalu unggah CA Certificate, Client Certificate, dan Private Key of Client Certificate sesuai kebutuhan. Lalu, masukkan Private Key Password of Client Certificate.

    Catatan
    • Jika Anda memilih SSL-encrypted untuk database PostgreSQL yang dikelola sendiri, Anda harus mengunggah CA Certificate.

    • Jika Anda perlu menggunakan sertifikat klien, Anda harus mengunggah Client Certificate dan Private Key of Client Certificate, lalu masukkan Private Key Password of Client Certificate.

    • Untuk informasi tentang fitur enkripsi SSL untuk instans RDS for PostgreSQL, lihat Enkripsi koneksi SSL.

    Destination Database

    Database Type

    Pilih PostgreSQL.

    Connection Type

    Pilih Alibaba Cloud Instance.

    Instance Region

    Wilayah instans tujuan yang Anda pilih saat pembelian. Parameter ini tidak dapat diubah.

    Instance ID

    Pilih ID instans ApsaraDB RDS for PostgreSQL tujuan.

    Database Name

    Masukkan nama database yang berisi objek yang akan disinkronkan di instans ApsaraDB RDS for PostgreSQL tujuan.

    Database Account

    Masukkan akun berhak tinggi untuk instans ApsaraDB RDS for PostgreSQL tujuan. Akun tersebut harus merupakan pemilik database yang dipilih. Untuk informasi lebih lanjut tentang cara membuat akun dan memberikan izin, lihat Buat akun dan Buat database.

    Database Password

    Masukkan password yang sesuai dengan akun database.

    Encryption

    Pilih metode koneksi. Dalam contoh ini, Non-encrypted dipilih.

    Jika Anda perlu menghubungkan ke database menggunakan enkripsi SSL, pilih SSL-encrypted, lalu unggah CA Certificate, Client Certificate, dan Private Key of Client Certificate sesuai kebutuhan. Lalu, masukkan Private Key Password of Client Certificate.

    Catatan
    • Jika Anda memilih SSL-encrypted untuk database PostgreSQL yang dikelola sendiri, Anda harus mengunggah CA Certificate.

    • Jika Anda perlu menggunakan sertifikat klien, Anda harus mengunggah Client Certificate dan Private Key of Client Certificate, lalu masukkan Private Key Password of Client Certificate.

    • Untuk informasi tentang fitur enkripsi SSL untuk instans RDS for PostgreSQL, lihat Enkripsi koneksi SSL.

  6. Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman.

    Catatan
    • Pastikan 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.

  7. Konfigurasikan objek tugas.

    1. Di halaman Configure Objects, konfigurasikan objek yang akan disinkronkan.

      Parameter

      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 klaster tujuan. Hal ini berfungsi sebagai data garis dasar untuk sinkronisasi data inkremental berikutnya.

      Catatan

      Jika Anda memilih Schema Synchronization, DTS menyinkronkan skema tabel yang akan disinkronkan, termasuk foreign keys, dari database sumber ke database 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.

        Catatan

        Jika 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 Petakan nama tabel dan kolom.

      • Ignore Errors and Proceed: Melewati pemeriksaan nama tabel duplikat di database tujuan.

        Peringatan

        Memilih 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 dapat gagal. Hal ini dapat mengakibatkan hanya data kolom parsial yang disinkronkan atau kegagalan sinkronisasi total. Lakukan dengan hati-hati.

      Synchronization Topology

      Pilih Two-way Synchronization.

      Exclude DDL Operations

      • Yes: Operasi DDL tidak disinkronkan.

      • No: Operasi DDL disinkronkan.

      Penting

      Untuk memastikan stabilitas tautan sinkronisasi dua arah, Anda dapat memilih apakah akan menyinkronkan operasi DDL hanya untuk tugas sinkronisasi maju (dari database sumber ke database tujuan). Untuk tugas sinkronisasi balik (dari database tujuan ke database sumber), operasi DDL secara otomatis disaring.

      Conflict Resolution Policy

      Jika Anda menghadapi jenis konflik tersebut, pilih kebijakan resolusi konflik berdasarkan kebutuhan bisnis 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

      Jika tugas sinkronisasi mengalami latensi setelah dijeda atau dimulai ulang, kebijakan ini tidak berlaku selama periode latensi. Data di database tujuan ditimpa secara default.

      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 lebih lanjut, 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 objek untuk disinkronkan pada tingkat skema atau tabel. Jika Anda memilih tabel sebagai objek sinkronisasi, objek lain seperti view, trigger, dan stored procedure tidak disinkronkan ke database target.

      • Jika tabel yang akan disinkronkan berisi bidang bertipe SERIAL dan Synchronization Types dipilih untuk Schema Synchronization, kami sarankan juga memilih Sequence atau seluruh skema.

      Selected Objects

      • Untuk mengganti nama satu objek sinkronisasi di instans tujuan, klik kanan objek tersebut di kotak Selected Objects. Untuk informasi selengkapnya tentang penggantian nama objek, lihat Memetakan satu database, tabel, atau kolom.

      • Untuk mengubah nama beberapa objek sinkronisasi di instans tujuan secara batch, klik Batch Edit di pojok kanan atas kotak Selected Objects. Untuk informasi lebih lanjut, lihat Petakan database, tabel, dan kolom secara batch.

      Catatan
      • Untuk memilih operasi SQL yang akan disinkronkan untuk skema atau tabel tertentu, klik kanan objek di kotak Selected Objects. Di kotak dialog yang muncul, pilih operasi SQL yang diinginkan.

      • Untuk menentukan kondisi WHERE untuk memfilter data, klik kanan tabel di kotak Selected Objects. Di kotak dialog yang muncul, tentukan kondisi filter. Untuk informasi lebih lanjut, lihat Gunakan kondisi SQL untuk memfilter data.

      • Jika Anda menggunakan fitur pemetaan nama objek untuk mengganti nama objek, objek lain yang bergantung pada objek yang diganti nama tersebut mungkin gagal disinkronkan.

    2. Klik Next: Advanced Settings untuk mengonfigurasi parameter lanjutan.

      Parameter

      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 lebih lanjut, 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 sarankan 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.

      Catatan
      • Jika 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, kami sarankan Anda menyesuaikan durasi percobaan ulang berdasarkan kebutuhan bisnis Anda atau segera merilis instans DTS setelah instans database sumber dan tujuan dirilis.

      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 berkelanjutan. Durasi percobaan ulang default adalah 10 menit. Anda juga dapat menyesuaikan durasi percobaan ulang dalam rentang 1 hingga 1.440 menit. Kami sarankan Anda mengaturnya minimal 10 menit. Jika operasi terkait berhasil dalam durasi percobaan ulang yang ditetapkan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.

      Penting

      Nilai Retry Time for Other Issues harus lebih kecil daripada 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).

      Catatan
      • Item konfigurasi ini hanya tersedia saat Synchronization Types diatur ke Full Data Synchronization.

      • Anda juga dapat menyesuaikan laju sinkronisasi penuh setelah instans 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

      Anda dapat memilih tag lingkungan untuk mengidentifikasi instans berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, Anda tidak perlu memilih tag.

      Configure ETL

      Pilih apakah akan mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL? Nilai yang valid:

      Monitoring and Alerting

      Tentukan apakah akan mengonfigurasi peringatan. Jika sinkronisasi gagal atau latensi melebihi ambang batas yang ditentukan, notifikasi dikirim ke kontak peringatan.

    3. Klik Next: Data Validation untuk mengonfigurasi tugas validasi data.

      Jika Anda ingin menggunakan fitur validasi data, lihat Konfigurasikan validasi data untuk petunjuk konfigurasi.

  8. 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.

    Catatan
    • Sebelum 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.

  9. Saat Success Rate mencapai 100%, klik Back.

  10. Konfigurasikan tugas sinkronisasi balik.

    1. Tunggu hingga Status tugas sinkronisasi maju berubah menjadi Running.

    2. Temukan tugas sinkronisasi balik dan klik Configure Task.

    3. Konfigurasikan tugas sinkronisasi balik dengan mengikuti Langkah 5 hingga Langkah 9.

      Penting
      • Saat mengonfigurasi tugas sinkronisasi balik, pastikan instans sumber dan tujuan ditukar: tujuan tugas maju menjadi sumber tugas balik, dan sebaliknya. Pastikan juga semua informasi instans lainnya, seperti nama database, akun, dan password, benar dan konsisten.

      • Instance Region untuk database sumber dan tujuan tugas sinkronisasi balik tidak dapat diubah. Lebih sedikit parameter yang diperlukan dibandingkan tugas sinkronisasi maju. Konfigurasikan parameter yang ditampilkan di konsol.

      • Pengaturan 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 ditentukan dalam daftar Selected Objects tugas sinkronisasi maju.

      • Kami sarankan Anda tidak menggunakan fitur pemetaan nama objek saat mengonfigurasi tugas sinkronisasi balik. Jika tidak, ketidakkonsistenan data dapat terjadi.

  11. Setelah tugas sinkronisasi balik dikonfigurasi, tunggu hingga Status kedua tugas berubah menjadi Running. Sinkronisasi data dua arah telah sepenuhnya dikonfigurasi.