2017-03-15 214 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 
恢复数据库