如何备份和恢复 PostgreSQL 实例,包括角色权限?

如何备份和恢复 PostgreSQL 实例,包括角色权限?

我尝试了网上的很多教程,但它们往往省略了实际的恢复命令,或者将角色权限重置为零,或者使用纯 SQL 备份,导致任何剩余数据出现错误(非幂等)。我不知道该怎么办。

100% 备份和恢复 PostgreSQL 实例的一些有效语法是什么?

答案1

最常见的方式 - 简单,不需要文件系统访问,但对于大型数据库来说太慢了:

备份:pg_dumpall > backup.sql

恢复:psql -f backup.sql

对于更大的数据库,您可能需要使用快照方法(例如使用 LVM、ZFS、BTRFS),然后将快照的内容打包成 tar。

答案2

$ pg_dumpall --clean -U <user> -f backup.sql
$ psql -U <user> -f backup.sql

警告:

  • 用户必须具有 PostgreSQL 实例的管理权限。
  • pg_dump相比之下,忽略特权pg_dumpall
  • 如果您忘记了--clean,那么 .SQL 脚本将与数据库中当前的任何剩余内容发生冲突。

相关内容