kingbase v8r6 数据库备份管理-逻辑备份
kingbase v8r6 数据库备份管理-逻辑备份
备份恢复知识点
1.1 文件类型:
物理备份:将数据库文件,通过sys_rman等命令打包备份
逻辑备份:通过sys_dump命令将数据逻辑导出生成sql/dmp文件
1.2 状态
冷备份:停止数据库相关服务,将数据库文件以cp,tar等方式备份
热备份:在数据库运行状态下,进行相关数据库备份,如逻辑备份
1.3 完整性
全量备份:将数据库相关数据或文件进行全部数据的备份
增量备份:在基于全量备份的基础上,将变化的增量数据进行备份
2.故障恢复
kingbase es数据库中,data目录下的子目录sys_xlog中存放着数据库变化的跟踪
操作日志,当数据库故障时,会根据相关日志,并调用响应的WAL日志(write ahead log预写日志
预写日志)进行修改.
平均恢复时间 MTTR(mean time to recover) 问题解决需要的时间
平均故障间隔时间 MBTF(mean time between failure) 问题发生的时间间隔
恢复时间目录 RTO(recovery time objective) 故障时间的最高可承受时间长
恢复点目录 RPO(recovery point object) 问题进行解决时,能容忍的数据丢失量
3.备份方式
3.1 copy命令
\h copy
导出表格式
\copy tab_name to '/xx/xx/xx.txt'
\copy tab_name to '/xx/xx/xx.csv' csv header
导出临时select结果数据
\copy (select * from tab_name) to '/xx/xx/xx.csv' csv
导入
\copy tab_name from '/xx/xx/xx.txt';
\copy tab_name from '/xx/xx/xx.csv' csv header; [或csv]
3.2 sys_dump命令
sys_dump --help 查看参数信息
-F 指定输入文件的格式
p 端口号
d 数据库
c 导出信息包含删除,重建的SQL
t 指导表的定义及数据
导出指定数据库
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.sql -Fp -dSAMPLES
导出数据库生成dump存档文件
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.dmp -Fc -dSAMPLES
导出数据库生成目录及文件结构
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.dir -Fd -dSAMPLES
导出生成tar存储文档
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.tar -Ft -dSAMPLES
导出生成SQL脚本,包含对象删除,创建使用的sql
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.sql -Fp -c -dSAMPLES (小写c)
导出成sql脚本,包含创建数据库的sql
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.sql -Fp -C -dSAMPLES (大写C)
导出成sql脚本,包含删除,创建的sql
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.sql -Fp -Cc -dSAMPLES
并发操作导出数据库
sys_dump -USYSTEM -Wpassword -f /xx/xx/xx.dir -Fd -dSAMPLES -j 4
查看导出的dmp文件
sys_restore -l /xx/xx/xx.dmp
导出数据库SAMLES中的scott模式
导出指定模式
sys_dump -USYSTEM -W12345 -f /xx/xx/xx.sql -Fp -dSAMPLES -nscott;
sys_dump -USYSTEM -W12345 -f /xx/xx/xx.dmp -Fc -dSAMPLES -nscott;
导出模式定义
sys_dump -USYSTEM -W12345 -f /xx/xx/xx.sql -Fp -dSAMPLES -nscott -s;
导出指定数据库下除scott之外的模式
sys_dump -USYSTEM -W12345 -f /xx/xx/xx.sql -Fp -dSAMPLES -Nscott; (大写N)
导出匹配的所有表,如模式scott中名称后缀1的表
sys_dump -USYSTEM -W12345 -f /xx/xx/xx.sql -Fp -dSAMPLES -t'scott'.*1;
导出不包含匹配的所有表,如指定排除表dept2
sys_dump -USYSTEM -W12345 -f /xx/xx/xx.sql -Fp -dSAMPLES -nscott -T'scott.dept2';
3.3 sys_dumpall命令
sys_dumpall --help
用于将一个数据库集簇导出到sql格式的脚本中,不支持sys_restore还原,不支持并行
不建议用于每天全备
导出全局对象
sys_dumpall -USYSTEM -Wpassword -g -f /xx/xx/xx.sql
导出角色信息
sys_dumpall -USYSTEM -Wpassword -r -f /xx/xx/xx.sql
cat /xx/xx/xx.sql |grep -v ^$; 查看导出内容
导出模式定义信息
sys_dumpall -USYSTEM -Wpassword -s -f /xx/xx/xx.sql
导出表空间信息
sys_dumpall -USYSTEM -Wpassword -t -f /xx/xx/xx.sql
3.4 一致性备份恢复
检查hash值
create table t01(id int,data int);
insert into t01 select generate_series(1,100),random();
select sum(hashtext(t01.*::text)) from t01;
备份数据库,不含表空间的ddl
sys_dump -USYSTEM -Wkingbase -f /home/kingbase/test_full01.sql -Fp -dTEST
-C --no-tablespace
切换库samples,删除test库
恢复test库
ksql -USYSTEM -Wkingbase -f /home/kingbase/test_full01.sql -dSAMPLES
-L ./test_full01.log
检查数据的hash值
select sum(hashtext(t01.*::text)) from t01;
3.5 恢复方式
3.1.ksql命令
ksql --help
c 执行sql命令
f 执行文件中的命令
L 输入信息到日志文件
示例 输入相关信息
ksql -USYSTEM -Wkingbase -dTEST -c 'select now();'
ksql -USYSTEM -Wkingbase -dTEST -L /home/kingbase/test01.lgo -l
3.2 sys_restore命令
sys_restore --help
该命令将从sys_dump生成的备份中还原数据库相关信息
3.6 表级恢复
ksql -USYSTEM -Wkingbase SAMPLES -f /home/kingbase/asm_scott01.sql
sys_restore调用进行表恢复
示例:备份表
sys_dump -USYSTEM -Wkingbase -f /home/kingbase/scott_dept.dmp -Fc -dSAMPLES -t'scott.dept'
删除指定表
drop table scott.dept;
恢复表
sys_restore -USYSTEM -Wkingbase -dSAMPLES /home/kingbase/scott_dept.dmp
指定数据库dump备份还原对应的表示例 表dept1,emp1
sys_restore -USYSTEM -Wkingbase -dSAMPLES -nscott -tdept1 -temp1
/home/kingbase/asm_scott02.dmp
3.7 模式级恢复
3.7.1 使用ksql调用sql脚本恢复
ksql -USYSTEM -Wkingbase SAMPLES -f /home/kingbase/asm_scott01.sql
3.7.2 使用sys_restore调用进行模式恢复
sys_restore -USYSTEM -Wpassowrd -ddb_name /xx/xx/xx.dmp
还原对应的模式到新的数据库下 如scott模式下,还原到d01库下
sys_restore -USYSTEM -Wkingbase -dd01 /home/kingbase/asm_scott02.dmp
数据库dmp备份还原到对应的模式下
sys_restore -USYSTEM -Wkingbase -dSAMPLES -nscott /home/kingbase/sam_full02.dmp
3.8 数据库级恢复
3.8.1 sys_restore进行表恢复
库级恢复,恢复之前需要创建库名
create database samples owner system;
ksql -USYSTEM -Wkingbase SAMPLES -f /home/kingbase/sam_full01.sql
4 备份计划任务
crontab -l 查看
crontab -e 编辑内容
sys_rman备份
1. 确认配置了归档
show wal_level;
show archive_mode;
show archive_dest;
2.初始化数据库
sys_rman init -U system -W 123456 -d test -B /xx/xx/backup -D /xx/xx/data
3. 全量备份
sys_rman backup -b full -U system -W 123456 -p 54321 -d test -B /xx/xx/backup -D /xx/xx/data
4. 逻辑备份
sys_dump -Usystem -W123455 -Fp -f /xx/xx/test.sql test
5.增量备份
sys_rman backup -b page -U system -W 123456 -p 54321 -d test -B /xx/xx/backup -D /xx/xx/data
6.查看备份信息
sys_rman show -B /xx/xx/backup
7.手动清理备份
sys_rman delete id号 -B /xx/xx/backup
8. 删除14天后的备份
sys_rman retention purge --window 14 -B /xx/xx/backup
9. 恢复到一个新的Data目录
sys_rman restore -B /xx/xx/backup -D /xx/xx/data2
10 指定时间点恢复
sys_rman restore -B /xx/xx/backup -D /xx/xx/data3 --time 'yyyy-mm-dd hh:mi:ss'
11 恢复到指定备份集
查看:sys_rman show -B /xx/xx/backup
sys_rman restore ID -B /xx/xx/backup -D /xx/xx/data4
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)