Topik ini menjelaskan cara memigrasikan data penuh dari database PostgreSQL yang dikelola sendiri ke instance ApsaraDB RDS for PostgreSQL menggunakan Data Transmission Service (DTS). DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental. Untuk migrasi data penuh, Anda dapat memilih migrasi skema dan migrasi data penuh saat mengonfigurasi tugas.
Informasi latar belakang
Topik ini menggunakan User-Created Database with Public IP Address sebagai contoh untuk menjelaskan cara mengonfigurasi tugas migrasi data penuh. Untuk memastikan konsistensi data, kami menyarankan agar Anda tidak menulis data ke database PostgreSQL yang dikelola sendiri selama migrasi data penuh. Untuk informasi tentang cara memigrasikan data dengan downtime minimal, lihat Migrasi Data Inkremental dari Database PostgreSQL yang Dikelola Sendiri (versi 10.1 hingga 13.0) ke Instance ApsaraDB RDS for PostgreSQL dan Migrasi Data Inkremental dari Database PostgreSQL yang Dikelola Sendiri (versi 10.0 atau lebih lama) ke Instance ApsaraDB RDS for PostgreSQL.
Untuk memigrasikan data penuh dari database PostgreSQL yang dikelola sendiri ke instance ApsaraDB RDS for PostgreSQL, Anda juga dapat menggunakan file cadangan logis untuk memulihkan data. Untuk informasi lebih lanjut, lihat Gunakan pg_restore untuk Memulihkan Data dari File Cadangan Logis.
Prasyarat
Versi database PostgreSQL yang dikelola sendiri adalah 9.2, 9.3, 9.4, 9.5, 9.6, 10.x, 11, 12, atau 13.
Ruang penyimpanan yang tersedia di instance ApsaraDB RDS for PostgreSQL lebih besar daripada total ukuran data di database PostgreSQL yang dikelola sendiri.
Port layanan database PostgreSQL yang dikelola sendiri dapat diakses melalui Internet.
Batasan
DTS menggunakan sumber daya baca dan tulis dari database sumber dan tujuan selama migrasi data penuh. Ini dapat meningkatkan beban server database. Jika performa database buruk, spesifikasi rendah, atau volume data besar, layanan database mungkin menjadi tidak tersedia. Misalnya, 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, misalnya ketika utilisasi CPU database sumber dan tujuan kurang dari 30%.
Nama database sumber tidak boleh mengandung tanda hubung (-). Contohnya, dts-testdata tidak diperbolehkan.
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.
Tugas migrasi data hanya dapat memigrasikan data dari satu database saja. Untuk memigrasikan data dari beberapa database, Anda harus membuat tugas migrasi data untuk setiap database.
Untuk memastikan bahwa tugas migrasi data berjalan sesuai harapan, Anda hanya dapat melakukan switchover primer/sekunder pada instance ApsaraDB RDS for PostgreSQL 11. Dalam hal ini, Anda harus mengatur parameter
rds_failover_slot_modekesync. Untuk informasi lebih lanjut, lihat Failover Slot Replikasi Logis.PeringatanJika Anda melakukan switchover primer/sekunder pada database PostgreSQL yang dikelola sendiri atau instance ApsaraDB RDS for PostgreSQL versi lain selain 11, tugas migrasi data akan berhenti.
Jika tugas migrasi data gagal, DTS secara otomatis melanjutkan tugas tersebut. Sebelum 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.
Jenis migrasi
Migrasi Skema
DTS memigrasikan skema objek ke database tujuan. DTS mendukung migrasi skema untuk jenis objek berikut: tabel, pemicu, tampilan, urutan, fungsi, tipe yang ditentukan pengguna, aturan, domain, operasi, dan agregat.
Migrasi Data Penuh
DTS memigrasikan data historis objek dari database PostgreSQL yang dikelola sendiri ke database tujuan di instance ApsaraDB RDS for PostgreSQL.
Penagihan
Jenis migrasi | Biaya konfigurasi tugas | Biaya lalu lintas internet |
Migrasi data penuh | Gratis. | Dikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. |
Izin yang diperlukan untuk akun database
Database | Migrasi skema | Migrasi data penuh |
Database PostgreSQL yang dikelola sendiri | Izin USAGE pada pg_catalog | Izin SELECT pada objek yang akan dimigrasikan |
Instance ApsaraDB RDS for PostgreSQL | Izin CREATE dan USAGE pada objek yang akan dimigrasikan | Izin pemilik skema |
Untuk informasi lebih lanjut tentang cara membuat akun dan memberikan izin kepada akun, lihat topik-topik berikut:
Database PostgreSQL yang Dikelola Sendiri: CREATE USER dan GRANT
Instance ApsaraDB RDS for PostgreSQL:Buat Akun.
Proses migrasi data penuh
Untuk mencegah kegagalan migrasi data yang disebabkan oleh dependensi antar objek, DTS memigrasikan skema dan data database PostgreSQL sumber dalam urutan berikut:
Migrasikan skema tabel, tampilan, urutan, fungsi, tipe yang ditentukan pengguna, aturan, domain, operasi, dan agregat.
CatatanFungsi yang ditulis dalam bahasa pemrograman C tidak dapat dimigrasikan.
Migrasikan data penuh.
Migrasikan skema pemicu dan kunci asing.
Persiapan
Buat database dan skema di instance ApsaraDB RDS for PostgreSQL tujuan berdasarkan informasi database dan skema objek yang akan dimigrasikan. Nama skema database sumber dan tujuan harus sama. Untuk informasi lebih lanjut, lihat Buat Database dan Kelola Akun Menggunakan Skema.
Prosedur
Masuk ke Konsol DTS.
CatatanJika Anda dialihkan ke konsol Data Management (DMS), Anda dapat mengklik ikon
di
untuk pergi ke versi sebelumnya dari konsol DTS.Di panel navigasi di sebelah kiri, klik Data Migration.
Di bagian atas halaman Migration Tasks, pilih wilayah tempat instance RDS berada.
Di sudut kanan atas halaman, klik Create Migration Task.
Konfigurasikan database sumber dan tujuan.

Bagian
Parameter
Deskripsi
Tidak ada
Nama Tugas
Nama tugas yang DTS hasilkan secara otomatis. Kami menyarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menentukan nama tugas yang unik.
Database Sumber
Tipe Instance
Tipe database sumber. Dalam contoh ini, User-Created Database with Public IP Address dipilih.
CatatanJika database mandiri sumber merupakan 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.
CatatanJika daftar putih dikonfigurasi untuk database PostgreSQL yang dikelola sendiri, Anda harus menambahkan blok CIDR server DTS ke daftar putih database. Anda dapat mengklik Get IP Address Segment of DTS di sebelah Instance Region untuk mendapatkan blok CIDR server DTS.
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. Nomor port default adalah 5432.
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, lihat Izin yang diperlukan untuk akun database.
Kata Sandi Database
Kata sandi akun database.
CatatanSetelah Anda menentukan informasi tentang database sumber, Anda dapat mengklik Test Connectivity di sebelah Database Password untuk memeriksa apakah informasi tersebut valid. Jika informasi valid, pesan Passed akan muncul. Jika pesan Failed muncul, klik Check di sebelah Failed. Kemudian, modifikasi 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 bisa berbeda dari nama database PostgreSQL yang dikelola sendiri.
CatatanSebelum Anda mengonfigurasi tugas migrasi data, Anda harus membuat database dan skema di instance ApsaraDB RDS for PostgreSQL tujuan. Untuk informasi lebih lanjut, lihat Persiapan.
Akun Database
Akun database instance ApsaraDB RDS for PostgreSQL tujuan. Untuk informasi tentang izin yang diperlukan untuk akun, lihat Izin yang diperlukan untuk akun database.
Kata Sandi Database
Kata sandi akun database.
CatatanSetelah Anda menentukan informasi tentang instance RDS, Anda dapat mengklik Test Connectivity di sebelah Database Password untuk memeriksa apakah informasi tersebut valid. Jika informasi valid, pesan Passed akan muncul. Jika pesan Failed muncul, klik Check di sebelah Failed. Kemudian, modifikasi informasi berdasarkan hasil pemeriksaan.
Di sudut kanan bawah halaman, klik Set Whitelist and Next.
PeringatanJika blok CIDR server DTS ditambahkan secara otomatis atau manual ke daftar putih database atau instance, atau ke aturan grup keamanan ECS, risiko keamanan mungkin timbul. Oleh karena itu, sebelum menggunakan DTS untuk memigrasikan data, Anda harus memahami dan mengakui potensi risiko serta mengambil langkah-langkah pencegahan, termasuk tetapi tidak terbatas pada langkah-langkah berikut: tingkatkan keamanan nama pengguna dan kata sandi, 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 menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.
Pilih jenis migrasi dan objek yang ingin Anda migrasikan.

Pengaturan
Deskripsi
Pilih Jenis Migrasi
Untuk hanya melakukan 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, Anda harus memilih Schema Migration dan Full Data Migration.
CatatanUntuk memastikan konsistensi data, kami menyarankan agar Anda tidak menulis data ke database PostgreSQL yang dikelola sendiri selama migrasi data penuh.
Pilih Objek yang Ingin Anda Migrasikan
Pilih satu atau lebih objek dari bagian Available dan klik ikon
untuk menambahkan objek ke bagian Selected.CatatanAnda dapat memilih kolom, tabel, atau skema sebagai objek yang akan dimigrasikan.
Secara default, setelah objek dimigrasikan ke database tujuan, nama objek tetap tidak berubah. Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama objek yang dimigrasikan ke database 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 kluster 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 akan mencoba kembali dalam 12 jam berikutnya. Anda dapat menentukan rentang waktu percobaan ulang berdasarkan kebutuhan bisnis Anda. Jika DTS berhasil tersambung kembali ke database sumber dan tujuan dalam rentang waktu yang ditentukan, DTS akan melanjutkan tugas migrasi data. Jika tidak, tugas migrasi data gagal.
CatatanSelama rentang waktu DTS mencoba tersambung 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 secepat mungkin setelah database sumber dan tujuan dilepaskan.
Klik Precheck.
CatatanPemeriksaan awal dilakukan sebelum tugas migrasi dimulai. Tugas migrasi hanya akan dimulai setelah pemeriksaan awal berhasil.
Jika pemeriksaan awal gagal, klik ikon
di sebelah setiap item pemeriksaan yang gagal untuk melihat detail terkait. Perbaiki masalah sesuai instruksi dan jalankan pemeriksaan awal lagi.
Klik Next.
Di kotak dialog Confirm Settings, konfigurasikan parameter Channel Specification. Kemudian, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start untuk memulai tugas migrasi data.
CatatanKami menyarankan agar Anda tidak secara manual menghentikan tugas selama migrasi data penuh. Jika tidak, data yang dimigrasikan ke database tujuan mungkin tidak lengkap. Anda dapat menunggu hingga tugas migrasi data berhenti secara otomatis.
Pindahkan beban kerja Anda ke instance RDS tujuan.
Apa yang harus dilakukan selanjutnya
Akun database yang digunakan untuk migrasi data memiliki izin baca dan tulis. Setelah migrasi data selesai, Anda harus menghapus akun dari database PostgreSQL yang dikelola sendiri dan instance ApsaraDB RDS for PostgreSQL untuk memastikan keamanan.