All Products
Search
Document Center

ApsaraDB RDS:Gunakan DTS untuk memigrasikan data dari database PostgreSQL yang dikelola sendiri ke instans ApsaraDB RDS for PostgreSQL

Last Updated:Mar 18, 2026

Topik ini menjelaskan cara menggunakan Data Transmission Service (DTS) untuk memigrasikan data dari database PostgreSQL yang dikelola sendiri ke instans RDS for PostgreSQL. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental. Ketiga jenis migrasi ini dapat digunakan secara bersamaan untuk memindahkan database PostgreSQL yang dikelola sendiri ke cloud dengan gangguan layanan minimal.

Prasyarat

  • Buat instans tujuan RDS for PostgreSQL dengan kapasitas penyimpanan lebih besar daripada database PostgreSQL yang dikelola sendiri sumber. Untuk informasi selengkapnya tentang pembuatan instans RDS for PostgreSQL, lihat Buat instans RDS for PostgreSQL.

    Catatan
    • Untuk informasi versi database sumber dan tujuan yang didukung, lihat Ikhtisar skenario migrasi data.

    • Untuk memastikan kompatibilitas, versi database tujuan harus sama atau lebih baru daripada versi database sumber. Jika Anda memigrasikan data dari versi yang lebih baru ke versi yang lebih lama, masalah kompatibilitas database dapat terjadi.

  • Buat database di instans tujuan RDS for PostgreSQL untuk menyimpan data yang dimigrasikan. Untuk informasi selengkapnya, lihat Buat database.

Peringatan

Jenis

Deskripsi

Batasan database sumber

  • Persyaratan bandwidth: Server tempat database sumber berada harus memiliki bandwidth keluar yang cukup. Jika tidak, kecepatan migrasi data akan terpengaruh.

  • Tabel yang akan dimigrasikan harus memiliki kunci primer atau Kendala UNIK, dan field-nya harus unik. Jika tidak, duplikasi data dapat terjadi di database tujuan.

    Catatan

    Jika tabel tujuan tidak dibuat oleh DTS (yaitu, Anda tidak memilih Schema Migration untuk Migration Types), Anda harus memastikan bahwa tabel tersebut memiliki kunci primer yang sama atau Kendala UNIK non-kosong seperti pada tabel sumber. Jika tidak, data duplikat dapat muncul di database tujuan.

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

  • Jika Anda memigrasikan objek tingkat tabel dan perlu mengeditnya, misalnya dengan memetakan nama kolom, satu tugas migrasi data mendukung maksimal 1.000 tabel. Jika melebihi batas ini, kesalahan akan dilaporkan setelah Anda mengirimkan tugas. Dalam kasus ini, bagi tabel menjadi beberapa tugas migrasi atau konfigurasikan tugas untuk memigrasikan seluruh database.

  • DTS tidak mendukung migrasi tabel temporary, trigger internal, atau beberapa fungsi (fungsi bahasa C dan fungsi internal untuk PROCEDURE dan FUNCTION) dari database sumber. DTS mendukung migrasi beberapa data kustom (TYPE adalah COMPOSITE, ENUM, atau RANGE). DTS mendukung migrasi kunci primer, kunci asing, serta kendala UNIK dan CHECK.

  • Untuk migrasi inkremental, write-ahead log (wal):

    • Harus diaktifkan. Atur parameter wal_level ke logical.

    • Untuk tugas migrasi inkremental, DTS mensyaratkan agar log WAL di database sumber disimpan lebih dari 24 jam. Untuk tugas yang mencakup migrasi penuh dan migrasi inkremental, DTS mensyaratkan agar log WAL disimpan minimal 7 hari. Anda dapat mengubah periode retensi log menjadi lebih dari 24 jam setelah migrasi penuh selesai. Jika tidak, tugas dapat gagal karena DTS tidak dapat memperoleh log WAL. Dalam kasus ekstrem, hal ini dapat menyebabkan inkonsistensi data atau kehilangan data. Masalah yang disebabkan oleh periode retensi log lebih pendek dari yang disyaratkan oleh DTS tidak dicakup oleh Perjanjian Tingkat Layanan (SLA) DTS.

  • Batasan operasi database sumber:

    • Jika terjadi failover pada database PostgreSQL yang dikelola sendiri, migrasi akan gagal.

    • Selama migrasi skema dan migrasi penuh, jangan lakukan operasi DDL untuk mengubah skema database atau tabel. Jika tidak, tugas migrasi data akan gagal.

    • Karena batasan replikasi logis di database sumber, jika satu bagian data inkremental yang akan dimigrasikan melebihi 256 MB selama migrasi, instans DTS dapat gagal dan tidak dapat dipulihkan. Anda harus mengonfigurasi ulang instans DTS.

  • Jika database sumber memiliki transaksi jangka panjang dan instans melakukan migrasi inkremental, log write-ahead (WAL) sebelum commit transaksi mungkin tidak dihapus. Hal ini dapat menyebabkan akumulasi log dan mengakibatkan ruang disk tidak mencukupi di database sumber.

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

Batasan lainnya

  • Karena potensi latensi antara node primer dan sekunder database sumber yang dapat menyebabkan inkonsistensi data, gunakan node primer database sumber sebagai sumber data untuk migrasi.

  • Satu tugas migrasi data hanya dapat memigrasikan satu database. Untuk memigrasikan beberapa database, Anda harus mengonfigurasi tugas migrasi data untuk setiap database.

  • DTS tidak mendukung migrasi tabel ekstensi TimescaleDB atau tabel dengan pewarisan lintas-skema.

  • Jika tabel yang akan dimigrasikan berisi field bertipe SERIAL, database sumber secara otomatis membuat Sequence untuk field tersebut. Oleh karena itu, saat Anda mengonfigurasi Source Objects, jika Anda memilih Schema Migration untuk Migration Types, kami menyarankan agar Anda juga memilih Sequence atau melakukan migrasi skema penuh. Jika tidak, instans migrasi dapat gagal.

  • Jika instans DTS melakukan tugas migrasi data inkremental, Anda harus menjalankan perintah ALTER TABLE schema.table REPLICA IDENTITY FULL; pada tabel yang akan dimigrasikan di database sumber sebelum menulis data ke dalamnya. Hal ini berlaku untuk dua skenario berikut dan memastikan konsistensi data. Selama eksekusi perintah ini, kami menyarankan agar Anda tidak melakukan operasi penguncian tabel. Jika tidak, tabel dapat terkunci. Jika Anda melewati pemeriksaan terkait dalam precheck, DTS akan menjalankan perintah ini secara otomatis selama inisialisasi instans.

    • Saat instans dijalankan pertama kali.

    • Saat granularitas objek migrasi adalah Skema, dan tabel baru dibuat dalam skema yang akan dimigrasikan atau tabel yang akan dimigrasikan dibangun ulang menggunakan perintah RENAME.

    Catatan
    • Dalam perintah tersebut, ganti schema dan table dengan nama skema dan nama tabel dari data yang akan dimigrasikan.

    • Kami menyarankan agar Anda melakukan operasi ini selama jam sepi.

  • DTS memvalidasi konten data tetapi saat ini tidak mendukung validasi metadata seperti Sequence. Anda harus memvalidasi metadata ini sendiri.

  • Setelah Anda mengalihkan bisnis ke instans tujuan, Sequence baru tidak akan melanjutkan dari nilai maksimum Sequence sumber. Anda harus memperbarui nilai Sequence di database tujuan sebelum alih bencana bisnis. Untuk informasi selengkapnya, lihat Perbarui nilai Sequence di database tujuan.

  • DTS membuat tabel temporary berikut di database sumber untuk memperoleh pernyataan DDL untuk data inkremental, struktur tabel inkremental, dan informasi heartbeat. Jangan hapus tabel temporary ini selama migrasi. Jika tidak, tugas DTS akan menjadi abnormal. Tabel temporary 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 yang ditampilkan untuk migrasi data inkremental, DTS menambahkan tabel heartbeat bernama dts_postgres_heartbeat ke database sumber.

  • Selama migrasi data inkremental, DTS membuat slot replikasi dengan awalan dts_sync_ di database sumber untuk mereplikasi data. Dengan slot replikasi ini, DTS dapat memperoleh log inkremental dari database sumber dalam 15 menit terakhir. Ketika migrasi data gagal atau instans migrasi dilepas, DTS akan mencoba menghapus slot replikasi ini 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 migrasi data, slot replikasi tidak dapat dihapus secara otomatis. Dalam kasus ini, Anda harus menghapus slot replikasi secara manual di database sumber untuk mencegah akumulasi dan penggunaan ruang disk yang dapat membuat database sumber tidak tersedia.

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

  • Untuk tugas migrasi penuh atau inkremental, jika tabel yang akan dimigrasikan di database sumber berisi kunci asing, trigger, atau event trigger, DTS sementara mengatur parameter `session_replication_role` ke `replica` pada tingkat sesi 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, ketika `session_replication_role` bernilai `replica`, jika operasi cascade update atau delete terjadi di database sumber, inkonsistensi data dapat terjadi. Setelah tugas migrasi DTS dilepas, Anda dapat mengubah kembali parameter `session_replication_role` ke `origin`.

  • Sebelum memigrasikan data, evaluasi performa database sumber dan tujuan. Kami juga menyarankan agar Anda melakukan migrasi data selama jam sepi. Jika tidak, DTS akan mengonsumsi sumber daya baca dan tulis pada database sumber dan tujuan selama migrasi data penuh, yang dapat meningkatkan beban database.

  • Karena migrasi data penuh melibatkan operasi INSERT konkuren, fragmentasi terjadi pada tabel database tujuan. Akibatnya, ruang penyimpanan yang digunakan oleh tabel di database tujuan lebih besar daripada di database sumber setelah migrasi penuh selesai.

  • Pastikan bahwa presisi migrasi DTS untuk kolom bertipe data FLOAT atau DOUBLE memenuhi kebutuhan bisnis Anda. DTS membaca nilai kolom tersebut menggunakan ROUND(COLUMN,PRECISION). Jika presisi tidak didefinisikan secara eksplisit, DTS memigrasikan kolom FLOAT dengan presisi 38 digit dan kolom DOUBLE dengan presisi 308 digit.

  • DTS mencoba melanjutkan tugas migrasi yang gagal dalam waktu tujuh hari. Oleh karena itu, sebelum Anda mengalihkan bisnis ke instans tujuan, Anda harus mengakhiri atau melepas tugas tersebut. Atau, cabut izin tulis akun yang digunakan DTS untuk mengakses instans tujuan menggunakan perintah revoke. Hal ini mencegah data sumber menimpa data di instans tujuan jika tugas dilanjutkan secara otomatis.

  • Jika sebuah instans gagal, tim helpdesk DTS akan mencoba memulihkan instans tersebut dalam waktu 8 jam. Selama proses pemulihan, operasi seperti restart instans atau penyesuaian parameter dapat dilakukan.

    Catatan

    Saat parameter disesuaikan, hanya parameter instans DTS yang dimodifikasi. Parameter di database tidak dimodifikasi. Parameter yang mungkin dimodifikasi termasuk namun tidak terbatas pada yang dijelaskan dalam Ubah parameter instans.

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

    Catatan

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

Kasus khusus

  • Saat instans sumber adalah database PostgreSQL yang dikelola sendiri, pastikan bahwa nilai parameter `max_wal_senders` dan `max_replication_slots` keduanya lebih besar dari jumlah slot replikasi yang sedang digunakan ditambah jumlah instans DTS yang akan dibuat dengan database ini sebagai sumber.

  • Jika instans sumber adalah Google Cloud Platform Cloud SQL for PostgreSQL, Anda harus menentukan akun yang memiliki izin cloudsqlsuperuser untuk Database Account database sumber. Saat memilih objek migrasi, Anda harus memilih objek yang dikelola oleh akun ini, atau berikan izin Owner untuk objek yang akan dimigrasikan kepada akun ini (misalnya, dengan menjalankan perintah GRANT <owner_of_objects_to_migrate> TO <source_db_account_for_task> untuk mengizinkan akun ini menjalankan operasi terkait sebagai pemilik objek).

    Catatan

    Akun dengan izin `cloudsqlsuperuser` tidak dapat mengelola data yang dimiliki oleh akun lain dengan izin `cloudsqlsuperuser`.

Jenis migrasi

  • Migrasi skema

    DTS memigrasikan skema objek yang dipilih dari database sumber ke database tujuan.

    Catatan

    DTS mendukung migrasi skema untuk jenis objek berikut: tabel, trigger, view, sequence, fungsi, tipe yang ditentukan pengguna, aturan, domain, operasi, dan agregat.

  • Migrasi penuh

    DTS memigrasikan data historis objek yang diperlukan dari database sumber ke database tujuan.

  • Migrasi inkremental

    Setelah migrasi data penuh selesai, DTS memigrasikan data inkremental dari database sumber ke database tujuan. Migrasi data inkremental memungkinkan pemindahan data berlangsung lancar tanpa mengganggu layanan aplikasi yang dikelola sendiri selama proses migrasi.

Operasi SQL yang mendukung migrasi inkremental

Jenis operasi

Pernyataan SQL

DML

INSERT, UPDATE, dan DELETE

DDL

  • Hanya tugas migrasi data yang dibuat setelah yang mendukung migrasi operasi DDL.

    Penting
  • Tugas migrasi data mendukung pernyataan DDL berikut. Akun database sumber harus merupakan akun istimewa:

    • 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 (Database PostgreSQL sumber harus PostgreSQL 11 atau lebih baru.)

    • CREATE INDEX ON TABLE

    Penting
    • Informasi tambahan dalam pernyataan DDL, seperti CASCADE atau RESTRICT, tidak dimigrasikan.

    • Pernyataan DDL dari sesi yang menjalankan perintah SET session_replication_role = replica tidak dimigrasikan.

    • Pernyataan DDL yang dieksekusi dengan memanggil fungsi tidak dimigrasikan.

    • Jika beberapa pernyataan SQL yang dikirim dari database sumber sekaligus mengandung DML dan DDL, pernyataan DDL tidak dimigrasikan.

    • Jika beberapa pernyataan SQL yang dikirim dari database sumber sekaligus mengandung DDL untuk objek yang tidak dimigrasikan, pernyataan DDL tidak dimigrasikan.

    • CREATE SEQUENCE tidak didukung.

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

Izin yang diperlukan untuk akun database

Database

Migrasi skema

Migrasi penuh

Migrasi inkremental

Database PostgreSQL yang dikelola sendiri

Izin USAGE pada pg_catalog

Izin untuk pernyataan SELECT pada objek yang akan dimigrasikan

superuser

Instans RDS for PostgreSQL

Izin CREATE dan USAGE pada objek yang akan dimigrasikan

Izin pemilik skema

Izin pemilik skema

Untuk membuat akun database dan memberikan izin:

  • Untuk database PostgreSQL yang dikelola sendiri, lihat sintaks CREATE USER dan GRANT.

  • Untuk instans RDS for PostgreSQL, lihat Buat akun.

Persiapan

Catatan

Lakukan persiapan berikut untuk semua versi database PostgreSQL yang dikelola sendiri.

  1. Login ke server yang menghosting database PostgreSQL yang dikelola sendiri.

  2. Jalankan perintah berikut untuk menanyakan jumlah slot replikasi yang digunakan di database.

    select count(1) from pg_replication_slots;
  3. Modifikasi file postgresql.conf. Atur parameter wal_level ke logical. Pastikan nilai parameter max_wal_senders dan max_replication_slots lebih besar dari jumlah slot replikasi yang digunakan ditambah jumlah instans DTS yang akan menggunakan 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 pengaturan parameter berlaku.

  4. Tambahkan alamat IP server DTS ke file konfigurasi pg_hba.conf database PostgreSQL yang dikelola sendiri. Tambahkan hanya blok CIDR alamat IP server DTS yang berada di wilayah yang sama dengan database tujuan. Untuk informasi selengkapnya, lihat Tambahkan blok CIDR server DTS ke daftar putih database.

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

    • Untuk informasi selengkapnya tentang pengaturan file konfigurasi ini, lihat The pg_hba.conf File. Jika Anda telah mengonfigurasi alamat tepercaya sebagai 0.0.0.0/0 (seperti pada gambar berikut), Anda dapat melewati langkah ini.

    IP

  5. Berdasarkan informasi database dan skema objek yang akan dimigrasikan, buat database dan skema yang sesuai di instans tujuan RDS for PostgreSQL. Nama skema harus sama. Untuk informasi selengkapnya, lihat Buat database dan Kelola skema.

Jika versi database PostgreSQL yang dikelola sendiri Anda berkisar dari 9.4.8 hingga 10.0, Anda juga harus melakukan persiapan berikut.

  1. Unduh kode sumber PostgreSQL, lalu kompilasi dan instal.

    1. Unduh kode sumber yang sesuai dengan versi database PostgreSQL yang dikelola sendiri sumber Anda dari situs resmi PostgreSQL.

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

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

      • Jika terjadi kesalahan saat menjalankan perintah sudo ./configure, Anda dapat memodifikasi perintah berdasarkan pesan kesalahan. Misalnya, jika pesan kesalahan adalah readline library not found. Use --without-readline to disable readline support., Anda dapat mengubah perintah menjadi sudo ./configure --without-readline.

      • Jika Anda menginstal PostgreSQL dengan metode lain, Anda harus mengompilasi plugin ali_decoding di lingkungan staging yang memiliki sistem operasi dan versi GCC yang sama dengan lingkungan produksi Anda.

  2. Unduh plugin ali_decoding yang disediakan oleh DTS, lalu kompilasi dan instal.

    1. Unduh ali_decoding.

    2. Salin seluruh direktori ali_decoding ke direktori `contrib` dari kode sumber PostgreSQL yang telah dikompilasi dan diinstal.

      contrib目录

    3. Masuk ke direktori ali_decoding dan ganti isi file `Makefile` dengan skrip 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 code 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. Jalankan perintah sudo make dan sudo make install secara berurutan untuk mengompilasi plugin ali_decoding dan mengambil file yang diperlukan untuk instalasi.

    5. Salin file-file berikut ke lokasi yang ditentukan.

      指定位置

  3. Berdasarkan informasi database dan skema objek yang akan dimigrasikan, buat database dan skema yang sesuai di instans tujuan RDS for PostgreSQL. Nama skema harus sama. Untuk informasi selengkapnya, lihat Buat database dan Kelola skema.

Prosedur

  1. Gunakan salah satu metode berikut untuk menuju halaman Data Migration dan pilih wilayah tempat instans migrasi data berada.

    Konsol DTS

    1. Login ke Konsol DTS.

    2. Di panel navigasi sebelah kiri, klik Data Migration.

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

    Konsol DMS

    Catatan

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

    1. Login ke Konsol DMS.

    2. Di bilah navigasi atas, arahkan pointer ke Data + AI > DTS (DTS) > Data Migration.

    3. Dari daftar drop-down di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans sinkronisasi data berada.

  2. Klik Create Task untuk menuju halaman konfigurasi tugas.

  3. Konfigurasikan database sumber dan tujuan. Tabel berikut menjelaskan parameter-parameter tersebut.

    Kategori

    Konfigurasi

    Deskripsi

    N/A

    Task Name

    Nama tugas DTS. DTS secara otomatis menghasilkan nama tugas. Kami menyarankan agar Anda menentukan nama yang informatif agar mudah mengidentifikasi tugas tersebut. Anda tidak perlu menentukan nama tugas yang unik.

    Source Database

    Select Existing Connection

    • Jika Anda menggunakan instans database yang telah didaftarkan ke DTS, pilih instans tersebut dari daftar drop-down. DTS secara otomatis mengisi parameter database berikut untuk instans tersebut. Untuk informasi selengkapnya, lihat Kelola koneksi database.

      Catatan

      Di konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.

    • Jika Anda gagal mendaftarkan instans ke DTS, atau tidak perlu menggunakan instans yang telah didaftarkan ke DTS, Anda harus mengonfigurasi informasi database berikut.

    Database Type

    Pilih PostgreSQL.

    Connection Type

    Pilih jenis koneksi berdasarkan lokasi penyebaran database sumber. Topik ini menggunakan Cloud Enterprise Network (CEN) sebagai contoh.

    Catatan

    Jika instans sumber adalah database yang dikelola sendiri, Anda juga harus melakukan persiapan yang diperlukan. Untuk informasi selengkapnya, lihat Persiapan.

    Instance Region

    Pilih wilayah tempat database PostgreSQL yang dikelola sendiri berada.

    CEN Instance ID

    Pilih ID instans CEN tempat database PostgreSQL yang dikelola sendiri terhubung.

    VPC Connected to Database

    Pilih VPC yang terhubung ke database PostgreSQL yang dikelola sendiri.

    Domain Name or IP Address

    Masukkan alamat IP server yang menghosting database PostgreSQL yang dikelola sendiri.

    Port

    Masukkan port layanan database PostgreSQL yang dikelola sendiri. Nilai default adalah 5432.

    Database Name

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

    Database Account

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

    Database Password

    Password yang digunakan untuk mengakses instans database.

    Encryption

    Menentukan apakah koneksi ke database sumber dienkripsi. Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, Non-encrypted dipilih.

    Jika Anda ingin membuat koneksi terenkripsi SSL ke database sumber, lakukan langkah-langkah berikut: Pilih SSL-encrypted, unggah CA Certificate, Client Certificate, dan Private Key of Client Certificate sesuai kebutuhan, lalu tentukan Private Key Password of Client Certificate.

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

    • Jika Anda ingin menggunakan sertifikat klien, Anda harus mengunggah Client Certificate dan Private Key of Client Certificate serta menentukan Private Key Password of Client Certificate.

    • Untuk informasi tentang cara mengonfigurasi enkripsi SSL untuk instans ApsaraDB RDS for PostgreSQL, lihat Enkripsi SSL.

    Destination Database

    Select Existing Connection

    • Jika Anda menggunakan instans database yang telah didaftarkan ke DTS, pilih instans tersebut dari daftar drop-down. DTS secara otomatis mengisi parameter database berikut untuk instans tersebut. Untuk informasi selengkapnya, lihat Kelola koneksi database.

      Catatan

      Di konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.

    • Jika Anda gagal mendaftarkan instans ke DTS, atau tidak perlu menggunakan instans yang telah didaftarkan ke DTS, Anda harus mengonfigurasi informasi database berikut.

    Database Type

    Pilih PostgreSQL.

    Connection Type

    Pilih Cloud Instance.

    Instance Region

    Pilih wilayah tempat instans tujuan RDS for PostgreSQL berada.

    Instance ID

    Pilih ID instans tujuan RDS for PostgreSQL.

    Database Name

    Masukkan nama database di instans tujuan RDS for PostgreSQL yang akan menerima objek yang dimigrasikan.

    Database Account

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

    Database Password

    Password yang digunakan untuk mengakses instans database.

    Encryption

    Menentukan apakah koneksi ke database sumber dienkripsi. Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, Non-encrypted dipilih.

    Jika Anda ingin membuat koneksi terenkripsi SSL ke database sumber, lakukan langkah-langkah berikut: Pilih SSL-encrypted, unggah CA Certificate, Client Certificate, dan Private Key of Client Certificate sesuai kebutuhan, lalu tentukan Private Key Password of Client Certificate.

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

    • Jika Anda ingin menggunakan sertifikat klien, Anda harus mengunggah Client Certificate dan Private Key of Client Certificate serta menentukan Private Key Password of Client Certificate.

    • Untuk informasi tentang cara mengonfigurasi enkripsi SSL untuk instans ApsaraDB RDS for PostgreSQL, lihat Enkripsi SSL.

  4. Di bagian bawah halaman, klik Test Connectivity and Proceed.

    Catatan
    • Pastikan bahwa blok CIDR server DTS dapat ditambahkan secara otomatis atau manual ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Untuk informasi selengkapnya, lihat Tambahkan alamat IP server DTS ke daftar putih.

    • Jika database sumber atau tujuan adalah database yang dikelola sendiri dan Access Method-nya tidak diatur ke Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

  5. Konfigurasikan objek yang akan dimigrasikan.

    1. Di halaman Configure Objects, konfigurasikan objek yang ingin Anda migrasikan.

      Konfigurasi

      Deskripsi

      Migration Types

      • Untuk melakukan migrasi penuh saja, pilih Schema Migration dan Full Data Migration.

      • Untuk memigrasikan data tanpa gangguan layanan, pilih Schema Migration, Full Data Migration, dan Incremental Data Migration.

      Catatan
      • Jika Anda memilih Schema Migration, DTS memigrasikan skema tabel yang akan dimigrasikan dari database sumber ke database tujuan. Skema tersebut mencakup kunci asing.

      • Jika Anda tidak memilih Incremental Data Migration, jangan menulis data baru ke instans sumber selama migrasi data untuk memastikan konsistensi data.

      Processing Mode of Conflicting Tables

      • Precheck and Report Errors: memeriksa apakah database tujuan berisi tabel yang menggunakan nama yang sama dengan tabel di database sumber. Jika database sumber dan tujuan tidak berisi tabel dengan nama tabel identik, precheck lolos. Jika tidak, kesalahan akan dikembalikan selama precheck dan tugas migrasi data tidak dapat dimulai.

        Catatan

        Jika database sumber dan tujuan berisi tabel dengan nama identik dan tabel di database tujuan tidak dapat dihapus atau diganti namanya, Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama tabel yang dimigrasikan ke database tujuan. Untuk informasi selengkapnya, lihat Pemetaan nama objek.

      • Ignore Errors and Proceed: melewati precheck untuk nama tabel identik di database sumber dan tujuan.

        Peringatan

        Jika Anda memilih Ignore Errors and Proceed, inkonsistensi data dapat terjadi dan bisnis Anda mungkin menghadapi risiko potensial berikut:

        • Jika database sumber dan tujuan memiliki skema yang sama, dan catatan data memiliki kunci primer yang sama dengan catatan data yang ada di database tujuan, skenario berikut dapat terjadi:

          • Selama migrasi data penuh, DTS tidak memigrasikan catatan data ke database tujuan. Catatan data yang ada di database tujuan dipertahankan.

          • Selama migrasi data inkremental, DTS memigrasikan catatan data ke database tujuan. Catatan data yang ada di database tujuan ditimpa.

        • Jika database sumber dan tujuan memiliki skema yang berbeda, hanya kolom tertentu yang dimigrasikan atau tugas migrasi data gagal. Lakukan dengan hati-hati.

      Capitalization of Object Names in Destination Instance

      Huruf kapital untuk nama database, nama tabel, dan nama kolom di instans tujuan. Secara default, DTS default policy dipilih. Anda dapat memilih opsi lain untuk memastikan huruf kapital nama objek konsisten dengan database sumber atau tujuan. Untuk informasi selengkapnya, lihat Tentukan huruf kapital nama objek di instans tujuan.

      Source Objects

      Pilih satu atau beberapa objek dari bagian Source Objects. Klik ikon 向右小箭头 untuk menambahkan objek ke bagian Selected Objects.

      Catatan
      • Anda dapat memilih objek untuk dimigrasikan pada tingkat skema atau tabel. Jika Anda memilih tabel sebagai objek migrasi, objek lain seperti view, trigger, dan prosedur tersimpan tidak dimigrasikan ke database tujuan.

      • Jika tabel yang akan dimigrasikan berisi field SERIAL, dan Anda memilih Schema Migration untuk Migration Types, kami menyarankan agar Anda juga memilih Sequence atau memigrasikan seluruh skema.

      Selected Objects

      Catatan
      • Jika Anda menggunakan fitur pemetaan nama objek, objek lain yang bergantung pada objek yang diganti namanya mungkin gagal dimigrasikan.

      • Untuk menetapkan kondisi WHERE untuk memfilter data, klik kanan tabel yang akan dimigrasikan di kotak Selected Objects dan tetapkan kondisi filter di kotak dialog yang muncul. Untuk informasi selengkapnya, lihat Tetapkan kondisi filter.

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

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

      Konfigurasi

      Deskripsi

      Dedicated Cluster for Task Scheduling

      Secara default, DTS menjadwalkan tugas migrasi data ke kluster bersama jika Anda tidak menentukan kluster khusus. Jika Anda ingin meningkatkan stabilitas tugas migrasi data, beli kluster khusus. Untuk informasi selengkapnya, lihat Apa itu kluster khusus DTS.

      Retry Time for Failed Connections

      Rentang waktu percobaan ulang untuk koneksi yang gagal. Jika database sumber atau tujuan gagal terhubung setelah tugas migrasi data dimulai, DTS segera mencoba menghubungkan kembali dalam rentang waktu percobaan ulang. Nilai yang valid: 10 hingga 1.440. Satuan: menit. Nilai default: 720. Kami menyarankan agar Anda mengatur parameter ini ke nilai lebih dari 30. Jika DTS terhubung kembali ke database sumber dan tujuan dalam rentang waktu percobaan ulang yang ditentukan, DTS melanjutkan tugas migrasi data. Jika tidak, tugas migrasi data gagal.

      Catatan
      • Jika Anda menentukan rentang waktu percobaan ulang yang berbeda untuk beberapa tugas migrasi data yang berbagi database sumber atau tujuan yang sama, nilai yang ditentukan terakhir akan berlaku.

      • Saat DTS mencoba menghubungkan kembali, Anda dikenai biaya untuk instans DTS. Kami menyarankan agar Anda menentukan rentang waktu percobaan ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instans DTS sesegera mungkin setelah database sumber dan instans tujuan dilepas.

      Retry Time for Other Issues

      Rentang waktu percobaan ulang untuk masalah lain. Misalnya, jika operasi DDL atau DML gagal dilakukan setelah tugas migrasi data dimulai, DTS segera mencoba mengulang operasi tersebut dalam rentang waktu percobaan ulang. Nilai yang valid: 1 hingga 1.440. Satuan: menit. Nilai default: 10. Kami menyarankan agar Anda mengatur parameter ini ke nilai lebih dari 10. Jika operasi yang gagal berhasil dilakukan dalam rentang waktu percobaan ulang yang ditentukan, DTS melanjutkan tugas migrasi data. Jika tidak, tugas migrasi data gagal.

      Penting

      Nilai parameter Retry Time for Other Issues harus lebih kecil dari nilai parameter Retry Time for Failed Connections.

      Enable Throttling for Full Data Migration

      Menentukan apakah akan mengaktifkan pembatasan kecepatan untuk migrasi data penuh. Selama migrasi data penuh, DTS menggunakan sumber daya baca dan tulis database sumber dan tujuan. Hal ini dapat meningkatkan beban server database. Anda dapat mengaktifkan pembatasan kecepatan untuk migrasi data penuh berdasarkan kebutuhan bisnis Anda. Untuk mengonfigurasi pembatasan kecepatan, Anda harus mengonfigurasi parameter Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Hal ini mengurangi beban server database tujuan.

      Catatan

      Anda dapat mengonfigurasi parameter ini hanya jika Anda memilih Full Data Migration untuk parameter Migration Types.

      Enable Throttling for Incremental Data Migration

      Menentukan apakah akan mengaktifkan pembatasan kecepatan untuk migrasi data inkremental. Untuk mengonfigurasi pembatasan kecepatan, Anda harus mengonfigurasi parameter RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Hal ini mengurangi beban server database tujuan.

      Catatan

      Anda dapat mengonfigurasi parameter ini hanya jika Anda memilih Incremental Data Migration untuk parameter Migration Types.

      Environment Tag

      Anda dapat memilih tag lingkungan untuk mengidentifikasi instans sesuai kebutuhan. Untuk topik ini, pemilihan tidak diperlukan.

      Configure ETL

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

      Monitoring and Alerting

      Menentukan apakah akan mengonfigurasi peringatan untuk tugas migrasi data. Jika tugas gagal atau latensi migrasi melebihi ambang batas yang ditentukan, kontak peringatan akan menerima notifikasi. Nilai yang valid:

      • No: tidak mengonfigurasi peringatan.

      • Yes: mengonfigurasi Peringatan. Dalam hal ini, Anda juga harus menetapkan ambang batas peringatan dan pengaturan Pemberitahuan peringatan. Untuk informasi selengkapnya, lihat bagian Mengonfigurasi Pemantauan Peringatan saat Membuat Tugas DTS dalam topik Mengonfigurasi Pemantauan Peringatan.

    3. Klik Next Step: Data Verification untuk mengonfigurasi tugas verifikasi data.

      Untuk informasi selengkapnya tentang cara menggunakan fitur verifikasi data, lihat Konfigurasikan tugas verifikasi data.

  6. Simpan pengaturan tugas dan jalankan pemeriksaan awal.

    • Untuk melihat parameter yang harus ditentukan saat memanggil operasi API terkait untuk mengonfigurasi tugas DTS, arahkan pointer ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.

    • Jika Anda tidak perlu melihat atau telah melihat parameter, klik Next: Save Task Settings and Precheck di bagian bawah halaman.

    Catatan
    • Sebelum Anda dapat memulai tugas migrasi data, DTS melakukan pemeriksaan awal. Anda hanya dapat memulai tugas migrasi data setelah tugas lolos pemeriksaan awal.

    • Jika tugas gagal lolos pemeriksaan awal, klik View Details di sebelah setiap item yang gagal. Setelah menganalisis penyebab berdasarkan hasil pemeriksaan, atasi masalah tersebut. Kemudian, jalankan pemeriksaan awal lagi.

    • Jika peringatan dipicu untuk suatu item selama pemeriksaan awal:

      • Jika item peringatan tidak dapat diabaikan, klik View Details di sebelah item yang gagal dan atasi masalah tersebut. Kemudian, jalankan pemeriksaan awal lagi.

      • Jika item peringatan dapat diabaikan, klik Confirm Alert Details. Di kotak dialog View Details, klik Ignore. Di pesan yang muncul, klik OK. Kemudian, klik Precheck Again untuk menjalankan pemeriksaan awal lagi. Jika Anda mengabaikan item peringatan, inkonsistensi data dapat terjadi, dan bisnis Anda mungkin menghadapi risiko potensial.

  7. Beli instance.

    1. Tunggu hingga Success Rate menjadi 100%. Lalu, klik Next: Purchase Instance.

    2. Di halaman Purchase Instance, konfigurasikan parameter Instance Class untuk instans migrasi data. Tabel berikut menjelaskan parameter-parameter tersebut.

      Bagian

      Parameter

      Deskripsi

      New Instance Class

      Resource Group

      Kelompok sumber daya tempat instans migrasi data berada. Nilai default: default resource group. Untuk informasi selengkapnya, lihat Apa itu Resource Management?

      Instance Class

      DTS menyediakan kelas instans yang berbeda dalam kecepatan migrasi. Anda dapat memilih kelas instans berdasarkan skenario bisnis Anda. Untuk informasi selengkapnya, lihat Kelas instans untuk instans migrasi data.

    3. Baca dan setujui Data Transmission Service (Pay-as-you-go) Service Terms dengan memilih kotak centang.

    4. Klik Buy and Start. Pada pesan yang muncul, klik OK.

      Anda dapat melihat progres tugas di halaman Data Migration.

      Catatan
      • Jika tugas migrasi data tidak dapat digunakan untuk memigrasikan data inkremental, tugas tersebut akan berhenti secara otomatis. Completed ditampilkan di bagian Status .

      • Jika tugas migrasi data dapat digunakan untuk memigrasikan data inkremental, tugas tersebut tidak berhenti secara otomatis. Tugas migrasi data inkremental tidak pernah berhenti atau selesai. Running ditampilkan di bagian Status.