如何在Windows7中备份和恢复PostgreSQL数据库?

20

我对Postgres数据库还不熟悉。我需要从生产服务器(pgAdmin版本为9.2.4)获取备份并将其恢复到我的本地机器上(我有pgAdmin版本9.4)。我尝试通过右键单击数据库->备份来获取备份文件。如下图所示:

enter image description here

但是当我尝试还原备份文件时,出现了许多错误。

我还想知道在两个系统上有不同的端口是否也会在还原备份时创建问题。当我尝试还原同一系统的备份时没有问题。


4
个人认为直接使用命令行工具(http://www.postgresql.org/docs/current/static/reference-client.html)比使用我觉得非常混乱的pgAdmin UI容易得多。顺便说一下:“pgAdmin 9.4版本”并不存在,版本号应该是Postgres的9.4。 - user330315
1
你遇到了什么样的错误? - Pusker György
3个回答

47

备份数据库,您可以使用pg_dump.exe

  1. 打开 Powershell

  2. 进入 Postgres bin 文件夹。例如:

cd "C:\Program Files\PostgreSQL\9.6\bin"
  • 输入转储数据库的命令。例如:

    ./pg_dump.exe -U postgres -d my_database_name -f D:\Backup\<backup-file-name>.sql
    
  • 输入密码以使用您的Postgres用户

  • 要还原数据库,可以使用psql.exe(请注意,以下内容摘自已删除但对我来说原因不明的Alexandr Omelchenko有用的答案。)

    1. 打开PowerShell

    2. 转到Postgres的bin文件夹。例如:

      cd "C:\ProgramFiles\PostgreSQL\9.6\bin"
      
    3. 输入命令以恢复您的数据库。例如:

      ./psql.exe -U postgres -d my_database_name -f D:\Backup\<backup-file-name>.sql
      
    4. 为您的 Postgres 用户输入密码


    1
    你可以通过设置PGPASSWORD变量来提供密码。 SET PGPASSWORD=mypassword - Max

    3
    我在创建数据库转储文件时遇到版本不匹配的问题,无法继续。因此,我按照以下命令进行备份和恢复。"最初的回答"
    pg_dump -h localhost -U postgres -p 5432 YourDbName > BackupFileName.dump
    

    0

    作为替代方案,您可以尝试下面的 cmd 代码。如果您在使用 pgAdmin4 进行恢复时遇到问题,您可以尝试这个方法。 首先,您应该找到 pg_restore.exe 的路径。它通常在

    C:\Program Files\PostgreSQL\12\bin>

    更改数据库名称和备份路径后,运行以下代码:

    pg_restore.exe --verbose --clean -U "postgres" --dbname databaseName c:\database.backup
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接