Postgresql pg_restore运行时如何锁定数据库

Postgresql pg_restore运行时如何锁定数据库,postgresql,psql,pg-restore,backup-sqldatabase,Postgresql,Psql,Pg Restore,Backup Sqldatabase,在运行pg_restore时,我们会遇到来自其他一些程序的一些(意外)执行,从而导致还原错误 是否有办法在恢复时锁定数据库,以确保不进行任何修改 这是执行的命令: pg_restore --clean --verbose --no-owner /home/postgres/backup/bkp --if-exists -j 7 -d restdb01 -p 5432 的PostgreSQL文档不提供此类功能的任何信息 根据postgresql,它不支持数据库锁定 我建议使用权限机制防止任何连接

在运行pg_restore时,我们会遇到来自其他一些程序的一些(意外)执行,从而导致还原错误

是否有办法在恢复时锁定数据库,以确保不进行任何修改

这是执行的命令:

pg_restore --clean --verbose --no-owner /home/postgres/backup/bkp --if-exists -j 7 -d restdb01 -p 5432

的PostgreSQL文档不提供此类功能的任何信息

根据postgresql,它不支持数据库锁定

我建议使用权限机制防止任何连接到数据库的人被还原:

  • 创建一个新的数据库
  • 将该数据库的连接权限授予pg_restore命令中使用的单个用户(--username=db admin)
  • 恢复
  • 向数据库添加所有必需的权限

  • 除非您的应用程序作为超级用户连接到服务器,否则将阻止应用程序读取或更改的PostgreSQL文档不提供此类功能的任何信息

    根据postgresql,它不支持数据库锁定

    我建议使用权限机制防止任何连接到数据库的人被还原:

  • 创建一个新的数据库
  • 将该数据库的连接权限授予pg_restore命令中使用的单个用户(--username=db admin)
  • 恢复
  • 向数据库添加所有必需的权限
  • 除非您的应用程序以超级用户身份连接到服务器,否则将阻止应用程序读取或更改
  • 从数据库撤消连接权限或拒绝
    pg_hba.conf
    中的连接(请记住,默认情况下,
    PUBLIC
    可以连接到数据库)

  • 使用
    pg\u terminate\u backend
    取消所有现有连接

  • 以仍然可以连接到数据库的用户身份运行
    pg_restore

      • 从数据库撤消连接权限或拒绝
        pg_hba.conf
        中的连接(请记住,默认情况下,
        PUBLIC
        可以连接到数据库)

      • 使用
        pg\u terminate\u backend
        取消所有现有连接

      • 以仍然可以连接到数据库的用户身份运行
        pg_restore