Topik ini menjelaskan cara menggunakan perintah 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 data pada satu tabel, Anda dapat menggunakan cadangan logis untuk pemulihan cepat. Untuk data dalam jumlah besar, kami menyarankan memulihkan data dari cadangan fisik lengkap ke instans baru, lalu menggunakan Data Transmission Service (DTS) untuk memigrasikan data kembali ke instans asli.
-
Untuk informasi lebih lanjut mengenai metode pemulihan data, lihat Recover.
Prasyarat
Anda telah membuat cadangan logis data PostgreSQL Anda.
Catatan penggunaan
-
Jangan terhubung ke database
postgresdefault saat memulihkan data. -
Memulihkan tabel tertentu tidak memulihkan objek database lain yang menjadi dependensi tabel tersebut. Oleh karena itu, operasi ini mungkin gagal jika dilakukan pada database kosong.
Memulihkan database
-
Login ke instans ECS atau host on-premises tempat data cadangan disimpan, lalu jalankan perintah berikut untuk memulihkan database.
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -c <dumpdir>Parameter
Deskripsi
hostname
Titik akhir instans ApsaraDB RDS for PostgreSQL.
Catatan-
Untuk terhubung dari instans ECS menggunakan titik akhir internal, pastikan instans ECS dan instans ApsaraDB RDS for PostgreSQL menggunakan jenis jaringan yang sama. Jika kedua instans berada di VPC, keduanya harus berada dalam VPC yang sama.
-
Untuk terhubung dari host on-premises atau instans ECS menggunakan titik akhir publik, pastikan titik akhir publik telah diaktifkan untuk instans tersebut.
username
Username akun istimewa untuk instans ApsaraDB RDS for PostgreSQL.
port
Nomor port instans ApsaraDB RDS for PostgreSQL.
dbname
Nama database yang ingin Anda pulihkan.
-c (opsional)
Opsi
-cmenghapus objek database yang sudah ada sebelum membuat ulang. Untuk informasi lebih lanjut mengenai opsi lainnya, lihat dokumentasi resmi pg_restore.dumpdir
Jalur dan nama file cadangan.
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump -
-
Saat diminta memasukkan
Password:, masukkan password akun istimewa instans tersebut lalu tekan Enter.[root@iZbpxxx ~]# pg_restore -h 'pgm-xxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump Password: [root@iZbpxxx ~]#CatatanAnda dapat mengabaikan peringatan apa pun mengenai ekstensi bawaan plpgsql.
Memulihkan tabel tertentu
-
Login ke instans ECS atau host on-premises tempat data cadangan disimpan, lalu jalankan perintah berikut untuk memulihkan tabel tertentu.
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> -c <dumpdir>Parameter
Deskripsi
hostname
Titik akhir instans ApsaraDB RDS for PostgreSQL.
Catatan-
Untuk terhubung dari instans ECS menggunakan titik akhir internal, pastikan instans ECS dan instans ApsaraDB RDS for PostgreSQL menggunakan jenis jaringan yang sama. Jika kedua instans berada di VPC, keduanya harus berada dalam VPC yang sama.
-
Untuk terhubung dari host on-premises atau instans ECS menggunakan titik akhir publik, pastikan titik akhir publik telah diaktifkan untuk instans tersebut.
username
Username akun istimewa untuk instans ApsaraDB RDS for PostgreSQL.
port
Nomor port instans ApsaraDB RDS for PostgreSQL.
dbname
Nama database yang ingin Anda pulihkan.
table
Nama tabel yang ingin Anda pulihkan.
-c (opsional)
Opsi
-cmenghapus objek database yang sudah ada sebelum membuat ulang. Untuk informasi lebih lanjut mengenai opsi lainnya, lihat dokumentasi resmi pg_restore.dumpdir
Jalur dan nama file cadangan.
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump -
-
Saat diminta memasukkan
Password:, masukkan password akun istimewa instans tersebut lalu tekan Enter.[root@iZbpxxx ~]# pg_restore -h 'pgm-bpxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump Password: [root@iZbpxxx ~]#
Memulihkan hanya skema database
-
Login ke instans ECS atau host on-premises tempat data cadangan disimpan, lalu jalankan perintah berikut untuk memulihkan hanya skema database.
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -s <dumpdir>Parameter
Deskripsi
hostname
Titik akhir instans ApsaraDB RDS for PostgreSQL.
Catatan-
Untuk terhubung dari instans ECS menggunakan titik akhir internal, pastikan instans ECS dan instans ApsaraDB RDS for PostgreSQL menggunakan jenis jaringan yang sama. Jika kedua instans berada di VPC, keduanya harus berada dalam VPC yang sama.
-
Untuk terhubung dari host on-premises atau instans ECS menggunakan titik akhir publik, pastikan titik akhir publik telah diaktifkan untuk instans tersebut.
username
Username akun istimewa untuk instans ApsaraDB RDS for PostgreSQL.
port
Nomor port instans ApsaraDB RDS for PostgreSQL.
dbname
Nama database target.
-s
Opsi
-shanya memulihkan skema (definisi data), bukan datanya. Untuk informasi lebih lanjut mengenai opsi lainnya, lihat dokumentasi resmi pg_restore.dumpdir
Jalur dan nama file cadangan.
Contoh:
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump -
-
Saat diminta memasukkan
Password:, masukkan password akun istimewa instans tersebut lalu tekan Enter.[root@iZbpxxx ~]# pg_restore -h 'pgm-bpxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump Password: [root@iZbpxxx ~]#CatatanAnda dapat mengabaikan peringatan apa pun mengenai ekstensi bawaan plpgsql.