暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

磐维分布式备份部署方案

申霄楠 2024-09-13
315

磐维数据库,简称"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

全量备份成功
image.png
增量备份成功
image.png
查看备份集状态
image.png
备份归档的脚本如下:

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"
最后修改时间:2024-09-16 14:11:25
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论