1.19. 使用数据库转储和恢复进行故障排除
在生产环境中,定期备份您的 PostgreSQL 数据库作为数据库管理任务。备份也可用于调试多集群全局 hub。
1.19.1. 转储用于 dubugging 的数据库输出 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
有时,您需要转储 multicluster global hub 数据库中的输出来调试问题。PostgreSQL 数据库提供 pg_dump 命令行工具来转储数据库的内容。要从 localhost 数据库服务器转储数据,请运行以下命令:
pg_dump hoh > hoh.sql
pg_dump hoh > hoh.sql
要转储位于带有压缩格式的远程服务器中的多集群全局 hub 数据库,请使用命令行选项来控制连接详情,如下例所示:
pg_dump -h my.host.com -p 5432 -U postgres -F t hoh -f hoh-$(date +%d-%m-%y_%H-%M).tar
pg_dump -h my.host.com -p 5432 -U postgres -F t hoh -f hoh-$(date +%d-%m-%y_%H-%M).tar
1.19.2. 从转储中恢复数据库 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要恢复 PostgreSQL 数据库,您可以使用 psql 或 pg_restore 命令行工具。psql 工具用于恢复 pg_dump 创建的纯文本文件:
psql -h another.host.com -p 5432 -U postgres -d hoh < hoh.sql
psql -h another.host.com -p 5432 -U postgres -d hoh < hoh.sql
pg_restore 工具用于通过一个非纯文本格式(custom、tar 或 目录)从 pg_dump 创建的存档中恢复 PostgreSQL 数据库:
pg_restore -h another.host.com -p 5432 -U postgres -d hoh hoh-$(date +%d-%m-%y_%H-%M).tar
pg_restore -h another.host.com -p 5432 -U postgres -d hoh hoh-$(date +%d-%m-%y_%H-%M).tar