磐维数据库,简称"PanWeiDB"。是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。其产品内核能力基于openGauss开源软件,并进一步提升了系统稳定性及多种数据库兼容性。
备份策略
磐维数据库默认按照如下备份方案规划,根据不同系统重要程度和实际需求可以进行相应调整。
Ø 每周一进行一次全备份;
Ø 每周二至周日进行增量备份;
Ø 每天进行一次归档清理
Ø 备份清理策略:保留2份完整的备份集,共计保留2*7=14天,并清理14天前的归档;
注意:
1)如果需要进行增量备份,请在数据库备份之前将enable_cbm_tracking参数打开
备份前准备
操作步骤
1、创建备份用户
create user buckuser identified by "xxxxxxxx";
alter user buckuser sysadmin;
2、使用omm用户登录数据库开启wal日志归档,设置wal日志归档
前期准备
1)备份机(10.xx.xx.199一般选用gtm的主)创建备份目录backup,用于存放基础备份wal日志归档
cd /backup
mkdir gtm_wal dn1_wal dn2_wal dn3_wal
#需要在各DN所在节点创建对应的/backup目录并且赋权
chown -R omm: /backup
chmow -R 755 /bakcup
2)数据库开启wal日志归档,设置wal日志归档
gs_guc reload -N all -I all -Z datanode -c "archive_mode=on"
gs_guc reload -N all -I all -Z gtm -c "archive_mode=on"
gs_guc reload -N all -I all -Z datanode -c "enable_cbm_tracking=on"
gs_guc reload -N all -I all -Z gtm -c "enable_cbm_tracking=on"
ha_ctl set gtm gtm1 -p archive_command="'scp %p 10.xx.xx.199:/backup/gtm_wal/%f'" -c panwei -l http://10.xx.xx.199:2379
ha_ctl set datanode dn1_1 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn1_wal/%f'" -c panwei -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
ha_ctl set datanode dn1_2 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn1_wal/%f'" -c panwei -l http://10.xx.xx.199:2379
ha_ctl set datanode dn1_3 -p archive_command="'scp %p 10.xx.xx.199:backup/dn1_wal/%f'" -c panwei -l http://10.xx.xx.199:2379
ha_ctl set datanode dn2_1 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn2_wal/%f'" -c panwei -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
ha_ctl set datanode dn2_2 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn2_wal/%f'" -c panwei -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
ha_ctl set datanode dn2_3 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn2_wal/%f'" -c panwei -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
ha_ctl set datanode dn3_1 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn3_wal/%f'" -c panwei -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
ha_ctl set datanode dn3_2 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn3_wal/%f'" -c panwei -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
ha_ctl set datanode dn3_3 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn3_wal/%f'" -c panwei -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
3、创建备份配置文件
vi /backup/backup.yaml (每层级别有4个空格,严格进行缩进)
gtm:
backup_host: gtm_primary_ip
backup_dir: /backup/gtm
tbs_dir: /backup/gtm_wal
datanode:
- dn1:
backup_host: dn1_primary_ip
backup_dir: /backup/dn1
tbs_dir: /backup/dn1_wal
- dn2:
backup_host: dn2_primary_ip
backup_dir: /backup/dn2
tbs_dir: /backup/dn2_wal
- dn3:
backup_host: dn3_primary_ip
backup_dir: /backup/dn3
tbs_dir: /backup/dn3_wal
备份策略部署
配置备份定时任务
使用omm用户配置crontab定时任务,增加如下两条定时备份任务:
- 每周一,00:30:00执行数据库全备份,备份成功后删除过期全备份。
- 每周二到周日00:30:00执行数据库增量备份。
- 每天删除2*7天前的归档。
- 编写完backup.yaml文件必须进行一次全量备份
保留备份周期(一次全备加N个增备到下一次全备代表一个完整的周期,需要先进行全量备份才可以设置set-config):
ha_ctl backup set-config -a '--retention-redundancy=2' -l [http://10](http://10).xx.xx.199:2379 -p /backup
查看备份参数:
ha_ctl backup show-config -l [http://10](http://10).xx.xx.199:2379 -p /backup
执行删除单个备份:
ha_ctl backup delete -a '-i 备份id' -p /backup -l [http://10.xx.xx.199:2379](http://10.xx.xx.199:2379)
定时任务,需要再备份10.xx.xx.199机器上添加
crontab -e
30 0 * * 1 source /home/omm/.bashrc;ha_ctl backup all -a '--delete-expired' -p /backup -c panwei -U buckuser -W 'xxxxxx' -l http://10.xx.xx.199:2379 &
30 0 * * 2-7 source /home/omm/.bashrc;ha_ctl backup all -a '-b PTRACK --delete-expired' -p /backup -c panwei -U buckuser -W 'xxxxxx' -l http://10.xx.xx.199:2379 &
0 */2 * * * sh /home/omm/move_and_clear_archive.sh 14
– 查看备份集状态
ha_ctl backup show -p /backup -l http://10.xx.xx.199:2379
全量备份成功

增量备份成功

查看备份集状态

备份归档的脚本如下:
vi /home/omm/move_and_clear_archive.sh
#!/bin/bash
fnum=$1
echo "begin to clear archive log..."
find /backup/gtm_wal -mtime +${fnum} -type f -name "0000*" | xargs rm -f
find /backup/dn1_wal -mtime +${fnum} -type f -name "0000*" | xargs rm -f
find /backup/dn2_wal -mtime +${fnum} -type f -name "0000*" | xargs rm -f
find /backup/dn3_wal -mtime +${fnum} -type f -name "0000*" | xargs rm -f
echo "archive files clean successfully"




