全部产品
Search
文档中心

Data Transmission Service:Migrasi data inkremental dari database PostgreSQL yang dikelola sendiri (versi 10.1 hingga 13.0) ke instance ApsaraDB RDS for PostgreSQL

更新时间:Jul 06, 2025

Anda dapat menggunakan Data Transmission Service (DTS) untuk memigrasikan data inkremental antar database PostgreSQL. Database sumber atau tujuan dapat berupa database PostgreSQL yang dikelola sendiri atau instance ApsaraDB RDS for PostgreSQL. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental. Saat mengonfigurasi tugas migrasi data, Anda dapat memilih semua jenis migrasi yang didukung untuk memastikan kontinuitas layanan. Topik ini menjelaskan cara memigrasikan data inkremental dari database PostgreSQL yang dikelola sendiri ke instance ApsaraDB RDS for PostgreSQL.

Prasyarat

  • Database PostgreSQL yang dikelola sendiri harus berada pada versi 10.1 hingga 13.0.

  • Instance ApsaraDB RDS for PostgreSQL telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance ApsaraDB RDS for PostgreSQL.

    Catatan

    Untuk memastikan kompatibilitas, pastikan bahwa versi database instance ApsaraDB RDS for PostgreSQL sama dengan versi database PostgreSQL yang dikelola sendiri.

  • Ruang penyimpanan yang tersedia di instance ApsaraDB RDS for PostgreSQL harus lebih besar daripada total ukuran data di database PostgreSQL yang dikelola sendiri.

Catatan penggunaan

  • DTS menggunakan sumber daya baca dan tulis dari database sumber dan tujuan selama migrasi data penuh. Hal ini dapat meningkatkan beban server database. Jika performa database tidak baik, spesifikasinya rendah, atau volume datanya besar, layanan database mungkin tidak tersedia. Sebagai contoh, DTS menggunakan sejumlah besar sumber daya baca dan tulis dalam kasus berikut: banyak kueri SQL lambat dilakukan pada database sumber, tabel tidak memiliki kunci utama, atau terjadi deadlock di database tujuan. Sebelum memigrasikan data, evaluasi dampak migrasi data terhadap performa database sumber dan tujuan. Kami menyarankan Anda memigrasikan data selama jam non-puncak. Sebagai contoh, Anda dapat memigrasikan data ketika utilisasi CPU database sumber dan tujuan kurang dari 30%.

  • Tabel yang akan dimigrasikan di database sumber harus memiliki batasan PRIMARY KEY atau UNIQUE dan semua bidang harus unik. Jika tidak, database tujuan mungkin berisi catatan data duplikat.

  • Jika Anda memilih skema sebagai objek yang akan dimigrasikan dan membuat tabel di skema atau menjalankan pernyataan RENAME untuk mengganti nama tabel selama migrasi data inkremental, Anda harus menjalankan pernyataan ALTER TABLE schema.table REPLICA IDENTITY FULL; sebelum menulis data ke tabel.

    Catatan

    Ganti variabel schema dan table dalam pernyataan di atas dengan nama skema dan nama tabel Anda.

  • Untuk memastikan bahwa latensi migrasi data inkremental akurat, DTS menambahkan tabel denyut jantung ke database sumber. Nama tabel denyut jantung adalah dts_postgres_heartbeat.

  • Selama migrasi data inkremental, DTS membuat slot replikasi untuk database sumber. Slot replikasi diawali dengan dts_sync_. DTS secara otomatis membersihkan slot replikasi historis setiap 90 menit untuk mengurangi penggunaan penyimpanan.

    Catatan

    Jika tugas migrasi data dilepaskan atau gagal, DTS secara otomatis membersihkan slot replikasi. Jika pergantian primer/sekunder dilakukan pada database PostgreSQL yang dikelola sendiri di sumber, Anda harus masuk ke database sekunder untuk membersihkan slot replikasi.

    Replication slot information

  • Untuk memastikan bahwa tugas migrasi data berjalan sesuai harapan, Anda hanya dapat melakukan pergantian primer/sekunder pada instance ApsaraDB RDS for PostgreSQL 11. Dalam hal ini, Anda harus mengatur parameter rds_failover_slot_mode menjadi sync. Untuk informasi lebih lanjut, lihat Logical Replication Slot Failover.

    Peringatan

    Jika Anda melakukan pergantian primer/sekunder pada database PostgreSQL yang dikelola sendiri atau instance ApsaraDB RDS for PostgreSQL dengan versi selain 11, tugas migrasi data akan berhenti.

  • Jika tugas migrasi data gagal, DTS secara otomatis melanjutkan tugas tersebut. Sebelum Anda memindahkan beban kerja Anda ke instance tujuan, hentikan atau lepaskan tugas migrasi data. Jika tidak, data di database sumber akan menimpa data di instance tujuan setelah tugas dilanjutkan.
  • Jika database sumber memiliki transaksi jangka panjang dan tugas mencakup migrasi data inkremental, log write-ahead logging (WAL) yang dihasilkan sebelum transaksi jangka panjang dikirimkan mungkin tidak dibersihkan dan oleh karena itu menumpuk, mengakibatkan ruang penyimpanan di database sumber tidak mencukupi.

Batasan

  • Tugas migrasi data dapat memigrasikan data dari satu database saja. Untuk memigrasikan data dari beberapa database, Anda harus membuat tugas migrasi data untuk setiap database.

  • Nama database sumber tidak boleh mengandung tanda hubung (-). Sebagai contoh, dts-testdata tidak diperbolehkan.

  • Jika pergantian primer/sekunder dilakukan pada database sumber selama migrasi data inkremental, transmisi tidak dapat dilanjutkan.

  • Data mungkin tidak konsisten antara node primer dan sekunder database sumber karena latensi sinkronisasi. Oleh karena itu, Anda harus menggunakan node primer sebagai sumber data saat memigrasikan data.

    Catatan

    Kami menyarankan Anda memigrasikan data selama jam non-puncak. Anda dapat memodifikasi laju transfer migrasi data penuh berdasarkan performa baca dan tulis database sumber. Untuk informasi lebih lanjut, lihat Modifikasi Laju Transfer Migrasi Data Penuh.

  • Migrasi data inkremental tidak mendukung data tipe BIT.

  • Selama migrasi data inkremental, DTS hanya memigrasikan operasi DML termasuk INSERT, DELETE, dan UPDATE.

    Catatan

    Hanya tugas migrasi data yang dibuat setelah 1 Oktober 2020 yang dapat memigrasikan operasi DDL. Anda harus membuat pemicu dan fungsi di database sumber untuk mendapatkan informasi DDL sebelum mengonfigurasi tugas. Untuk informasi lebih lanjut, lihat Gunakan Pemicu dan Fungsi untuk Mengimplementasikan Migrasi DDL Inkremental untuk Database PostgreSQL.

  • Setelah beban kerja Anda dipindahkan ke database tujuan, urutan yang baru ditulis tidak bertambah dari nilai maksimum urutan di database sumber. Oleh karena itu, Anda harus menanyakan nilai maksimum urutan di database sumber sebelum memindahkan beban kerja Anda ke database tujuan. Kemudian, Anda harus menentukan nilai maksimum yang diquery sebagai nilai awal urutan di database tujuan.

  • DTS tidak memeriksa validitas metadata seperti urutan. Anda harus secara manual memeriksa validitas metadata.

Aturan penagihan

Jenis migrasi

Biaya konfigurasi tugas

Biaya lalu lintas internet

Migrasi skema dan migrasi data penuh

Gratis.

Dikenakan biaya hanya ketika data dimigrasikan dari Alibaba Cloud melalui Internet. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.

Migrasi data inkremental

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

Izin yang diperlukan untuk akun database

DatabaseMigrasi skemaMigrasi data penuhMigrasi data inkremental
Database PostgreSQL yang dikelola sendiriIzin USAGE pada pg_catalogIzin SELECT pada objek yang akan dimigrasikansuperuser
Instance ApsaraDB RDS for PostgreSQLIzin CREATE dan USAGE pada objek yang akan dimigrasikanIzin pemilik skemaIzin pemilik skema

Untuk informasi lebih lanjut tentang cara membuat akun database dan memberikan izin kepada akun database, lihat topik-topik berikut:

Proses migrasi data

Tabel berikut menjelaskan bagaimana DTS memigrasikan skema dan data dari database PostgreSQL sumber. Proses ini mencegah kegagalan migrasi data yang disebabkan oleh dependensi antar objek.

Catatan

Untuk informasi lebih lanjut tentang migrasi skema, migrasi data penuh, dan migrasi data inkremental, lihat Istilah.

Langkah

Deskripsi

1. Migrasi Skema

DTS memigrasikan skema tabel, tampilan, urutan, fungsi, tipe yang ditentukan pengguna, aturan, domain, operasi, dan agregat ke database tujuan.

Catatan

DTS tidak memigrasikan plugin. Selain itu, DTS tidak memigrasikan fungsi yang ditulis dalam bahasa pemrograman C.

2. Migrasi Data Penuh

DTS memigrasikan semua data historis objek ke database tujuan.

3. Migrasi Skema

DTS memigrasikan skema pemicu dan kunci asing ke database tujuan.

4. Migrasi Data Inkremental

DTS memigrasikan data inkremental objek ke database tujuan.

Migrasi data inkremental memastikan kontinuitas layanan aplikasi yang dikelola sendiri.

Catatan
  • Selama migrasi data inkremental, DTS hanya memigrasikan operasi DML termasuk INSERT, DELETE, dan UPDATE.

  • Migrasi data inkremental tidak mendukung data tipe BIT.

Persiapan

  1. Masuk ke server tempat database PostgreSQL yang dikelola sendiri berada.

  2. Atur nilai parameter wal_level dalam file konfigurasi postgresql.conf menjadi logical.

    Set the wal_level parameter

    Catatan

    Lewati langkah ini jika Anda tidak perlu melakukan migrasi data inkremental.

  3. Tambahkan blok CIDR server DTS ke file konfigurasi pg_hba.conf database PostgreSQL yang dikelola sendiri. Tambahkan hanya blok CIDR server DTS yang berada di wilayah yang sama dengan database tujuan. Untuk informasi lebih lanjut, lihat Tambahkan Blok CIDR Server DTS.

    Catatan

    Untuk informasi lebih lanjut, lihat File pg_hba.conf. Lewati langkah ini jika Anda telah mengatur alamat IP di file pg_hba.conf menjadi 0.0.0.0/0.

  4. Opsional: Buat pemicu dan fungsi di database sumber untuk mendapatkan informasi DDL. Untuk informasi lebih lanjut, lihat Gunakan Pemicu dan Fungsi untuk Mengimplementasikan Migrasi DDL Inkremental untuk Database PostgreSQL.

    Catatan

    Lewati langkah ini jika Anda tidak perlu memigrasikan operasi DDL.

Prosedur

  1. Masuk ke Konsol DTS.

    Catatan

    Jika Anda dialihkan ke Konsol Manajemen Data (DMS), Anda dapat mengklik ikon old di image untuk kembali ke versi sebelumnya Konsol DTS.

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

  3. Di bagian atas halaman Migration Tasks, pilih wilayah tempat kluster tujuan berada.

  4. Di pojok kanan atas halaman, klik Create Migration Task.

  5. Konfigurasikan database sumber dan tujuan.

    Configure the source and destination databases

    Bagian

    Parameter

    Deskripsi

    N/A

    Nama Tugas

    Nama tugas yang dihasilkan DTS secara otomatis. Kami menyarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menentukan nama tugas yang unik.

    Database Sumber

    Tipe Instance

    Metode akses database sumber. Dalam contoh ini, User-Created Database with Public IP Address dipilih.

    Catatan

    Jika database mandiri sumber adalah tipe lain, Anda harus menyiapkan lingkungan yang diperlukan untuk database tersebut. Untuk informasi lebih lanjut, lihat Ikhtisar Persiapan.

    Wilayah Instance

    Jika Anda memilih User-Created Database with Public IP Address sebagai tipe instance, Anda tidak perlu mengatur parameter Instance Region.

    Tipe Database

    Tipe database sumber. Pilih PostgreSQL.

    Nama Host atau Alamat IP

    Titik akhir yang digunakan untuk terhubung ke database PostgreSQL yang dikelola sendiri. Dalam contoh ini, masukkan alamat IP publik.

    Nomor Port

    Nomor port layanan database PostgreSQL yang dikelola sendiri. Port tersebut harus dapat diakses melalui Internet.

    Nama Database

    Nama database PostgreSQL yang dikelola sendiri.

    Akun Database

    Akun yang digunakan untuk masuk ke database PostgreSQL yang dikelola sendiri. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat Izin yang diperlukan untuk akun database.

    Kata Sandi Database

    Kata sandi akun database.

    Catatan

    Setelah Anda menentukan informasi tentang database sumber, Anda dapat mengklik Test Connectivity di sebelah Database Password untuk memeriksa apakah informasi tersebut valid. Jika informasi tersebut valid, pesan Passed akan muncul. Jika pesan Failed muncul, klik Check di sebelah Failed. Kemudian, ubah informasi berdasarkan hasil pemeriksaan.

    Database Tujuan

    Tipe Instance

    Tipe database tujuan. Pilih RDS Instance.

    Wilayah Instance

    Wilayah tempat instance ApsaraDB RDS for PostgreSQL tujuan berada.

    ID Instance RDS

    ID instance ApsaraDB RDS for PostgreSQL tujuan.

    Nama Database

    Nama database tujuan di instance ApsaraDB RDS for PostgreSQL. Nama tersebut dapat berbeda dari nama database sumber.

    Catatan

    Database tujuan harus ada di instance ApsaraDB RDS for PostgreSQL. Jika database tujuan tidak ada, buatlah database. Untuk informasi lebih lanjut, lihat Buat database.

    Akun Database

    Akun database instance ApsaraDB RDS for PostgreSQL tujuan. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat Izin yang diperlukan untuk akun database.

    Kata Sandi Database

    Kata sandi akun database.

    Catatan

    Setelah Anda menentukan informasi tentang instance RDS, Anda dapat mengklik Test Connectivity di sebelah Database Password untuk memeriksa apakah informasi tersebut valid. Jika informasi tersebut valid, pesan Passed akan muncul. Jika pesan Failed muncul, klik Check di sebelah Failed. Kemudian, ubah informasi berdasarkan hasil pemeriksaan.

  6. Di pojok kanan bawah halaman, klik Set Whitelist and Next.

    Peringatan

    Jika blok CIDR server DTS secara otomatis atau manual ditambahkan ke daftar putih database atau instance, atau ke aturan grup keamanan ECS, risiko keamanan mungkin timbul. Oleh karena itu, sebelum Anda menggunakan DTS untuk memigrasikan data, Anda harus memahami dan mengakui potensi risiko serta mengambil tindakan pencegahan, termasuk tetapi tidak terbatas pada langkah-langkah berikut: tingkatkan keamanan nama pengguna dan kata sandi Anda, batasi port yang diekspos, autentikasi panggilan API, periksa daftar putih atau aturan grup keamanan ECS secara berkala dan larang blok CIDR yang tidak sah, atau hubungkan database ke DTS dengan menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.

  7. Pilih jenis migrasi dan objek yang ingin Anda migrasikan.

    Select the migration types and the objects that you want to migrate

    Pengaturan

    Deskripsi

    Pilih jenis migrasi

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

    • Untuk memastikan kontinuitas layanan selama migrasi data, pilih Schema Migration, Full Data Migration, dan Incremental Data Migration. Dalam contoh ini, pilih ketiga jenis migrasi tersebut.

    Catatan

    Jika Incremental Data Migration tidak dipilih, jangan tulis data ke database sumber selama migrasi data penuh. Hal ini memastikan konsistensi data antara database sumber dan tujuan.

    Pilih objek yang ingin Anda migrasikan

    Pilih satu atau beberapa objek dari bagian Source Objects dan klik ikon Rightwards arrow untuk memindahkan objek ke bagian Selected Objects.

    Catatan
    • Anda dapat memilih kolom, tabel, atau skema sebagai objek yang akan dimigrasikan.

    • Secara default, nama objek tetap sama seperti di database PostgreSQL yang dikelola sendiri setelah objek dimigrasikan ke instance RDS. Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama objek yang telah dimigrasikan ke instance RDS tujuan. Untuk informasi lebih lanjut, lihat Pemetaan Nama Objek.

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

    Tentukan apakah akan mengganti nama objek

    Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama objek yang dimigrasikan ke database tujuan. Untuk informasi lebih lanjut, lihat Pemetaan Nama Objek.

    Tentukan rentang waktu percobaan ulang untuk koneksi gagal ke database sumber atau tujuan

    Secara default, jika DTS gagal terhubung ke database sumber dan tujuan, DTS mencoba lagi dalam 12 jam berikutnya. Anda dapat menentukan rentang waktu percobaan ulang berdasarkan kebutuhan bisnis Anda. Jika DTS tersambung kembali ke database sumber dan tujuan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas migrasi data. Jika tidak, tugas migrasi data gagal.

    Catatan

    Dalam rentang waktu DTS mencoba menyambung kembali ke database sumber dan tujuan, Anda akan dikenakan biaya untuk instance DTS. Kami menyarankan Anda menentukan rentang waktu percobaan ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instance DTS sesegera mungkin setelah database sumber dan tujuan dilepaskan.

  8. Di pojok kanan bawah halaman, klik Precheck.

    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, Anda dapat mengklik ikon Info icon di sebelah setiap item yang gagal untuk melihat detailnya.

      • Anda dapat menyelesaikan masalah berdasarkan penyebabnya dan menjalankan pemeriksaan awal lagi.

      • Jika Anda tidak perlu menyelesaikan masalah, Anda dapat mengabaikan item yang gagal dan menjalankan pemeriksaan awal lagi.

  9. Setelah tugas lulus pemeriksaan awal, klik Next.

  10. Di kotak dialog Confirm Settings, tentukan parameter Channel Specification dan pilih Data Transmission Service (Pay-As-You-Go) Service Terms.

  11. Klik Buy and Start untuk memulai tugas migrasi data.

Hentikan tugas migrasi data

Peringatan

Kami menyarankan Anda menyiapkan solusi rollback untuk memigrasikan data inkremental dari database tujuan ke database sumber secara real-time. Ini memungkinkan Anda meminimalkan dampak negatif dari pemindahan beban kerja ke database tujuan. Untuk informasi lebih lanjut, lihat Pindahkan Beban Kerja ke Database Tujuan. Jika Anda tidak perlu memindahkan beban kerja, Anda dapat melakukan langkah-langkah berikut untuk menghentikan tugas migrasi data.

  • Migrasi Data Penuh

    Jangan hentikan tugas secara manual selama migrasi data penuh. Jika tidak, sistem mungkin gagal memigrasikan semua data. Tunggu hingga tugas migrasi berakhir secara otomatis.

  • Migrasi Data Inkremental

    Tugas tidak berakhir secara otomatis selama migrasi data inkremental. Anda harus menghentikan tugas migrasi secara manual.

    1. Tunggu hingga bilah kemajuan tugas menunjukkan Incremental Data Migration dan The migration task is not delayed. Kemudian, hentikan penulisan data ke database sumber selama beberapa menit. Dalam beberapa kasus, bilah kemajuan menunjukkan waktu penundaan incremental data migration.
    2. Setelah status incremental data migration berubah menjadi The migration task is not delayed, hentikan tugas migrasi secara manual.Stop a task during incremental migration