前言
最近有个BRETT
的任务,需要使用pg_dump
和pg_restore
来备份和恢复PROD的QLIK SENSE repository database
,目标版本postgress 9.6
(其实教程是通用的,无论9.6或者11 12 23).
逻辑备份一般用pg_dump
或者pg_dumpall
–pg_dumpall
将数据库集群全部逻辑转储到一个文件中。
–pg_dump
命令可以选择一个数据库或部分表进行备份。像我们的需求是备份指定的Qlik Sense QSR
数据库而不需要LOG数据库,则选择这个。
备份须知
pg_dump生成的备份文件可以是一个SQL脚本
文件或归档dump
文件。归档文件格式必须和pg_restore一起使用,因为是属于postgress的特殊封装。
参考命令
根据自身需求选择最佳模式最佳参数即可,以下参数仅供参考。
--整理
by zhengkai.blog.csdn.net
--备份SQL格式
pg_dump -h 192.168.2.1 -U postgress QSR > /backup/QSR_bak202106.sql
--备份DUMP格式,需要-Fc
pg_dump -Fc -h 192.168.2.1 -U postgress QSR >/backup/QSR_bak202106.dump
--备份表,用-t指定
pg_dump -t test_1 mydb>/backup/test_202106.sql
--备份某个模式所有表
pg_dump -t 'qlik.*' QSR> /backup/QSR_bak202106.sql
--备份某个模式emp开头表,排除一张表
pg_dump -t 'qlik.t*' -T qlik.test_1 QSR > /backup/QSR_bak202106.sql
--迁移,建库(大写的C是create建库模式)
pg_dump -h 192.168.2.1 -U mydbser mydb -Fc >/backup/QSR_bak202106.dump
pg_restore -h 192.168.2.1 -U postgres -C -d postgres /backup/QSR_bak202106.dump
--不迁移,本机直接恢复(小写的c是clean干净模式)
pg_restore -h 192.168.2.1 -U postgres -c -d postgres /backup/QSR_bak202106.dump
--迁移,不建库(使用template0)
createdb -T template0 QSR2
pg_restore -d QSR2 /backup/QSR_bak202106.dump
--快照备份与检查
lvcreate -s -n snap201210614 /backup/pglvc202106 -L 240M
lvs
错误解决
如果出现以下情况,很大概率是大小写 -C
和 -c
使用错误。
- 新库应该用
大写 -C
- 恢复到旧库应该用
小写 -c
后话
如果对于全站备份和恢复,建议使用最新教程而不是这份。
Qlik Sense Repository Back up and Restore
https://help.qlik.com/en-US/sense-admin/August2021/Subsystems/DeployAdministerQSE/Content/Sense_DeployAdminister/QSEoW/Deploy_QSEoW/Backing-up-a-site.htm
https://help.qlik.com/en-US/sense-admin/August2021/Subsystems/DeployAdministerQSE/Content/Sense_DeployAdminister/QSEoW/Deploy_QSEoW/Restoring-a-site.htm