簡體   English   中英

如何pg_restore

[英]How to pg_restore

我通過命令行將數據庫“ mydatabase”轉儲到文本文件“ mydatabase.sql”中。

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase"

Thas很好。 但是經過多次嘗試,我無法將這些文件和數據一起進行pg_restore到數據庫中。
但是,如果刪除此數據庫中的所有表,則可以執行以下操作:

psql -f "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" "postgres"

這將恢復所有數據。 問題是我無法通過VBNET / shell運行pgsl,所以我寧願需要pg_restore.exe,這是我的嘗試:

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_restore.exe " -i -h localhost -p 5432 -U postgres -d "mydatabase" -v "C:\Users\User 1\Desktop\mydatabase.sql"

...我收到消息的地方:

C:\\ Users \\ User 1>“ C:/程序文件(x86)/PostgreSQL/9.1/bin/pg_restore.exe” -i -h localhost -p 5432 -U postgres -d“ mydatabase” -v“ C:\\ Users \\ User 1 \\ Desktop \\ mydatabase.sql“無效的二進制文件” C:/程序文件(x86)/PostgreSQL/9.1/bin/pg_restore.exe“ pg_restore.exe:[存檔]輸入文件似乎不是有效的存檔

在嘗試還原之前,我在服務器上有空數據庫“ mydatabase”(沒有表)。 請任何幫助來使pg_restore與“ mydatabase.sql”一起使用,后者已與pg_dump一起轉儲,並且顯然包含正確的數據,因此我可以通過純命令行或VBNET / shell使用它。

在pg_dump中,指定-F t標志。 這告訴pg_dump以tar格式創建備份,適合通過pg_restore還原。

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose -F t --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM