【问题标题】:Easy way to view postgresql dump files?查看 postgresql 转储文件的简单方法?
【发布时间】:2019-12-18 00:59:52
【问题描述】:

我有大量的 postgresql 转储文件需要仔细阅读以获取数据。我是否必须安装 Postgresql 并将它们中的每一个“恢复”到新的数据库中?或者我希望有一个 postgresql 客户端可以简单地打开它们,我可以查看数据,甚至可以运行一个简单的 SQL 查询?

转储文件均来自 Postgresql v9.1.9 服务器。

或者也许有一个工具可以轻松地将数据库“连接”到转储文件?

更新:这些不是文本文件。它们是二进制。它们来自 Heroku 的备份机制,这是what Heroku says about how they create their backups

PG Backups 使用本地 pg_dump PostgreSQL 工具来创建它的 备份文件,使导出到其他 PostgreSQL 变得很简单 安装。

【问题讨论】:

  • 转储是如何制作的?即......你有用于创建它们的确切命令吗?
  • 转储来自 Heroku 的备份机制

标签: database postgresql-9.1 pg-dump


【解决方案1】:

这就是我要找的东西:

pg_restore db.bin > db.sql

感谢@andrewtweber

【讨论】:

  • 转储文件可能很大。如果是这样的话,我建议你尝试pg_restore db.bin | less,如果你只想看看,或者如果你想恢复它,请执行pg_restore db.bin | psql dbname > log 2> error
  • 太棒了!谢谢。
  • 现在呢? pg_restore: [archiver] unsupported version (1.13) in file header
  • @Chloe 这意味着您的pg_restore 版本对于您要恢复的备份来说太低了。
  • 使用 Postgres 13,我不得不改用 pg_restore db.bin -f db.sql,另请参阅 @AlexDev 的 answer
【解决方案2】:

尝试使用文本编辑器打开文件 - 默认转储格式为纯文本。

如果转储不是纯文本 - 尝试使用 pg_restore -l your_db_dump.file 命令。它将列出数据库转储中的所有对象(如表、索引...)。

另一种可能的方式(可能行不通,没试过)是通过pg_restore your_db_dump.file 命令的输出到grep。如果我正确理解了手册 - pg_restore 的输出只是一系列 SQL 查询,它将重建数据库。

【讨论】:

  • pg_restore 在安装 Postgresql 服务器时安装的命令吗?或者我可以轻松地从某个地方获取该命令吗?
  • pg_restore -l 只为您提供表格和其他元数据,而不是实际数据。但是,您的最后一个建议对我来说非常有效。
【解决方案3】:

在较新的版本中,您需要使用文件名指定 -f 标志或为标准输出指定“-”

pg_restore dump_file.bin -f -

【讨论】:

  • 谢谢!我在使用上述解决方案时遇到了问题。
  • 所以换句话说,为了生成一个带有原始 sql 的文件pg_restore dump_file.bin -f dump_file.sql 谢谢你
  • 语法不正确,应该是:pg_restore -f extracted.sql dump_file.bin options 必须在指定转储文件之前去
【解决方案4】:

我遇到了同样的问题,我最终这样做了:

  1. 安装 Postgresql 和 PGAdmin3。
  2. 打开 PGAdmin3 并创建一个数据库。
  3. 右键单击数据库,然后单击恢复。
  4. 忽略文件类型。
  5. 从 Heroku 中选择数据库转储文件。
  6. 点击恢复。

【讨论】:

    【解决方案5】:

    转储文件通常是文本文件,如果未压缩,您可以使用文本编辑器打开它们。在里面你会发现所有允许重建数据库的查询......

    【讨论】:

    • 这些转储不是文本文件,它们是二进制文件
    【解决方案6】:

    如果您在 Windows 上使用 pgAdmin,可以将文件备份为纯文本,当您在命令行提示符下进行备份而不是 pg_dump 时,有一个选项。

    【讨论】:

      猜你喜欢
      • 2018-07-06
      • 1970-01-01
      • 2010-12-13
      • 2018-10-29
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      相关资源
      最近更新 更多