All Products
Search
Document Center

Data Transmission Service:Migrasi database PostgreSQL yang dikelola sendiri ke RDS PostgreSQL

Last Updated:Jun 21, 2026

Topik ini menjelaskan cara menggunakan Data Transmission Service (DTS) untuk menyinkronkan data dari database PostgreSQL yang dikelola sendiri ke ApsaraDB RDS for PostgreSQL.

Prasyarat

  • Anda telah membuat database PostgreSQL yang dikelola sendiri sebagai sumber dan instans RDS PostgreSQL tujuan. Untuk informasi selengkapnya tentang cara membuat instans RDS PostgreSQL, lihat Buat instans RDS PostgreSQL.

    Catatan
    • Untuk versi database yang didukung, lihat Ikhtisar skenario sinkronisasi.

    • Kami menyarankan menggunakan versi database tujuan yang sama atau lebih baru daripada versi database sumber. Menyinkronkan data ke versi yang lebih lama dapat menyebabkan masalah kompatibilitas.

  • Ruang penyimpanan instans RDS PostgreSQL tujuan harus lebih besar daripada ruang penyimpanan yang digunakan oleh database PostgreSQL yang dikelola sendiri sebagai sumber.

Catatan

Jenis

Deskripsi

Batasan database sumber

  • Tabel yang Anda sinkronkan harus memiliki primary key atau unique constraint. Jika tidak, data duplikat dapat terjadi di database tujuan.

    Catatan

    Jika Anda membuat tabel tujuan secara manual (tanpa memilih Synchronization Types sebagai Schema Synchronization), Anda harus memastikan bahwa tabel tujuan memiliki primary key atau unique constraint non-null yang sama dengan tabel sumber. Jika tidak, data duplikat dapat terjadi di database tujuan.

  • 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, untuk lebih dari 5.000 tabel dalam satu tugas sinkronisasi data, kami menyarankan membaginya menjadi beberapa tugas atau mengonfigurasi satu tugas untuk menyinkronkan seluruh database. Jika tidak, tugas tersebut mungkin gagal saat dikirim.

  • DTS tidak mendukung sinkronisasi temporary tables, internal triggers (TRIGGER), atau fungsi tertentu seperti fungsi bahasa C dan fungsi internal untuk PROCEDURE dan FUNCTION dari database sumber. DTS mendukung sinkronisasi beberapa tipe data kustom (TYPE adalah COMPOSITE, ENUM, atau RANGE) dan constraint berikut: primary key, foreign key, unique, dan CHECK.

  • Write-ahead logging (WAL):

    • Anda harus mengaktifkan WAL dengan mengatur parameter wal_level ke logical.

    • Untuk tugas sinkronisasi data inkremental, DTS mensyaratkan agar WAL database sumber dipertahankan lebih dari 24 jam. Untuk tugas yang melakukan sinkronisasi data penuh dan inkremental, WAL harus dipertahankan minimal tujuh hari. Anda dapat mengubah periode retensi menjadi lebih dari 24 jam setelah sinkronisasi data penuh selesai. Jika tugas gagal karena DTS tidak dapat memperoleh WAL akibat periode retensi yang lebih pendek, kegagalan tersebut dapat menyebabkan ketidakkonsistenan atau kehilangan data dalam kasus ekstrem. Masalah yang disebabkan oleh periode retensi WAL yang tidak mencukupi tidak dicakup oleh Service Level Agreement (SLA) DTS.

  • Jika dilakukan alih bencana primary/secondary pada database PostgreSQL yang dikelola sendiri, tugas sinkronisasi akan gagal.

  • Pastikan nilai parameter max_wal_senders dan max_replication_slots keduanya lebih besar dari jumlah total slot replikasi yang sedang digunakan di database ditambah jumlah instans DTS yang ingin Anda buat dengan database ini sebagai sumber.

  • Jika database sumber memiliki transaksi jangka panjang dan instans dikonfigurasi untuk sinkronisasi data inkremental, data write-ahead logging (WAL) yang dihasilkan sebelum transaksi tersebut dikomit tidak dapat dihapus. Hal ini dapat menyebabkan akumulasi data WAL dan berpotensi menyebabkan ruang disk tidak mencukupi di database sumber.

  • Jika sumbernya adalah instans Cloud SQL for PostgreSQL, Anda harus memasukkan akun database yang memiliki izin cloudsqlsuperuser di bidang Database Account. Saat memilih objek yang akan disinkronkan, Anda harus memilih objek yang dikelola oleh akun ini, atau memberikan izin OWNER pada objek tersebut kepada akun ini. Misalnya, jalankan perintah GRANT <owner_of_objects> TO <source_account_for_task> untuk mengizinkan akun tersebut melakukan operasi sebagai pemilik objek.

    Catatan

    Akun yang memiliki izin cloudsqlsuperuser tidak dapat mengelola data yang dimiliki oleh akun lain yang juga memiliki izin cloudsqlsuperuser.

  • Karena keterbatasan inheren langganan logis di database sumber, jika satu catatan data yang akan disinkronkan melebihi 256 MB setelah perubahan inkremental, instans sinkronisasi akan gagal dan harus dikonfigurasi ulang.

  • 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 query ke database sumber. Hal ini membuat metadata lock yang dapat memblokir operasi DDL di database sumber.

  • Jika Anda melakukan peningkatan versi utama pada database sumber saat instans sinkronisasi sedang berjalan, instans tersebut akan gagal dan harus dikonfigurasi ulang.

  • Tabel dengan generated columns di PostgreSQL 18 tidak mendukung sinkronisasi. Jika Anda mengonfigurasi sinkronisasi untuk tabel tersebut, operasi DML pada tabel tersebut akan diblokir.

Batasan lainnya

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

  • DTS tidak mendukung sinkronisasi tabel plug-in TimescaleDB, tabel dengan pewarisan lintas-skema, atau tabel dengan unique index berbasis ekspresi.

  • Skema yang dibuat dengan menginstal plug-in tidak didukung untuk sinkronisasi. Anda tidak dapat mengambil informasi tentang skema ini di konsol saat mengonfigurasi tugas.

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

  • Dalam tiga skenario berikut, Anda harus menjalankan perintah ALTER TABLE schema.table REPLICA IDENTITY FULL; pada tabel sumber sebelum menulis data ke dalamnya untuk memastikan konsistensi data. Jangan melakukan operasi penguncian tabel saat perintah ini berjalan untuk mencegah deadlock. Jika Anda melewatkan pemeriksaan ini selama Pemeriksaan Awal, DTS akan menjalankan perintah ini secara otomatis selama inisialisasi instans.

    • Saat instans dijalankan pertama kali.

    • Saat Anda memilih objek pada tingkat skema, dan tabel baru dibuat di skema tersebut atau tabel dibangun ulang menggunakan perintah RENAME.

    • Saat Anda menggunakan fitur untuk memodifikasi objek sinkronisasi.

    Catatan
    • Ganti schema dan table dalam perintah dengan nama skema dan tabel yang akan disinkronkan.

    • Lakukan operasi ini selama jam sepi.

  • DTS memverifikasi konten data tetapi tidak mendukung verifikasi metadata seperti sequence. Anda harus memverifikasi metadata tersebut sendiri.

  • Setelah Anda mengalihkan bisnis ke database tujuan, sequence tidak akan secara otomatis melanjutkan dari nilai maksimum sequence yang sesuai di database sumber. Sebelum alih bencana, Anda harus memperbarui nilai sequence di database tujuan. Untuk informasi selengkapnya, lihat Perbarui nilai sequence di database tujuan.

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

    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 slot replikasi dengan awalan dts_sync_ di database sumber untuk mereplikasi data. Slot replikasi ini memungkinkan DTS memperoleh log inkremental yang dihasilkan dalam 15 menit terakhir dari database sumber. Saat tugas sinkronisasi data gagal atau instans dilepas, DTS akan mencoba menghapus slot replikasi ini secara otomatis.

    Catatan
    • Jika Anda mengubah kata sandi akun database sumber atau menghapus daftar putih IP untuk DTS selama sinkronisasi data, slot replikasi tidak akan dibersihkan secara otomatis. Bersihkan slot replikasi secara manual di database sumber untuk mencegahnya mengonsumsi ruang disk dan membuat database sumber tidak tersedia.

    • Jika database sumber mengalami failover, login ke database standby untuk melakukan pembersihan secara manual.

    Jalankan pernyataan SQL SELECT * FROM pg_replication_slots; untuk melihat semua slot replikasi di database sumber. Di hasilnya, slot replikasi DTS adalah catatan di mana nilai slot_name dimulai dengan dts_sync_ dan nilai active adalah true.

  • Sebelum memulai sinkronisasi data, evaluasi kinerja database sumber dan tujuan. Lakukan sinkronisasi selama jam sepi. Sinkronisasi data penuh mengonsumsi sumber daya baca dan tulis di kedua database, yang dapat meningkatkan beban mereka.

  • Sinkronisasi data penuh melakukan operasi INSERT konkuren, yang dapat menyebabkan fragmentasi tabel di database tujuan. Akibatnya, ruang tabel instans tujuan akan lebih besar daripada instans sumber setelah sinkronisasi data penuh selesai.

  • Untuk sinkronisasi data tingkat tabel, jika tidak ada data dari sumber selain DTS yang ditulis ke database tujuan, Anda dapat menggunakan DMS untuk melakukan perubahan DDL online. Untuk informasi selengkapnya, lihat Ubah skema tanpa mengunci tabel.

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

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

  • 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 di Modifikasi parameter instans.

  • Saat menyinkronkan tabel partisi, Anda harus menyertakan tabel induk dan partisi anaknya sebagai objek sinkronisasi. Jika tidak, data di tabel partisi mungkin menjadi tidak konsisten.

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

    • Sinkronisasi tabel partisi dan tabel pewarisan (tabel induk-anak) lintas database berbeda tidak didukung. Pastikan tabel partisi dan semua partisinya, serta tabel induk dan semua tabel anaknya, berada di database yang sama.

Harga

Jenis sinkronisasi

Biaya

Sinkronisasi skema dan sinkronisasi penuh

Gratis.

Sinkronisasi inkremental

Dikenakan biaya. Lihat ikhtisar penagihan.

Topologi sinkronisasi yang didukung

  • Sinkronisasi satu arah satu-ke-satu

  • Sinkronisasi satu arah satu-ke-banyak

  • Sinkronisasi satu arah kaskade

  • Sinkronisasi satu arah banyak-ke-satu

Untuk pengenalan setiap topologi sinkronisasi, lihat topologi sinkronisasi data.

Objek yang didukung untuk sinkronisasi

  • SCHEMA, TABLE.

    Catatan

    Ini mencakup PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, DATATYPE (tipe data bawaan), dan DEFAULT CONSTRAINT.

  • VIEW, PROCEDURE (memerlukan PostgreSQL 11 atau lebih baru), FUNCTION, RULE, SEQUENCE, EXTENSION, TRIGGER, AGGREGATE, INDEX, OPERATOR, DOMAIN.

Operasi SQL yang didukung untuk sinkronisasi

Jenis operasi

Operasi SQL

DML

INSERT, UPDATE, DELETE

DDL

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

    Penting
  • Tugas sinkronisasi mendukung operasi DDL berikut, asalkan akun database sumber adalah akun berhak istimewa tinggi dan database PostgreSQL yang dikelola sendiri memiliki versi minor 20210228 atau lebih baru.

    • CREATE TABLE, 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 (memerlukan database sumber PostgreSQL 11 atau lebih baru)

    • CREATE INDEX ON TABLE

    Penting
    • Pernyataan DDL yang mencakup informasi tambahan, seperti CASCADE atau RESTRICT, tidak didukung.

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

    • Pernyataan DDL yang dieksekusi dengan memanggil FUNCTION tidak didukung.

    • Jika sebuah commit berisi operasi DML dan DDL, operasi DDL tidak disinkronkan.

    • Jika sebuah commit berisi operasi DDL pada objek yang tidak disinkronkan, operasi tersebut tidak disinkronkan.

    • Pernyataan DDL yang dieksekusi langsung dalam plug-in melalui SPI (Server Programming Interface) tidak didukung.

Izin yang diperlukan untuk akun database

Database

Izin yang diperlukan

Pembuatan dan otorisasi akun

PostgreSQL yang dikelola sendiri

izin superuser

Gunakan pernyataan CREATE USER dan GRANT.

RDS PostgreSQL

Akun berhak istimewa tinggi yang juga harus menjadi pemilik (akun berotorisasi) database yang dipilih.

Buat Akun.

Persiapan

Catatan

Langkah-langkah berikut berlaku untuk sistem Linux.

Lakukan persiapan berikut untuk PostgreSQL yang dikelola sendiri (semua versi).

  1. Login ke server tempat database PostgreSQL yang dikelola sendiri dideploy.

  2. Jalankan perintah berikut untuk memeriksa jumlah slot replikasi yang sedang digunakan.

    select count(1) from pg_replication_slots;
  3. Modifikasi file postgresql.conf untuk mengatur wal_level ke logical. Pastikan juga 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 Anda buat dengan database PostgreSQL yang dikelola sendiri ini sebagai sumber.

    # - Settings -
    wal_level = logical			# minimal, replica, or logical
    					# (change requires restart)
    ......
    # - Sending Server(s) -
    # Set these on the master and on any standby that will send replication data.
    max_wal_senders = 10		# max number of walsender processes
    				# (change requires restart)
    #wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables
    #wal_sender_timeout = 60s	# in milliseconds; 0 disables
    max_replication_slots = 10	# max number of replication slots
    				# (change requires restart)
    Catatan

    Setelah memodifikasi file konfigurasi, restart database PostgreSQL yang dikelola sendiri agar perubahan berlaku.

  4. Tambahkan alamat IP DTS ke file pg_hba.conf database PostgreSQL yang dikelola sendiri. Tambahkan hanya rentang alamat IP DTS yang sesuai dengan wilayah database tujuan. Untuk informasi selengkapnya, lihat Tambahkan alamat IP server DTS ke daftar putih.

    Catatan
    • Setelah memodifikasi file konfigurasi, jalankan perintah SELECT pg_reload_conf(); atau restart database PostgreSQL yang dikelola sendiri agar perubahan berlaku.

    • Untuk informasi selengkapnya tentang file konfigurasi ini, lihat file pg_hba.conf. Jika Anda telah mengonfigurasi alamat trust sebagai 0.0.0.0/0 (seperti yang ditunjukkan dalam kode berikut), lewati langkah ini.

    # "local" is for Unix domain socket connections only
    local   all             all                                     trust
    # IPv4 local connections:
    host    all             all             0.0.0.0/0               md5
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    local   replication     postgres                                trust
    host    replication     postgres        0.0.0.0/0               md5
  5. Buat database dan skema yang sesuai di instans RDS PostgreSQL tujuan berdasarkan informasi database dan skema objek yang akan disinkronkan (nama skema harus cocok). Untuk informasi selengkapnya, lihat Buat database dan Manajemen skema.

Jika versi PostgreSQL yang dikelola sendiri Anda berada di antara 9.4.8 dan 10.0, Anda juga harus melakukan persiapan berikut.

  1. Unduh kode sumber PostgreSQL dan kompilasi serta instal.

    1. Login ke server tempat database PostgreSQL yang dikelola sendiri dideploy.

    2. Unduh kode sumber untuk versi PostgreSQL yang dikelola sendiri Anda dari situs resmi PostgreSQL.

    3. Jalankan perintah sudo ./configure, sudo make, dan sudo make install untuk mengonfigurasi, mengompilasi, dan menginstal kode sumber.

      Penting
      • Saat mengompilasi dan menginstal PostgreSQL, versi sistem operasi harus sesuai dengan versi GCC (GNU Compiler Collection).

      • Jika Anda mengalami error saat menjalankan sudo ./configure, sesuaikan perintah berdasarkan pesan error. Misalnya, jika pesan error adalah readline library not found. Use --without-readline to disable readline support., sesuaikan perintah menjadi sudo ./configure --without-readline.

      • Jika Anda memilih metode lain untuk menginstal PostgreSQL, kompilasi ali_decoding di lingkungan pengujian dengan versi sistem operasi dan GCC yang sama.

  2. Unduh dan kompilasi plug-in ali_decoding yang disediakan oleh DTS.

    1. Unduh ali_decoding.

    2. Salin seluruh direktori ali_decoding ke direktori contrib PostgreSQL (setelah dikompilasi dan diinstal).

      total 1068
      -rw-r--r--  1 1107 1107    384 Sep 27  2016 aclocal.m4
      drwxrwxrwx  2 1107 1107   4096 Sep 27  2016 config
      -rw-r--r--  1 root root 374806 Sep  7 10:10 config.log
      -rwxr-xr-x  1 root root  39032 Sep  7 10:10 config.status
      -rwxr-xr-x  1 1107 1107 471157 Sep 27  2016 configure
      -rw-r--r--  1 1107 1107  75195 Sep 27  2016 configure.in
      drwxrwxrwx 56 1107 1107   4096 Sep  7 10:28 contrib
      -rw-r--r--  1 1107 1107   1192 Sep 27  2016 COPYRIGHT
      drwxrwxrwx  3 1107 1107   4096 Sep 27  2016 doc
      -rw-r--r--  1 root root   3638 Sep  7 10:10 GNUmakefile
      -rw-r--r--  1 1107 1107   3638 Sep 27  2016 GNUmakefile.in
      -rw-r--r--  1 1107 1107    283 Sep 27  2016 HISTORY
      -rw-r--r--  1 1107 1107  75065 Sep 27  2016 INSTALL
      -rw-r--r--  1 1107 1107   1489 Sep 27  2016 Makefile
      -rw-r--r--  1 1107 1107   1209 Sep 27  2016 README
      drwxrwxrwx 16 1107 1107   4096 Sep  7 10:10 src
    3. Masuk ke direktori ali_decoding dan ganti isi Makefile dengan berikut:

      # contrib/ali_decoding/Makefile
      MODULE_big = ali_decoding
      MODULES = ali_decoding
      OBJS    = ali_decoding.o
      DATA = ali_decoding--0.0.1.sql ali_decoding--unpackaged--0.0.1.sql
      EXTENSION = ali_decoding
      NAME = ali_decoding
      #subdir = contrib/ali_decoding
      #top_builddir = ../..
      #include $(top_builddir)/src/Makefile.global
      #include $(top_srcdir)/contrib/contrib-global.mk
      #PG_CONFIG = /usr/pgsql-9.6/bin/pg_config
      #pgsql_lib_dir := $(shell $(PG_CONFIG) --libdir)
      #PGXS := $(shell $(PG_CONFIG) --pgxs)
      #include $(PGXS)
      # Use the following for source installation
      ifdef USE_PGXS
      PG_CONFIG = pg_config
      PGXS := $(shell $(PG_CONFIG) --pgxs)
      include $(PGXS)
      else
      subdir = contrib/ali_decoding
      top_builddir = ../..
      include $(top_builddir)/src/Makefile.global
      include $(top_srcdir)/contrib/contrib-global.mk
      endif
    4. Masuk ke direktori ali_decoding dan jalankan perintah sudo make dan sudo make install untuk mengompilasi ali_decoding dan memperoleh file yang diperlukan untuk instalasi.

    5. Salin file berikut ke lokasi yang ditentukan.

      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
      /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
  3. Buat database dan skema yang sesuai di instans RDS PostgreSQL tujuan berdasarkan informasi database dan skema objek yang akan disinkronkan (nama skema harus cocok). Untuk informasi selengkapnya, lihat Buat database dan Manajemen skema.

Prosedur

  1. Buka halaman daftar tugas sinkronisasi di wilayah tujuan. Anda dapat menggunakan salah satu dari dua metode berikut:

    Dari konsol DTS

    1. Login ke Data Transmission Service (DTS) console.

    2. Di panel navigasi kiri, klik Data Synchronization.

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

    Dari konsol DMS

    Catatan

    Operasi aktual dapat berbeda berdasarkan mode dan tata letak konsol DMS. Untuk informasi selengkapnya, lihat Mode sederhana dan Sesuaikan tata letak dan gaya antarmuka DMS.

    1. Login ke Data Management (DMS).

    2. Di bilah menu atas, pilih Data + AI > Data Transmission (DTS) > Data Synchronization.

    3. Di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi berada.

  2. Klik Create Task untuk membuka halaman konfigurasi tugas.

  3. 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 mungkin gagal atau terjadi ketidakkonsistenan data.

    Kategori

    Konfigurasi

    Deskripsi

    Tidak ada

    Task Name

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

    Source Database

    Database Type

    Pilih PostgreSQL.

    Access Method

    Pilih Cloud Enterprise Network (CEN).

    Instance Region

    Pilih wilayah tempat database PostgreSQL yang dikelola sendiri berada.

    CEN Instance ID

    Pilih ID instans CEN yang terkait dengan database PostgreSQL yang dikelola sendiri.

    Connected VPC

    Pilih jaringan VPC yang terhubung ke database PostgreSQL yang dikelola sendiri.

    Domain Name or IP

    Masukkan alamat IP server database PostgreSQL yang dikelola sendiri.

    Port Number

    Masukkan port yang digunakan oleh database PostgreSQL yang dikelola sendiri. Port default adalah 3433.

    Database Name

    Masukkan nama database di instans PostgreSQL yang dikelola sendiri yang berisi objek yang akan disinkronkan.

    Database Account

    Masukkan akun database untuk instans PostgreSQL yang dikelola sendiri. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.

    Database Password

    Masukkan kata sandi 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. Kemudian, 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.

    Access Method

    Pilih Alibaba Cloud Instance.

    Instance Region

    Pilih wilayah tempat instans RDS PostgreSQL tujuan berada.

    Instance ID

    Pilih ID instans RDS PostgreSQL tujuan.

    Database Name

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

    Database Account

    Masukkan akun database untuk instans RDS PostgreSQL tujuan. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.

    Database Password

    Masukkan kata sandi 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. Kemudian, 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.

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

  5. Konfigurasikan objek tugas.

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

      Catatan

      Jika Anda memilih Schema Synchronization, DTS menyinkronkan struktur tabel yang akan disinkronkan dari database sumber (termasuk foreign keys) 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 selengkapnya, 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 mungkin gagal. Hal ini dapat mengakibatkan hanya data kolom parsial yang disinkronkan atau kegagalan sinkronisasi total. Lanjutkan dengan hati-hati.

      Synchronization Topology

      Skenario ini melibatkan sinkronisasi satu arah. Pilih One-way Synchronization.

      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 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 field tipe SERIAL dan Synchronization Types dipilih untuk Schema Synchronization, kami menyarankan juga memilih Sequence atau seluruh skema.

      Selected Objects

      • Untuk mengganti nama satu objek sinkronisasi di instans tujuan, klik kanan objek di kotak Selected Objects. Untuk informasi selengkapnya tentang mengganti nama objek, lihat Petakan 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 selengkapnya, lihat Petakan database, tabel, dan kolom secara batch.

      Catatan
      • Untuk memilih operasi SQL yang akan disinkronkan pada tingkat database atau tabel, klik kanan objek yang akan disinkronkan di Selected Objects dan pilih operasi SQL yang diperlukan di kotak dialog yang muncul.

      • Untuk mengatur klausa WHERE untuk memfilter data, klik kanan tabel yang akan disinkronkan di Selected Objects dan atur kondisi filter di kotak dialog yang muncul. Untuk informasi selengkapnya, lihat Atur kondisi filter.

      • Jika Anda menggunakan fitur pemetaan nama objek, hal ini dapat menyebabkan kegagalan sinkronisasi untuk objek lain yang bergantung pada objek ini.

    2. 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 kinerja 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 error 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 akan dilanjutkan secara otomatis. 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 akan digunakan untuk keduanya.

      • Karena DTS membebankan biaya untuk waktu proses tugas selama periode percobaan ulang koneksi, kami menyarankan 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 exception eksekusi DDL atau DML), DTS melaporkan error 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 menyarankan Anda mengaturnya minimal 10 menit. Jika operasi terkait berhasil dalam durasi percobaan ulang yang ditetapkan, tugas sinkronisasi akan dilanjutkan secara otomatis. Jika tidak, tugas gagal.

      Penting

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

      Catatan
      • Item 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

      Berdasarkan kebutuhan Anda, pilih tag lingkungan untuk mengidentifikasi instans.

      Configure ETL

      Pilih apakah akan mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Untuk informasi selengkapnya, 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 akan dikirim ke kontak peringatan.

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

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

  6. 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 balon info.

    • 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 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 membahayakan bisnis Anda.

  7. Beli instans.

    1. Saat Success Rate mencapai 100%, klik Next: Purchase Instance.

    2. Di halaman Purchase, pilih metode penagihan dan spesifikasi link untuk instans sinkronisasi data. Tabel berikut menjelaskan parameter ini secara rinci.

      Kategori

      Parameter

      Deskripsi

      New Instance Class

      Metode Penagihan

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

      Konfigurasi Kelompok Sumber Daya

      Kelompok sumber daya tempat instans tersebut berada. Default-nya adalah kelompok sumber daya default. Untuk informasi selengkapnya, lihat Apa itu Resource Management?.

      Spesifikasi Link

      DTS menyediakan spesifikasi sinkronisasi dengan tingkat kinerja berbeda. Spesifikasi link sinkronisasi memengaruhi laju sinkronisasi. Anda dapat memilih spesifikasi berdasarkan skenario bisnis Anda. Untuk informasi selengkapnya, lihat Spesifikasi link sinkronisasi data.

      Durasi Langganan

      Dalam mode langganan, pilih durasi dan jumlah untuk instans langganan. Anda dapat memilih langganan bulanan dari 1 hingga 9 bulan, atau langganan tahunan selama 1, 2, 3, atau 5 tahun.

      Catatan

      Opsi ini hanya tersedia saat metode penagihan adalah Subscription.

    3. Setelah menyelesaikan konfigurasi, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

    4. Klik Buy and Start. Di kotak dialog OK, klik OK.

      Anda dapat melihat progres tugas di halaman Data Synchronization.