恢复Postgresql数据库时出错

时间:2013-09-10 10:12:38

标签: database postgresql database-restore

我在使用以下命令恢复早期备份的PostgreSQL数据库时遇到问题:

pg_dump -i -h localhost -p 5432 -U Mark -F c -b -v -f "C:\Users\mchan\Desktop\MyDB\DBBackup.backup" mydb

现在当我尝试在(另一台机器)上恢复此数据库备份时,我收到以下错误:

pg_restore: [archiver] directory "C:\Users\mark\Desktop\MCHANBackups\DBBackup.backup" does not appear to be a valid archive ("toc.dat" does not exist)

以下是我用来恢复备份的命令:

pg_restore -i -h localhost -p 5432 -U Mark -d mydb -v "C:\Users\mark\Desktop\MCHANBackups\DBBackup.backup"

有人可以帮助我,告诉我这里做错了吗?

1 个答案:

答案 0 :(得分:1)

我认为您使用了自定义格式,并将备份发送到普通文本文件。要从文本文件恢复,请使用     psql命令:psql -e -d template1 -f“C:\ Users \ mchan \ Desktop \ MyDB \ DBBackup.backup”请参阅Postgresql社区页面上的post

使用 psql 命令,如下所示:

psql -e -U username -d databaseName -f "C:\Users\mchan\Desktop\MyDB\DBBackup.backup"

用户名应该是数据库中定义的角色。例如: postgres

如果 psql 命令提示您输入密码而您不知道该用户的密码,请在 pg_hba中将“md5”替换为“trust” “/ data”文件夹下的.conf 文件和重新启动“postgres服务”,以使此更改生效。

完成此更改后, psql 将不会提示输入密码。

有关 psql 及其他选项的更多文档,请参阅psql-doc