我需要从转储中恢复数据库,但无法做到

Posted

技术标签:

【中文标题】我需要从转储中恢复数据库,但无法做到【英文标题】:I need to restore db from dump and cannot do it 【发布时间】:2016-09-08 08:52:50 【问题描述】:

我在 D:/backup.dump 有一个数据库转储。我尝试恢复我的数据库min_ro:我打开 psql.exe 插件。有话

min_ro=#

然后我写恢复命令:

min_ro=# psql min_ro < D:/backup.dump

然后什么都没有发生。我的数据库没有恢复。怎么了?第一次使用psql

更新。我不仅需要 psql - 我需要从转储中恢复 db,但无法做到。

【问题讨论】:

【参考方案1】:

psql 不是 SQL 语句,因此在运行 SQL 语句psql prompt 处输入它没有意义(或psql 元命令)。

c:\> psql min_ro < D:/backup.dump

需要在 (Windows) 命令行中输入,不是psql 中。

但是,您可以通过使用 `psql`` 中的 \i ("include") 元命令来运行 SQL 脚本(我假设您的转储是)

c:\> psql min_ro
min_ro=# \i D:/backup.dump

【讨论】:

首先你必须进入psql.exe所在的文件夹。例如它是C:/Program Files/PostgreSQL9.4/bin/ @NewDevelop:你只需要psql不在PATH中。但你的问题不是“我该如何开始psql”,而是如何使用你拥有的转储。 查看问题图块。 这是第一次使用 psql。 当然它不在 PATH )【参考方案2】:

当您在pgAdminIII 还原数据库时(通过右键单击数据库名称然后选择“还原”),默认情况下您无法在备份列表中看到.dump 文件。那是我的错误迫使我尝试另一种从转储中恢复数据库的方法。

但是,如果您只是将文件类型更改为'All files',您可以像往常一样从转储中恢复您的数据库。

【讨论】:

以上是关于我需要从转储中恢复数据库,但无法做到的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 kubernetes 从 mysqldump 恢复转储文件?

从 MySql 转储导入到配置单元

如何将 MySQL 转储从主机恢复到 Docker 容器

从 --all-databases 转储导入单个数据库

将sql转储恢复到RDS的最快方法

MySQL:如何在忽略几个数据库的情况下恢复转储