Ada dua alat untuk dilihat, tergantung pada bagaimana Anda membuat file dump.
Sumber referensi pertama Anda haruslah halaman manual pg_dump(1)
karena itulah yang menciptakan dump itu sendiri. Ia mengatakan:
Dump dapat berupa output dalam format skrip atau arsip file. Script dumps adalah file teks biasa yang berisi perintah SQL yang diperlukan untuk merekonstruksi basis data ke keadaan pada saat disimpan. Untuk memulihkan dari skrip seperti itu, masukkan ke psql (1). File skrip dapat digunakan untuk merekonstruksi database bahkan pada mesin lain dan arsitektur lainnya; dengan beberapa modifikasi bahkan pada produk database SQL lainnya.
Format file arsip alternatif harus digunakan dengan pg_restore (1) untuk membangun kembali database. Mereka mengizinkan pg_restore untuk selektif tentang apa yang dipulihkan, atau bahkan untuk menyusun ulang item sebelum dipulihkan. Format file arsip dirancang agar portabel di seluruh arsitektur.
Jadi tergantung pada cara itu dibuang. Anda mungkin dapat mengetahuinya menggunakan file(1)
perintah yang sangat baik - jika itu menyebutkan teks ASCII dan / atau SQL, itu harus dipulihkan dengan cara psql
lain Anda mungkin harus menggunakanpg_restore
Memulihkannya cukup mudah:
psql -U username -d dbname < filename.sql
-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql
atau
pg_restore -U username -d dbname -1 filename.dump
Lihat halaman manualnya masing-masing - ada beberapa opsi yang memengaruhi cara pengembalian berfungsi. Anda mungkin harus membersihkan database "langsung" Anda atau membuatnya kembali dari templat0 (seperti yang ditunjukkan dalam komentar) sebelum memulihkan, tergantung pada bagaimana dump dibuat.
-d
dan-f
pada saat yang sama.pg_restore: options -d/--dbname and -f/--file cannot be used together
cannot be used together
, lihat di sini: stackoverflow.com/questions/27882070/…membuat backup
-F c adalah format khusus (dikompresi, dan dapat dilakukan secara paralel dengan -j N) -b termasuk gumpalan, -v adalah verbose, -f adalah nama file cadangan
pulihkan dari cadangan
penting untuk mengatur -h localhost - option
sumber
Anda mungkin harus masuk karena
postgres
memiliki hak penuh penuh pada database.pg_dump / pg_restore
beralih
-F
tentukan format file cadangan:c
akan menggunakan format PostgreSQL khusus yang dikompresi dan menghasilkan ukuran file cadangan terkecild
untuk direktori di mana setiap file adalah satu tabelt
untuk arsip TAR (lebih besar dari format khusus)-h
/--host
Menentukan nama host dari mesin yang menjalankan server-W
/--password
Paksapg_dump
untuk meminta kata sandi sebelum terhubung ke databasepulihkan cadangan:
Parameter
-C
harus membuat database sebelum mengimpor data. Jika tidak berhasil, Anda selalu dapat membuat basis data mis. dengan perintah (sebagai penggunapostgres
atau akun lain yang memiliki hak untuk membuat basis data)createdb db_name -O owner
pg_dump / psql
Jika Anda tidak menentukan argumen
-F
standar, digunakan format teks biasa SQL (atau dengan-F p
). Maka Anda tidak dapat menggunakanpg_restore
. Anda dapat mengimpor data denganpsql
.cadangan:
mengembalikan:
sumber
postgres
) memiliki set kata sandi maka-W
opsi harus digunakan. Untuk misalnya pada Ubuntu tanpa melakukan apasu postgres
pun dari terminal$ psql -h localhost -U postgres -W -d DB_NAME < DB_BACKUP.sql
adalah perintah yang berfungsi untuk mengembalikan cadangan di localhost saya. Perhatikan bahwa-h
opsi diperlukan.-W
opsi tidak pernah esensial.pg_dump
akan secara otomatis meminta kata sandi jika server meminta otentikasi kata sandi. Anda juga dapat menggunakanPGPASSWORD
variabel env, jika Anda menggunakan kata sandi teks biasa.-h
diperlukan jika standarnyaPGHOST
tidak berlaku. Opsi-opsi ini umum untuk banyak util PostgreSQL, jadi tidak penting untuk menjawab pertanyaan ini (sangat tergantung pada pengaturan Anda).pg_dump/psql
bagian opsi ke-2 Anda berhasil bagi saya. tapi bagian 1pg_dump/pg_restore
tidak berfungsi untuk memulihkan saya. Terima kasih.-Fc
POSTGRESQL 9.1.12
MEMBUANG:
masukkan kata sandi pengguna dan tekan enter.
MENGEMBALIKAN:
masukkan kata sandi pengguna dan tekan enter.
sumber
Di bawah ini adalah versi saya
pg_dump
yang saya gunakan untuk memulihkan database:atau gunakan
psql
:di mana
-h
host,-p
port,-u
nama pengguna login,-d
nama databasesumber
my_new_database
seharusnya sudah ada saat menggunakanpsql
, bukan?Cadangkan dan pulihkan dengan GZIP
cadangan
mengembalikan
https://www.postgresql.org/docs/9.1/static/backup-dump.html
sumber
gunzip -c mydb.pgsql.gz | sudo -u postgres psql
Untuk mendapatkan izin untuk beroperasi di database. Juga pertimbangkan--clean
bendera saat membuang, yang akan menghapus semua data yang ada, mungkin berguna.sumber
Ini bekerja untuk saya:
sumber
--no-owner
sangat membantu saya.1. buka terminal.
2. backup database Anda dengan perintah berikut
nampan postgres Anda - /opt/PostgreSQL/9.1/bin/
server basis data sumber Anda - 192.168.1.111
lokasi dan nama file cadangan Anda - /home/dinesh/db/mydb.backup
nama db sumber Anda - mydatabase
/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 --nama "postgres" --no-password --format kustom --blobs --file "/ home / dinesh / db /mydb.backup "" mydatabase "
3. kembalikan file mydb.backup ke tujuan.
server tujuan Anda - localhost
nama basis data tujuan Anda - mydatabase
buat database untuk memulihkan cadangan.
/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "Ciptakan DATABASE mydatabase"
pulihkan cadangan.
/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 - nama pengguna "postgres" --dbname "mydatabase" --no-password --clean "/ home / dinesh / db / mydb. cadangan "
sumber
Jika Anda membuat cadangan menggunakan pg_dump, Anda dapat dengan mudah mengembalikannya dengan cara berikut:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
sumber
1) Buka terminal psql.
2) Unzip / untar file dump.
3) Buat database kosong.
4) gunakan perintah berikut untuk mengembalikan file .dump
sumber
coba ini:
Pulihkan DB psql dari file .sql
sumber
Seperti tautan di bawah ini katakan, Anda dapat menggunakan perintah psql untuk mengembalikan file dump:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
jika Anda perlu mengatur nama pengguna, tambahkan saja nama pengguna setelah perintah seperti:
sumber
mencoba:
sumber
Memulihkan file cadangan postgres tergantung pada bagaimana Anda mengambil cadangan di tempat pertama.
Jika Anda menggunakan pg_dump dengan -F c atau -F d Anda harus menggunakan pg_restore jika tidak, Anda bisa menggunakan
9 cara untuk membuat cadangan dan mengembalikan basis data postgres
sumber
Cobalah untuk melihat apakah perintah berikut dapat membantu Anda:
sumber
Maaf untuk necropost, tetapi solusi ini tidak berhasil untuk saya. Saya di postgres 10. Di Linux:
service postgresql-10 restart
Ubah direktori ke tempat backup.sql saya berada dan jalankan:
psql postgres -d database_name -1 -f backup.sql
-database_name adalah nama basis data saya
-backup.sql adalah nama file cadangan .sql saya.
sumber
Saya mengalami masalah otentikasi yang menjalankan pg_dump, jadi saya memindahkan file dump saya
ke direktori temp dan kemudian berlari
Jika Anda memiliki dump database besar, Anda mungkin hanya ingin membuat direktori lain di mana pengguna Anda saat ini dan pengguna postgres dapat mengakses dan memasukkan file dump database ke dalamnya.
sumber
Jika Anda memiliki file SQL cadangan maka Anda dapat dengan mudah mengembalikannya. Cukup ikuti instruksi, yang diberikan di bawah ini
Ketikkan kata sandi untuk pengguna postgres Anda jika perlu dan biarkan Postgres melakukan tugasnya. Kemudian Anda dapat memeriksa proses pemulihan.
sumber
Jika Anda ingin membuat cadangan data atau memulihkan data dari cadangan, Anda dapat menjalankan perintah berikut:
Untuk membuat cadangan data Anda, pergi ke direktori postgres \ bin \ Anda seperti
C:\programfiles\postgres\10\bin\
dan kemudian ketik perintah berikut:Untuk mengembalikan data dari cadangan, buka direktori postgres \ bin \ Anda seperti
C:\programfiles\postgres\10\bin\
dan kemudian ketik perintah di bawah ini:Pastikan file cadangan ada.
sumber
Lihat di bawah ini contoh kerjanya
C: / Program Files / PostgreSQL / 9.4 / bin \ pg_restore.exe --host localhost --port 5432 - nama pengguna "postgres" --dbname "newDatabase" --no-password --verbose
" C: \ Users \ Yogesh \ Downloads \ Download baru \ DB.backup "
sumber