如何在PostgreSQL中通过cmd使用pg_restore命令还原.bak文件?

如何在PostgreSQL中通过cmd使用pg_restore命令还原.bak文件?,postgresql,timescaledb,pg-restore,Postgresql,Timescaledb,Pg Restore,我用pg_dump命令创建了一个test.bak文件,该文件有一个超表,我在postgreSQL中创建了一个新的数据库性能测试 已使用以下命令转储数据库: pg_dump-h localhost-U postgres-p 5432-Fc-f“D:\Database Backup\temp.bak”性能测试 我想在性能测试中恢复test.bak文件 我该怎么做?psql性能测试

我用pg_dump命令创建了一个test.bak文件,该文件有一个超表,我在postgreSQL中创建了一个新的数据库性能测试

已使用以下命令转储数据库:

pg_dump-h localhost-U postgres-p 5432-Fc-f“D:\Database Backup\temp.bak”性能测试

我想在性能测试中恢复test.bak文件

我该怎么做?

psql性能测试     psql Performance_Test < test.bak
psql性能测试
您可以通过执行以下操作恢复(并进一步说明注意事项):

警告是:

  • 如果使用引号将性能测试创建为混合大小写,则需要引用上面的名称,例如“性能测试”

  • 如果Performace_Test不是空的,那么您将得到一系列错误

  • 还假设Performance_测试与您在
    pg_dump
    命令中指定的集群位于同一集群上


  • 您可以执行以下操作恢复(并在后面进一步说明注意事项):

    警告是:

  • 如果使用引号将性能测试创建为混合大小写,则需要引用上面的名称,例如“性能测试”

  • 如果Performace_Test不是空的,那么您将得到一系列错误

  • 还假设Performance_测试与您在
    pg_dump
    命令中指定的集群位于同一集群上


  • 这取决于
    test.bak
    是如何创建的。那么您使用的命令是什么呢?我已经用命令创建了test.bak文件:pg_dump-h localhost-U postgres-p 5432-Fc-f“D:\Database Backup\temp.bak”Performace_test。@Akanksha:您应该在问题中添加这个细节,Timescale提供了如何恢复备份的说明:这取决于
    test.bak
    是如何创建的。那么您使用的命令是什么呢?我已经用命令创建了test.bak文件:pg_dump-h localhost-U postgres-p 5432-Fc-f“D:\Database Backup\temp.bak”Performace_test。@Akanksha:您应该在问题中添加这个细节,而不是注释。Timescale提供了如何恢复备份的说明:这将无法工作,因为转储文件是自定义格式的,需要
    pg\u restore
    。这将无法工作,因为转储文件是自定义格式的,需要
    pg\u restore
    。这给了我一个错误:pg\u restore:错误:输入文件似乎不是有效的存档。然后不是使用您发出的
    pg_dump
    命令创建
    temp.bak
    文件,就是该文件已损坏。你能打开这个文件看看它是不是纯文本转储吗?我又想到了一个问题,目录名中的空格可能有问题。尝试将文件从“数据库备份”复制/移动到名称中没有空格的目录。这会导致错误:pg_restore:错误:输入文件似乎不是有效的存档文件。然后,可能是不是使用您发出的
    pg_dump
    命令创建了
    temp.bak
    文件,或者该文件已损坏。你能打开这个文件看看它是不是纯文本转储吗?我又想到了一个问题,目录名中的空格可能有问题。尝试将文件从“数据库备份”复制/移动到名称中没有空格的目录。
    pg_restore -h localhost -d Performace_Test -U postgres -p 5432 "D:\Database Backup\temp.bak"