All Products
Search
Document Center

ApsaraDB RDS:Gunakan pg_restore untuk memulihkan data dari file cadangan logis

Last Updated:Mar 29, 2026

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:

Catatan penggunaan

  • Jangan memulihkan data ke database postgres default.

  • Saat memulihkan satu tabel, pg_restore tidak 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>
ParameterDeskripsi
hostnameTitik 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.
usernameUsername akun istimewa instans RDS.
portPort yang digunakan untuk menghubungkan ke instans RDS.
dbnameNama database target.
-c (opsional)Hapus objek database sebelum membuat ulang. Lihat pg_restore.
dumpdirPath ke file cadangan logis.

Contoh:

pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump

Saat diminta Password:, masukkan password akun istimewa dan tekan Enter.

image.png
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.

ParameterDeskripsi
tableNama 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.dump

Saat diminta Password:, masukkan password akun istimewa dan tekan Enter.

image.png
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.dump

Saat diminta Password:, masukkan password akun istimewa dan tekan Enter.

image.png
Abaikan peringatan dari ekstensi bawaan plpgsql.

Langkah selanjutnya