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

磐维数据库gs_probackup物理备份

Z·A·Q 2024-10-28
492

1.概述

  • 数据库备份对于日常运维至关重要,随着业务系统数据库规模日益庞大,通过备份恢复工具可以高效、安全、便利的管理数据库日常备份恢复,有效提升运维效率。
  • 本文档主要介绍PanweiDB数据库的物理备份方案

2.环境

  • 1)软件版本
类别 版本
PanWeiDB 2.0.0
  • 2)操作系统用户
用户名 家目录 用途
omm /home/omm 备份恢复使用用户
  • 3)文件存放规划
序号 文件系统 用途
1 /archive 存放归档文件
2 /backup 数据备份目录

3.gs_probackup介绍

3.1 总述
  • gs_probackup是一个用于管理数据库备份和恢复的工具。它对数据库实例进行定期备份,以便在数据库出现故障时能够恢复服务器。
    • 可用于备份单机数据库,也可对主机或者主节点数据库备机进行备份,为物理备份。
    • 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump文件等。
    • 支持增量备份、定期备份和远程备份。
    • 可设置备份的留存策略。
3.2 gs_probackup使用前提
  • 可以正常连接数据库。
  • 若要使用PTRACK增量备份,需在postgresql.conf中手动添加参数“enable_cbm_tracking = on”。
  • 为了防止xlog在传输结束前被清理,请适当调高postgresql.conf文件中wal_keep_segments的值。
3.3 gs_probackup使用限制
  • 备份必须由运行数据库服务器的用户执行。
  • 备份和恢复的数据库服务器的主版本号必须相同。
  • 如果要通过ssh在远程模式下s备份数据库,需要在本地和远程主机安装相同主版本的数据库,并通过ssh-copy-id remote_user@remote_host命令设置本地主机备份用户和远程主机数据库用户的无密码ssh连接。
  • 远程模式下只能执行add-instance、backup、restore子命令。
  • 使用restore子命令前,应先停止gaussdb进程。
  • 当存在用户自定义表空间时,备份的时候要加上–external-dirs 参数,否则,该表空间不会被备份。
  • 当备份的规模比较大时,为了防止备份过程中timeout发生,请适当调整postgresql.conf文件的参数 session_timeout、wal_sender_timeout。并且在备份的命令行参数中适当调整参数–rw-timeout的值。
  • 恢复时,使用-T选项把备份中的外部目录重定向到新目录时,请同时指定参数–external-mapping。
  • 当使用远程备份时,请确保远程机器和备份机器的时钟同步,以防止使用–recovery-target-time恢复的场合,启动gaussdb时有可能会失败。
  • 当远程备份有效时(remote-proto=ssh),请确保-h和–remote-host指定的是同一台机器。当远程备份无效时,如果指定了-h选项,请确保-h指定的是本机地址或本机主机名。
  • 当前暂不支持备份逻辑复制槽

4.备份策略

  • 磐维数据库默认按照如下备份方案规划,根据不同系统重要程度和实际需求可以进行相应调整。
    • 每三天进行一次全备份;
    • 每两小时进行一次归档清理
    • 备份清理策略:保留3份完整的备份集,且保留3*3=9天,并清理十天前的归档;
4.1 备份前参数调整
  • 1)归档确认(全部节点)
使用omm用户登录主库确认归档是否开启
PanWeiDB=# show archive_mode;
 archive_mode 
--------------
 on
(1 row)
如主库归档未开启,通过如下方式登录主库开启归档
PanWeiDB=# alter system set archive_mode=on;
ALTER SYSTEM SET
PanWeiDB=#  show archive_mode;
 archive_mode 
--------------
 on
(1 row)
  • 2)设置归档路径(主节点配置)
PanWeiDB=# alter system set archive_dest = '/archive' ;
ALTER SYSTEM SET
PanWeiDB=# show  archive_dest;
    archive_dest    
--------------------
 /archive
(1 row)
  • 3)wal_sender_timeout 参数检查(全部节点)
确认wal_sender_timeout该参数的值为10s
PanWeiDB=# show wal_sender_timeout ;
 wal_sender_timeout 
--------------------
 10s
(1 row)
如设置的值不为10s,可通过一下方式调整该参数的值
PanWeiDB=# alter system set wal_sender_timeout = '10s' ;
ALTER SYSTEM SET
PanWeiDB=# show wal_sender_timeout ;
 wal_sender_timeout 
--------------------
 10s
(1 row)
  • 4)omm用户session超时设置(主节点配置)
关闭omm用户的session超时参数,设置如下:
PanWeiDB=# alter user omm set session_timeout to 0;
ALTER ROLE
4.2 备份实施
  • 1)初始化备份路径(全部节点)
gs_probackup init -B /backup/probackup 

# 创建备份日志目录
mkdir /backup/probackup/log/
  • 2)创建备份实例(全部节点)
gs_probackup add-instance -B /backup/probackup --instance=panweidb -D /database/panweidb/data -p 17700 --retention-redundancy=3 --retention-window=0
  • 3)配置备份定时任务(主节点)
  • 使用omm用户配置crontab定时任务,增加如下两条定时备份任务:
    • 每三天00:30:00执行数据库全备份,备份成功后删除过期全备份。
    • 每天0:10:00 删除ERROR状态的备份
crontab -e
30 00 */3 * * source /home/omm/.bashrc;gs_probackup backup --backup-path=/backup/probackup --instance=panweidb --backup-mode=full --delete-expired --pgdatabase=postgres  >> /backup/probackup/log/backup_$(date +\%Y\%m\%d).log 2>&1 &
10 00 */4 * * source /home/omm/.bashrc; gs_probackup delete -B  /backup/probackup/ --status=ERROR --instance=panweidb > /dev/null 2>&1 &
  • 备份任务参数说明如下:
--instance              创建备份服务时定义的备份服务实例名
--backup-mode         备份模式
--delete-expired        根据设置的备份策略删除过期的备份集
--pguser                备份使用的数据库用户
--pgdatabase           备份使用的数据库名称
4.3 配置归档清理任务
  • 全部节点执行
  • 使用omm用户配置crontab定时任务,增加如下清理任务(根据实际需求进行调整,此次用例清理策略如下)
    • 每两小时删除十天前的归档
0 */2 * * * sh /home/omm/move_and_clear_archive.sh 9 
  • 备份归档的脚本如下:
#!/bin/bash
fnum=$1
echo "begin to clear archive log..."
find /archive -mtime +${fnum} -type f -name "0000*" | xargs rm -f
echo "archive files clean successfully"
最后修改时间:2024-10-28 18:43:24
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论