Topik ini menjelaskan cara menggunakan pg_restore untuk memulihkan data dari file cadangan logis dengan akhiran .dump ke instance ApsaraDB RDS for PostgreSQL atau database PostgreSQL lokal.
Untuk sejumlah kecil data, seperti data dalam tabel, disarankan menggunakan file cadangan logis untuk pemulihan. Untuk sejumlah besar data, disarankan memulihkannya dari file cadangan fisik penuh ke instance RDS baru dan kemudian menggunakan Data Transmission Service (DTS) untuk migrasi data ke instance RDS asli. Untuk informasi lebih lanjut, lihat Migrasikan Data Antar Instance ApsaraDB RDS for PostgreSQL.
Untuk detail lebih lanjut tentang metode pemulihan data, lihat Pemulihan.
Prasyarat
Cadangan logis telah dibuat untuk instance RDS Anda. Untuk informasi lebih lanjut, lihat Buat Cadangan Logis untuk Instance ApsaraDB RDS for PostgreSQL.
Catatan penggunaan
Disarankan untuk tidak memulihkan data ke database Postgres default.
Saat memulihkan data tabel, sistem tidak akan memulihkan objek database yang menjadi dependensi tabel tersebut. Pemulihan mungkin gagal.
Pulihkan data database
Masuk ke instance Elastic Compute Service (ECS) atau host lokal yang menyimpan file cadangan logis, lalu jalankan perintah berikut untuk memulihkan data database:
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -c <dumpdir>Parameter
Deskripsi
hostname
Titik akhir yang digunakan untuk terhubung ke instance RDS.
CatatanJika Anda ingin menghubungkan instance ECS Anda ke instance RDS menggunakan titik akhir internal, pastikan bahwa instance ECS dan instance RDS menggunakan tipe jaringan yang sama. Jika kedua instance menggunakan tipe jaringan virtual private cloud (VPC), pastikan mereka berada di VPC yang sama. Untuk informasi lebih lanjut, lihat Lihat dan ubah titik akhir dan nomor port instance ApsaraDB RDS for PostgreSQL.
Jika Anda ingin menghubungkan host lokal atau instance ECS ke instance RDS Anda menggunakan titik akhir publik, pastikan titik akhir publik dialokasikan ke instance RDS Anda. Untuk informasi lebih lanjut, lihat Lihat dan ubah titik akhir dan nomor port instance ApsaraDB RDS for PostgreSQL dan Ajukan permohonan atau lepaskan titik akhir publik pada instance ApsaraDB RDS for PostgreSQL.
username
Nama pengguna akun istimewa instance RDS.
port
Port yang digunakan untuk terhubung ke instance RDS.
dbname
Nama database yang ingin Anda pulihkan datanya.
-c (opsional)
-cmenentukan apakah akan menghapus data database yang diperlukan sebelum pemulihan data. Untuk informasi lebih lanjut, lihat pg_restore.dumpdir
Direktori dan nama file cadangan logis.
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dumpMasukkan kata sandi akun istimewa instance RDS jika
Password:muncul di CLI, lalu tekan tombol Enter.
CatatanAnda dapat mengabaikan peringatan yang dihasilkan oleh ekstensi plpgsql bawaan.
Pulihkan data tabel
Masuk ke instance ECS atau host lokal yang menyimpan file cadangan logis, lalu jalankan perintah berikut untuk memulihkan data tabel:
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> -c <dumpdir>Parameter
Deskripsi
hostname
Titik akhir yang digunakan untuk terhubung ke instance RDS.
CatatanJika Anda ingin menghubungkan instance ECS Anda ke instance RDS menggunakan titik akhir internal, pastikan bahwa instance ECS dan instance RDS menggunakan tipe jaringan yang sama. Jika kedua instance menggunakan tipe jaringan VPC, pastikan mereka berada di VPC yang sama. Untuk informasi lebih lanjut, lihat Lihat dan ubah titik akhir internal dan publik serta nomor port instance ApsaraDB RDS for PostgreSQL.
Jika Anda ingin menghubungkan host lokal atau instance ECS ke instance RDS Anda menggunakan titik akhir publik, pastikan titik akhir publik dialokasikan ke instance RDS Anda. Untuk informasi lebih lanjut, lihat Lihat dan ubah titik akhir dan nomor port instance ApsaraDB RDS for PostgreSQL dan Ajukan permohonan atau lepaskan titik akhir publik pada instance ApsaraDB RDS for PostgreSQL.
username
Nama pengguna akun istimewa instance RDS.
port
Port yang digunakan untuk terhubung ke instance RDS.
dbname
Nama database yang ingin Anda pulihkan datanya.
table
Nama tabel yang ingin Anda pulihkan datanya.
-c (opsional)
-cmenentukan apakah akan menghapus data database yang diperlukan sebelum pemulihan data. Untuk informasi lebih lanjut, lihat pg_restore.dumpdir
Direktori dan nama file cadangan logis.
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dumpMasukkan kata sandi akun istimewa instance RDS jika
Password:muncul di CLI, lalu tekan tombol Enter.
Pulihkan skema database tanpa termasuk data
Masuk ke instance ECS atau host lokal yang menyimpan file cadangan logis, lalu jalankan perintah berikut untuk hanya memulihkan skema database:
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -s <dumpdir>Parameter
Deskripsi
hostname
Titik akhir yang digunakan untuk terhubung ke instance RDS.
CatatanJika Anda ingin menghubungkan instance ECS Anda ke instance RDS menggunakan titik akhir internal, pastikan bahwa instance ECS dan instance RDS menggunakan tipe jaringan yang sama. Jika kedua instance menggunakan tipe jaringan VPC, pastikan mereka berada di VPC yang sama. Untuk informasi lebih lanjut, lihat Lihat dan ubah titik akhir internal dan publik serta nomor port instance ApsaraDB RDS for PostgreSQL.
Jika Anda ingin menghubungkan host lokal atau instance ECS ke instance RDS Anda menggunakan titik akhir publik, pastikan titik akhir publik dialokasikan ke instance RDS Anda. Untuk informasi lebih lanjut, lihat Lihat dan ubah titik akhir dan nomor port instance ApsaraDB RDS for PostgreSQL dan Ajukan permohonan atau lepaskan titik akhir publik pada instance ApsaraDB RDS for PostgreSQL.
username
Nama pengguna akun istimewa instance RDS.
port
Port yang digunakan untuk terhubung ke instance RDS.
dbname
Nama database yang ingin Anda pulihkan skemanya.
-s
-s: menentukan untuk hanya memulihkan skema database. Data database tidak dipulihkan. Untuk informasi lebih lanjut, lihat pg_restore.dumpdir
Direktori dan nama file cadangan logis.
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dumpMasukkan kata sandi akun istimewa instance RDS jika
Password:muncul di CLI, lalu tekan tombol Enter.
CatatanAnda dapat mengabaikan peringatan yang dihasilkan oleh ekstensi plpgsql tertanam.