Gunakan pg_restore untuk memulihkan data dari file cadangan logis .dump ke instans ApsaraDB RDS for PostgreSQL atau database PostgreSQL on-premises.
Untuk data dalam jumlah kecil, seperti satu tabel saja, pemulihan cadangan logis dapat dilakukan secara langsung. Untuk set data yang besar, pulihkan terlebih dahulu dari cadangan fisik lengkap ke instans RDS baru, lalu gunakan Data Transmission Service (DTS) untuk memigrasikan data ke instans asal. Informasi selengkapnya mengenai semua metode pemulihan tersedia di Restoration.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Cadangan logis yang dibuat untuk instance RDS Anda. Lihat Buat cadangan logis untuk instance ApsaraDB RDS for PostgreSQL.
File cadangan
.dumptersedia di instans Elastic Compute Service (ECS) atau host on-premises tempat Anda akan menjalankanpg_restore.
Catatan penggunaan
Jangan memulihkan data ke database
postgresdefault.Saat memulihkan satu tabel,
pg_restoretidak memulihkan objek database yang menjadi dependensi tabel tersebut. Jika dependensi tersebut tidak ada di database target, proses pemulihan mungkin gagal.
Pulihkan database
Login ke instans ECS atau host on-premises yang menyimpan file cadangan, lalu jalankan perintah berikut:
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -c <dumpdir>| Parameter | Deskripsi |
|---|---|
hostname | Titik akhir yang digunakan untuk menghubungkan ke instans RDS. Untuk menggunakan titik akhir internal, instans ECS dan instans RDS harus menggunakan jenis jaringan yang sama. Jika keduanya menggunakan jenis jaringan virtual private cloud (VPC), keduanya harus berada dalam VPC yang sama. Lihat View and change the endpoints and port numbers of an ApsaraDB RDS for PostgreSQL instance. Untuk menggunakan titik akhir publik, alokasikan terlebih dahulu. Lihat Apply for or release a public endpoint on an ApsaraDB RDS for PostgreSQL instance. |
username | Username akun istimewa instans RDS. |
port | Port yang digunakan untuk menghubungkan ke instans RDS. |
dbname | Nama database target. |
-c (opsional) | Hapus objek database sebelum membuat ulang. Lihat pg_restore. |
dumpdir | Path ke file cadangan logis. |
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dumpSaat diminta Password:, masukkan password akun istimewa dan tekan Enter.

Abaikan peringatan dari ekstensi bawaan plpgsql.
Pulihkan tabel
Login ke instans ECS atau host on-premises yang menyimpan file cadangan, lalu jalankan perintah berikut:
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> -c <dumpdir>Flag -t <table> menentukan tabel yang akan dipulihkan. Semua parameter lainnya sama seperti pada Pulihkan database.
| Parameter | Deskripsi |
|---|---|
table | Nama tabel yang akan dipulihkan. |
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dumpSaat diminta Password:, masukkan password akun istimewa dan tekan Enter.

Saat memulihkan satu tabel, objek database yang menjadi dependensinya tidak dipulihkan. Pastikan objek tersebut sudah ada di database target, atau proses pemulihan mungkin gagal.
Pulihkan skema database
Untuk memulihkan hanya skema database tanpa memulihkan data apa pun, login ke instans ECS atau host on-premises, lalu jalankan perintah berikut:
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -s <dumpdir>Flag -s hanya memulihkan skema tanpa memuat data apa pun. Semua parameter lainnya sama seperti pada Pulihkan database.
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dumpSaat diminta Password:, masukkan password akun istimewa dan tekan Enter.

Abaikan peringatan dari ekstensi bawaan plpgsql.