全部产品
Search
文档中心

Data Transmission Service:Migrasi data dari database PostgreSQL yang dikelola sendiri ke instans RDS for PostgreSQL

更新时间:Jan 07, 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. Anda dapat menggabungkan ketiga jenis migrasi ini untuk memindahkan database PostgreSQL yang dikelola sendiri ke cloud dengan gangguan layanan minimal.

Prasyarat

  • Buat instans tujuan RDS for PostgreSQL dengan ruang 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 primary key atau Kendala UNIK, dan field tersebut harus unik. Jika tidak, duplikasi data dapat terjadi di database tujuan.

    Catatan

    Jika tabel tujuan tidak dibuat oleh DTS (artinya, Anda tidak memilih Schema Migration untuk Migration Types), Anda harus memastikan bahwa tabel tersebut memiliki primary key 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, pisahkan tabel menjadi beberapa tugas migrasi atau konfigurasikan satu 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 juga mendukung migrasi primary key, foreign key, serta kendala UNIQUE dan CHECK.

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

    • Harus diaktifkan. Atur parameter wal_level ke nilai 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 dipersyaratkan 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 potong 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 masing-masing 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 parameter Migration Types, kami menyarankan agar Anda juga memilih Sequence atau melakukan migrasi skema penuh. Jika tidak, instans migrasi dapat gagal.

  • Jika instans DTS menjalankan 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. Ini berlaku untuk dua skenario berikut dan memastikan konsistensi data. Saat menjalankan perintah ini, kami menyarankan agar Anda tidak melakukan operasi penguncian tabel. Jika tidak, tabel dapat terkunci. Jika Anda melewati pemeriksaan terkait dalam Pemeriksaan Awal, 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 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 menghapus 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 selama 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 tersebut secara manual.

  • Untuk tugas migrasi penuh atau inkremental, jika tabel yang akan dimigrasikan di database sumber berisi foreign key, trigger, atau event trigger, DTS secara sementara mengatur parameter `session_replication_role` ke nilai `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 terjadi operasi cascade update atau delete di database sumber, inkonsistensi data dapat terjadi. Setelah tugas migrasi DTS dilepas, Anda dapat mengembalikan parameter `session_replication_role` ke nilai `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 suatu instans gagal, tim dukungan 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 diubah. Parameter di database tidak diubah. Parameter yang mungkin diubah termasuk tetapi tidak terbatas pada yang dijelaskan dalam Ubah parameter instans.

  • Saat Anda memigrasikan tabel partisi, Anda harus menyertakan baik tabel induk maupun partisi anaknya sebagai objek sinkronisasi. Jika tidak, inkonsistensi 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 di partisi anak mungkin tidak disinkronkan, sehingga menyebabkan inkonsistensi data antara sumber dan tujuan.

Kasus khusus

  • Jika 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 memberikan izin Owner kepada akun ini untuk objek yang akan dimigrasikan (misalnya, dengan menjalankan perintah GRANT <owner_of_objects_to_migrate> TO <source_db_account_for_task> agar akun ini dapat 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 data dimigrasikan secara lancar tanpa mengganggu layanan aplikasi yang dikelola sendiri selama migrasi data.

Objek yang didukung untuk 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 yang 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 tersebut 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 menjalankan 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. Ubah 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 mengubah 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 mengubah 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 tersebut 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 Migrasi Data 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 di 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 di DTS, Anda harus mengonfigurasi informasi database berikut.

      Database Type

      Pilih PostgreSQL.

      Access Method

      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 menjalankan 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 di 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 di DTS, Anda harus mengonfigurasi informasi database berikut.

      Database Type

      Pilih PostgreSQL.

      Access Method

      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, 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 foreign key.

        • 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, pemeriksaan awal berhasil. Jika tidak, kesalahan akan dikembalikan selama pemeriksaan awal 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 pemeriksaan awal 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 primary key 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 stored procedure 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 atur kondisi filter di kotak dialog yang muncul. Untuk informasi selengkapnya, lihat Atur 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 menggunakan 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, 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 mengonfigurasi ambang batas peringatan dan alert notification settings. Untuk informasi selengkapnya, lihat bagian Konfigurasikan monitoring dan alerting saat membuat tugas DTS dalam topik Konfigurasikan monitoring dan alerting.

      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 perlu 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 tersebut, 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 tersebut lulus pemeriksaan awal.

      • Jika tugas gagal lulus pemeriksaan awal, klik View Details di sebelah setiap item yang gagal. Setelah menganalisis penyebab berdasarkan hasil pemeriksaan, perbaiki 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 perbaiki 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 dengan kecepatan migrasi yang berbeda. 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. Di 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.