【问题标题】:how to decompress .sql extension file in windows server如何在 Windows Server 中解压缩 .sql 扩展名文件
【发布时间】:2023-03-09 00:56:01
【问题描述】:

我已经对包含 100 个数据库的 postgresql 数据库进行了完整备份。备份格式是 .sql(例如 pg_dumpall.exe -U postgres > D:\Backup\fullbkp.sql)现在我的一个数据库崩溃了,我想提取这个文件来获取该数据库备份仅用于恢复。 我进行了很多搜索,但找不到任何解压缩方法,以便我可以从完整备份文件中获取该特定数据库。 请推荐!!!! 问候 萨达姆

【问题讨论】:

    标签: postgresql backup restore pg-dumpall


    【解决方案1】:

    此类备份未压缩。此外,它包含集群中所有数据库的备份,没有简单的方法可以提取单个数据库。

    使用initdb 创建一个新的 PostgreSQL 集群,使用psql 恢复那里的转储,然后使用pg_dump 提取您需要的单个数据库。

    【讨论】:

    • 感谢 Laurenz,但有没有办法从 powershell 获取 sql.gz 格式的完整 postgres 备份。
    • 您必须采用“纯格式”转储 (-F p) 并将其通过 gzip 传输。但我建议您采用“自定义格式”转储 (-F c),它会自动压缩并可以使用 pg_restore 恢复。唯一的缺点是您只能以这种方式转储单个数据库; pg_dumpall 没有自定义格式。
    • 这对我来说非常困难,因为数据库列表很大,如果我一个一个备份,它会杀死我一整天。我需要任何替代方法来进行完整备份,无论它是压缩格式还是 .tar、.gz 格式都没有关系,这样我可以在任何特定数据库发生任何事情时恢复。
    • 无法对整个集群进行备份,以便您可以从中恢复单个数据库。要么自动执行该过程,要么按照我在回答中的建议:恢复整个集群,然后从中提取数据库。
    • 我觉得有一些误解,我想像我们在 linux 中使用 pg_dumpall -U postgres | 那样进行全集群备份gzip >/home/fullbkp.sql.gz 如果发现任何数据库损坏,我们手动提取备份文件,然后选择损坏数据库的备份进行恢复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2010-10-28
    • 1970-01-01
    相关资源
    最近更新 更多