前言

最近有个BRETT的任务,需要使用pg_dumppg_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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐