2017-03-15 31 views
0

所有我想從我的服務器上得到的pg_dump恢復我的數據庫。我知道有很多類似的問題,我嘗試了建議,但仍然無法解決我的問題。 我通過這個命令創建我的pg_dump:從pg_dump語法錯誤恢復數據庫

pg_dump name_of_database > name_of_backup_file 

然後,我創建新的數據庫:

createdb -T template0 restored_database 

然後我恢復使用這個命令:

psql -1 -f name_of_backup_file.sql restored_database 

它運行,然後我得到了不同語法錯誤,例如:

psql:nurate_pg_dump.sql:505: invalid command \nWatch 
Query buffer reset (cleared). 
psql:nurate_pg_dump.sql:512: invalid command \nThe 
psql:nurate_pg_dump.sql:513: invalid command \N 
psql:nurate_pg_dump.sql:4098: ERROR: syntax error at or near "9" 
LINE 1: 9 the course is not difficult, but Zauresh Atakhanova is not... 

我相信因爲我從同一臺服務器創建pg_dump,並嘗試恢復它,在我的服務器設置或postgres版本中沒有任何更改,所以我認爲我的db應該可以正確恢復。我該如何解決這些語法錯誤?

編輯:好吧,這個問題是不是與語法:

CREATE EXTENSION
ERROR: must be owner of extension plpgsql

此錯誤是在這行拋出:

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; 
+0

'invalid command \ N'通常是腳本中的_previous_錯誤的結果。也許一個'create table'失敗了,因此事務應該被回滾。使用'-a'選項運行psql查看失敗的第一條語句 –

回答

0

嘗試

psql restored_database < name_of_backup_file 
恢復數據庫