这是我第一次涉足 PostgreSQL 备份(数据库转储),我一直在研究不同的 pgdump 格式、其他 pgdump 选项和 pgdumpall。对于希望每小时转储(将覆盖以前的转储)两个数据库(每个数据库中包含表触发器和两个不同模式)的 Postgres 初学者来说,可以轻松实现以下目标的备份格式和选项是什么:
- 文件较小(每个数据库一个文件或能够选择要恢复的数据库)
- 易于恢复为干净的数据库(有或没有相同的数据库名称[s])
- 易于在不同的服务器上恢复(用户可能不同)
- 触发器在恢复时被禁用并在恢复后重新启用。
包括用于备份和恢复的示例命令。
欢迎任何其他有用的 pgdump/pgrestore 建议。
最佳答案
此命令将创建一个小的 dmp 文件,其中仅包含数据库的结构 - 表格、列、触发器、 View 等。(此命令只需要几分钟)
pg_dump -U "dbuser" -h "host" -p "port" -F c -b -v -f ob_`date +%Y%m%d`.dmp dbname
**ex:** pg_dump -U thames -h localhost -p 5432 -F c -b -v -f ob_`date +%Y%m%d`.dmp dbname
此命令将备份完整的数据库
pg_dump -h localhost -U "dbuser" "dbname" -Fc > "pathfilename.backup"
**ex:** pg_dump -h localhost -U thames thamesdb - Fc > "thamesdb.backup"
对于恢复,您可以使用:
pg_restore -i -h localhost -U "user" -d "dbname" -v "dbname.backup"
**ex:** pg_restore -i -h localhost -U thames -d thamesdb -v "thamesdb.backup"
备份选定的表格(使用正则表达式)here
pg_dump -t '(A|B|C)'
有关详细信息,您可以访问 pgdump帮助页面有很多选项
关于postgresql - 哪种 pgdump 格式最适合小存储和快速恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20234359/