【问题标题】:How to restore database in PostgreSQL with pgadmin3?如何使用 pgadmin3 恢复 PostgreSQL 中的数据库?
【发布时间】:2015-04-17 00:48:41
【问题描述】:

我正在使用 pgAdmin 来恢复 PostgreSQL 数据库。要恢复数据库,我需要删除、删除并重新制作它。如何在不删除和重新制作的情况下恢复数据库?

【问题讨论】:

  • 如果你想避免删除数据库,你可以重命名它。如果你想避免重建数据库,你可以清空它(删除或截断所有表(目录除外))

标签: postgresql pgadmin


【解决方案1】:

无法在 pgAdmin 或任何数据库工具中完成。如果不先删除数据,则无法恢复常规备份文件,因为它们包含正常的 COPY 语句,如果数据库中有行(主键冲突等),这些语句将失败。

如需在测试环境中返回早期快照的简单方法,请查看PostgreSQL documentation - 24.2. File System Level Backup

用于备份:

  • 关闭您的数据库
  • 复制所有数据目录中的文件

恢复:

  • 关闭您的数据库
  • 用备份目录替换你的数据目录

注意:

  • 数据的大小可能比常规备份大得多,尤其是在您有大量索引的情况下
  • 这是一个服务器范围的备份,因此您不能在单个数据库上执行此操作
  • 不要尝试在不同版本的 PostgreSQL 上使用它
  • 这确实也删除了数据 - 将其替换为备份

此外,如果您使用 pg_restore --data-only 执行仅数据恢复,则您不必执行 DROP TABLE 定期备份。不过,您仍然需要删除数据。

【讨论】:

  • 这是错误的。文件系统备份不是 OP 想要的。 (事实上​​这不是任何人想要的)
  • @joop:感谢您的反馈,扩大了答案。
  • 注意:DBMS 安装可能包含多个数据库。
猜你喜欢
  • 1970-01-01
  • 2015-08-30
  • 2020-07-07
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多