全部产品
Search
文档中心

PolarDB:Migrasi data dari database PostgreSQL yang dikelola sendiri ke kluster PolarDB for PostgreSQL

更新时间:Jul 03, 2025

Topik ini menjelaskan cara memigrasikan data dari database PostgreSQL yang dikelola sendiri ke kluster PolarDB for PostgreSQL menggunakan perintah pg_dumpall, pg_dump, dan pg_restore.

Untuk migrasi data dari instance ApsaraDB RDS for PostgreSQL ke kluster PolarDB for PostgreSQL, lihat Migrasi Data dari Instance ApsaraDB RDS for PostgreSQL ke Kluster PolarDB for PostgreSQL.

Prasyarat

Ruang penyimpanan yang tersedia di kluster PolarDB for PostgreSQL harus lebih besar daripada ruang penyimpanan pada database PostgreSQL yang dikelola sendiri.

Catatan penggunaan

Seluruh data dipindahkan dalam prosedur ini. Untuk mencegah ketidaksesuaian data sebelum dan sesudah migrasi, hentikan aktivitas bisnis dan jangan menulis data ke database PostgreSQL yang dikelola sendiri selama proses migrasi.

Persiapan

  1. Buat instance Elastic Compute Service (ECS) Linux. Contoh ini menggunakan instance ECS dengan Ubuntu 16.04 64-bit. Untuk informasi lebih lanjut, lihat Membuat Instance ECS.

    Catatan
    • Instance ECS dan tujuan kluster PolarDB for PostgreSQL harus berada dalam virtual private cloud (VPC) yang sama.

    • Anda dapat membuat instance ECS dengan model bayar sesuai pemakaian dan melepaskannya setelah migrasi selesai.

  2. Instal klien PostgreSQL pada instance Linux ECS untuk menjalankan perintah restorasi data. Untuk informasi lebih lanjut, lihat Dokumentasi Resmi PostgreSQL.

    Catatan

    Pastikan versi klien PostgreSQL yang diinstal sesuai dengan versi database PostgreSQL sumber.

Langkah 1: Cadangkan database PostgreSQL yang dikelola sendiri

Seluruh data dipindahkan dalam prosedur ini. Untuk mencegah ketidaksesuaian data sebelum dan sesudah migrasi, hentikan aktivitas bisnis dan jangan menulis data ke database PostgreSQL yang dikelola sendiri selama proses migrasi.

  1. Jalankan perintah berikut pada server tempat database yang dikelola sendiri berada untuk mencadangkan semua informasi peran di dalam database.

    pg_dumpall -U <username> -h <hostname> -p <port> -r -f <filename>

    Parameter:

    • <username>: akun yang digunakan untuk masuk ke database PostgreSQL yang dikelola sendiri.

    • <hostname>: titik akhir database PostgreSQL yang dikelola sendiri. Jika database berada di server tempat Anda menjalankan perintah, gunakan localhost.

    • <port>: nomor port layanan database.

    • <filename>: nama file cadangan yang dihasilkan.

    Contoh:

    pg_dumpall -U postgres -h localhost -p 5432 -r -f roleinfo.sql
  2. Ketika prompt Password: ditampilkan, masukkan kata sandi database untuk memulai proses pencadangan.

  3. Jalankan perintah vim untuk mengganti SUPERUSER di dalam file cadangan informasi peran dengan polar_superuser.

    Catatan

    Jika file cadangan informasi peran tidak berisi informasi SUPERUSER, Anda dapat melewati langkah ini.

    示例图

  4. Jalankan perintah berikut pada server tempat database yang dikelola sendiri berada untuk mencadangkan data dari database PostgreSQL yang dikelola sendiri.

    pg_dump -U <username> -h <hostname> -p <port> <dbname> -Fd -j <njobs> -f <dumpdir>

    Parameter:

    • <username>: akun yang digunakan untuk masuk ke database PostgreSQL yang dikelola sendiri.

    • <hostname>: titik akhir database PostgreSQL yang dikelola sendiri. Jika database berada di server tempat Anda menjalankan perintah, gunakan localhost.

    • <port>: nomor port layanan database.

    • <dbname>: nama database yang ingin Anda cadangkan datanya.

    • <njobs>: jumlah pekerjaan pencadangan bersamaan.

      Catatan
      • Pekerjaan pencadangan bersamaan dapat mengurangi waktu yang dibutuhkan untuk mencadangkan data tetapi meningkatkan beban pada server database.

      • Jika database PostgreSQL yang dikelola sendiri lebih awal dari versi 9.2, Anda harus menentukan parameter --no-synchronized-snapshots.

    • <dumpdir>: direktori file cadangan yang dihasilkan.

    Contoh:

    pg_dump -U postgres -h localhost -p 5432 mytestdata -Fd -j 5 -f postgresdump
  5. Ketika prompt Password: ditampilkan, masukkan kata sandi database untuk memulai proses pencadangan.

  6. Data di dalam instance PostgreSQL yang dikelola sendiri dicadangkan ke direktori yang ditentukan. Dalam contoh ini, data disimpan di direktori postgresdump.

Langkah 2: Migrasikan data ke kluster PolarDB for PostgreSQL

  1. Unggah direktori yang berisi file cadangan ke instance ECS.

    Catatan

    File cadangan mencakup file cadangan informasi peran dan file cadangan database.

  2. Jalankan perintah berikut pada instance ECS untuk memigrasikan informasi peran di dalam file cadangan informasi peran ke kluster PolarDB for PostgreSQL:

    psql -U <username> -h <hostname>  -p <port> -d <dbname>  -f <filename>

    Parameter:

    • <username>: akun yang digunakan untuk masuk ke kluster PolarDB for PostgreSQL.

    • <hostname>: titik akhir privat utama kluster PolarDB for PostgreSQL.

    • <port>: nomor port layanan database. Untuk informasi lebih lanjut, lihat Lihat Titik Akhir dan Nomor Port.

    • <dbname>: nama database ke mana Anda ingin merestorasi data.

    • <filename>: nama file cadangan informasi peran.

    psql -U gctest -h pc-xxxxxxxx.pg.polardb.cn-qd-pldb1.rds.aliyuncs.com -d testdb -p 1921 -f roleinfo.sql
  3. Ketika prompt Password: ditampilkan, masukkan kata sandi database untuk memulai migrasi data.

  4. Jalankan perintah berikut pada instance ECS untuk memigrasikan data dari database sumber ke kluster PolarDB for PostgreSQL.

    pg_restore -U <username> -h <hostname> -p <port> -d <dbname> -j <njobs> <dumpdir>

    Parameter:

    • <username>: akun yang digunakan untuk masuk ke kluster PolarDB for PostgreSQL.

    • <hostname>: titik akhir privat utama kluster PolarDB for PostgreSQL. Untuk informasi lebih lanjut, lihat Lihat atau Ajukan Permintaan Titik Akhir.

    • <port>: nomor port layanan database. Untuk informasi lebih lanjut, lihat Lihat Titik Akhir dan Nomor Port.

    • <dbname>: nama database tujuan ke mana Anda ingin merestorasi data.

      Catatan

      Database tujuan harus tersedia. Jika tidak tersedia, buat database di kluster tujuan.

    • <njobs>: jumlah pekerjaan restorasi data bersamaan.

      Catatan

      Pekerjaan restorasi data bersamaan dapat mengurangi waktu yang dibutuhkan untuk merestorasi data tetapi meningkatkan beban pada server database.

    • <dumpdir>: direktori tempat file cadangan berada.

    Contoh:

    pg_restore -U gctest -h pc-mxxxxxxxx.pg.polardb.cn-qd-pldb1.rds.aliyuncs.com -p 1921 -d mytestdata -j 6 postgresdump
  5. Ketika prompt Password: ditampilkan, masukkan kata sandi untuk memulai migrasi data.

    Catatan

    Jika Anda lupa kata sandi database, lihat Kelola Akun Database.

Tunggu hingga migrasi data selesai.