Topik ini menjelaskan cara menggunakan perintah pg_dump dan pg_restore untuk melakukan migrasi data dari database RDS PostgreSQL ke kluster PolarDB for PostgreSQL.
Jika sumbernya adalah database PostgreSQL yang dikelola sendiri, lihat Migrasi data dari database PostgreSQL yang dikelola sendiri ke kluster PolarDB for PostgreSQL.
Cakupan
Instans RDS PostgreSQL: Instans Serverless tidak didukung untuk metode migrasi ini.
Ruang penyimpanan: Ruang penyimpanan kluster PolarDB for PostgreSQL harus lebih besar daripada ruang penyimpanan database RDS PostgreSQL.
Catatan penggunaan
Ini merupakan migrasi data penuh. Untuk mencegah inkonsistensi data, hentikan semua layanan yang terhubung ke database RDS PostgreSQL dan hentikan penulisan data sebelum memulai migrasi.
Persiapan
Buat instans Elastic Compute Service (ECS) Linux. Dalam contoh ini, digunakan instans ECS yang menjalankan Ubuntu 16.04 64-bit. Untuk informasi selengkapnya, lihat Buat instans ECS.
CatatanInstans ECS harus memiliki konektivitas jaringan ke database RDS PostgreSQL sumber dan kluster PolarDB for PostgreSQL tujuan.
Anda dapat membuat instans ECS bayar sesuai penggunaan dan melepaskannya setelah migrasi selesai.
Instal klien PostgreSQL pada instans ECS untuk menjalankan perintah pemulihan data. Untuk informasi selengkapnya, lihat dokumentasi resmi PostgreSQL.
CatatanPastikan versi klien PostgreSQL yang diinstal kompatibel dengan versi database RDS PostgreSQL sumber dan kluster PolarDB for PostgreSQL tujuan.
Langkah 1: Mencadangkan database RDS PostgreSQL
Ini merupakan migrasi data penuh. Untuk mencegah inkonsistensi data, hentikan semua layanan yang terhubung ke database RDS PostgreSQL dan hentikan penulisan data sebelum memulai migrasi.
Pada instans ECS, jalankan perintah berikut untuk mencadangkan database.
pg_dump -U <username> -h <hostname> -p <port> <dbname> -Fd -j <njobs> -f <dumpdir>Parameter:
<username>: Akun database yang digunakan untuk masuk ke database RDS PostgreSQL.
<hostname>: Titik akhir database RDS PostgreSQL. Untuk melihat titik akhir database, lihat Lihat atau ubah titik akhir dan nomor port.
<port>: Nomor port layanan database.
<dbname>: Nama database yang ingin Anda hubungkan. Nilai default-nya adalah postgres.
<njobs>: Jumlah pekerjaan pencadangan konkuren.
CatatanParameter <njobs> mengurangi waktu dump tetapi meningkatkan beban pada server database.
Jika database RDS PostgreSQL Anda merupakan versi sebelum 9.2, Anda juga harus menentukan parameter
--no-synchronized-snapshots.
<dumpdir>: Direktori untuk file cadangan yang dihasilkan.
Contoh:
pg_dump -U postgres -h pgm-xxxxxxxxx.pg.rds.aliyuncs.com -p 5432 postgres -Fd -j 5 -f postgresdumpSaat diminta memasukkan
Password:, masukkan kata sandi akun database untuk memulai pencadangan.Tunggu hingga pencadangan selesai. Data dari database RDS PostgreSQL dicadangkan ke direktori yang ditentukan. Dalam contoh ini, direktorinya adalah postgresdump.
Langkah 2: Migrasi data ke kluster PolarDB for PostgreSQL
Buat akun database di kluster PolarDB for PostgreSQL tujuan. Untuk informasi selengkapnya, lihat Buat akun database dan Izin akun.
Di kluster PolarDB for PostgreSQL tujuan, buat database untuk pemulihan data. Tentukan pemilik database sebagai akun yang Anda buat pada langkah sebelumnya. Untuk informasi selengkapnya, lihat Buat database.
Pada instans ECS, jalankan perintah berikut untuk memigrasikan data dari database RDS PostgreSQL ke kluster PolarDB for PostgreSQL.
pg_restore -U <username> -h <hostname> -p <port> -d <dbname> -j <njobs> <dumpdir>Parameter:
<username>: Akun database yang digunakan untuk masuk ke database PolarDB for PostgreSQL.
<hostname>: Titik akhir kluster PolarDB for PostgreSQL.
<port>: Nomor port layanan database. Untuk informasi selengkapnya, lihat Lihat titik akhir dan nomor port.
<dbname>: Nama database tujuan tempat Anda ingin menghubungkan dan memulihkan data.
<njobs>: Jumlah pekerjaan pemulihan data konkuren.
CatatanOpsi ini mengurangi waktu pemulihan data tetapi meningkatkan beban pada server database.
<dumpdir>: Direktori yang berisi file cadangan.
Contoh:
pg_restore -U gctest -h pc-mxxxxxxxx.pg.polardb.cn-qd-pldb1.rds.aliyuncs.com -p 1921 -d postgres -j 6 postgresdumpSaat diminta memasukkan
Password:, masukkan kata sandi akun database untuk memulai migrasi data.CatatanJika Anda lupa kata sandi, lihat Kelola akun database.
Tunggu hingga migrasi data selesai.