如何解决pg_restore 运行时如何锁定数据库
在运行 pg_restore 时,我们会遇到一些其他程序的一些(意外)执行,导致恢复错误。
这是执行的命令:
pg_restore --clean --verbose --no-owner /home/postgres/backup/bkp --if-exists -j 7 -d restdb01 -p 5432
解决方法
pg_restore 的 PostgreSQL 文档没有提供此类功能的任何信息。
根据wiki postgresql 不支持数据库锁定。
我建议使用权限机制来防止任何连接到数据库的人被恢复:
- 创建一个新数据库。
- 将对该数据库的 CONNECT 权限授予 pg_restore 命令中使用的单个用户 (--username=db-admin)。
- 恢复。
- 向数据库添加所有必需的权限。
除非您有应用程序以超级用户身份连接到您的服务器,否则这将阻止应用程序读取或更改
,-
在
pg_hba.conf
中撤销数据库的连接权限或拒绝连接(请记住,默认情况下,PUBLIC
可以连接到数据库) -
使用
pg_terminate_backend
取消所有现有连接 -
以仍然可以连接到数据库的用户身份运行
pg_restore
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。