点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
数据库备份对于日常运维至关重要,随着业务系统数据库规模日益庞大,通过备份恢复工具可以高效、安全、便利的管理数据库日常备份恢复,有效提升运维效率。
一种是物理备份; 一种是逻辑备份。
本文档针对PanweiDB备份恢复工具使用方面进行详细说明,为PanweiDB数据库备份及恢复提供指导。
2.1 软件版本
2.2 操作系统用户
2.3 文件存放规划
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指定的是本机地址或本机主机名。 当前暂不支持备份逻辑复制槽。
3.4 备份策略
每三天进行一次全备份; 每两小时进行一次归档清理; 备份清理策略:保留3份完整的备份集,且保留3*3=9天,并清理十天前的归档。
注意:如果需要进行增量备份,请在数据库备份之前将enable_cbm_tracking参数打开。
4.1 归档确认(如果不一致后台私信确认)
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)# 设置归档路径:PANWEIDB=# alter system set archive_dest = '/data/archive' ;
ALTER SYSTEM SET
PANWEIDB=# show archive_dest;
archive_dest
--------------------
/data/archive
(1 row)
4.2 wal_sender_timeout 参数检查(如果不一致后台私信确认)
PanWeiDB=# show wal_sender_timeout ;
wal_sender_timeout
--------------------
10s
(1 row)
PanWeiDB=# alter system set wal_sender_timeout = '10s' ;
ALTER SYSTEM SET
PanWeiDB=# show wal_sender_timeout ;
wal_sender_timeout
--------------------
10s
(1 row)
4.3 omm用户session超时设置(主dn执行)
PanWeiDB=#alter user omm set session_timeout to 0;
ALTER ROLE
4.4 初始化备份路径(备1执行)
gs_probackup init -B /data/backup/probackup
[omm@sz2dmpob01-2 ~]$ gs_probackup init -B /data/backup/probackup
INFO: Backup catalog '/data/backup/probackup' successfully inited
# 创建备份日志目录
mkdir /data/backup/probackup/log/
[omm@sz2dmpob01-2 ~]$ mkdir /data/backup/probackup/log/ -p
创建备份实例(备1执行)
gs_probackup add-instance -B /data/backup/probackup --instance=panweidb -D
/data/panweidb/data -p 17700 --retention-redundancy=3 --retention-window=8
[omm@sz2dmpob01-2 ~]$ gs_probackup add-instance -B /data/backup/probackup
--instance=panweidb -D /data/panweidb/data -p 17700 --retention-redundancy=3
--retention-window=8
INFO: Instance 'panweidb' successfully inited
4.5 配置备份定时任务(备1执行)
每三天00:30:00执行数据库全备份,备份成功后删除过期全备份。 每两小时删除十天前的归档。
crontab -e
30 00 */3 * * source /home/omm/.bashrc;gs_probackup backup -
-backup-path=/data/backup/probackup --instance=panweidb -
backup-mode=full --delete-expired --pgdatabase=postgres >/data/backup/probackup/log/backup_week$(date +\%u).log 2>&1 &
0 */2 * * * sh /home/omm/move_and_clear_archive.sh 9
--instance 创建备份服务时定义的备份服务实例名; --backup-mode 备份模式; --delete-expired 根据设置的备份策略删除过期的备份集; --pguser 备份使用的数据库用户; --pgdatabase 备份使用的数据库名称。
#!/bin/bash
fnum=$1
echo "begin to clear archive log..."
find /data/archive -mtime +${fnum} -type f -name "0000*" | xargs rm -f
echo "archive files clean successfully"
[omm@sz2dmpob01-1 ~]$ ll -t /data/archive/ |tail -n 5
-rw-------1 omm dbgrp 16M Nov 20 03:11 000000010000000000000009
-rw-------1 omm dbgrp 16M Nov 19 20:11 000000010000000000000008
-rw-------1 omm dbgrp 16M Nov 19 14:11 000000010000000000000007
-rw-------1 omm dbgrp 16M Nov 19 07:11 000000010000000000000006
-rw-------1 omm dbgrp 16M Nov 19 01:11 000000010000000000000005
ll -t /data/archive/ |head -n 5
[omm@sz2dmpob01-1 ~]$ ll -t /data/archive/ |head -n 5
total 48G
-rw-------1 omm dbgrp 16M Nov 23 11:12 000000010000000B000000CE
-rw-------1 omm dbgrp 16M Nov 23 10:12 000000010000000B000000CD
-rw-------1 omm dbgrp 16M Nov 23 09:41 000000010000000B000000CC
-rw-------1 omm dbgrp 16M Nov 23 09:12 000000010000000B000000CB
sh /home/omm/move_and_clear_archive.sh 1
[omm@sz2dmpob01-1 ~]$ sh /home/omm/move_and_clear_archive.sh 1
begin to clear archive log...
archive files clean successfully
ll -t /data/archive/ |tail -n 5
[omm@sz2dmpob01-1 ~]$ ll -t /data/archive/ |tail -n 5
-rw------- 1 omm dbgrp 16M Nov 21 17:12 000000010000000B00000094
-rw------- 1 omm dbgrp 16M Nov 21 16:57 000000010000000B00000093
-rw------- 1 omm dbgrp 16M Nov 21 14:57 000000010000000B00000092
-rw------- 1 omm dbgrp 16M Nov 21 13:57 000000010000000B00000091
-rw------- 1 omm dbgrp 16M Nov 21 12:43 000000010000000B00000090
tail -f backup_week4.log
[omm@sz2dmpob01-2 log]$ tail -f backup_week4.log
[2023-11-23 11:25:24]: keepalive message is received
[2023-11-23 11:25:24]: keepalive message is received
[2023-11-23 11:25:29]: keepalive message is received
[2023-11-23 11:25:29]: keepalive message is received
[2023-11-23 11:25:34]: keepalive message is received
[2023-11-23 11:25:34]: keepalive message is received
[2023-11-23 11:25:39]: keepalive message is received
[2023-11-23 11:25:39]: keepalive message is received
[2023-11-23 11:25:44]: keepalive message is received
[2023-11-23 11:25:44]: keepalive message is received
[2023-11-23 11:25:49]: keepalive message is received
[2023-11-23 11:25:49]: keepalive message is received
[2023-11-23 11:25:54]: keepalive message is received
[2023-11-23 11:25:54]: keepalive message is received
[2023-11-23 11:25:59]: keepalive message is received
[2023-11-23 11:25:59]: keepalive message is received
[2023-11-23 11:26:04]: keepalive message is received
[2023-11-23 11:26:04]: keepalive message is received
[2023-11-23 11:26:09]: keepalive message is received
[omm@sz2dmpob01-2 log]$ gs_probackup show -B /data/backup/probackup --instance=panweidb
=========================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
=========================================================================================================================
panweidb 9.2 S4K462 ----FULL STREAM 1/0 2m:24s 38GB 0 1.00 B/CF2823E0 0/0 RUNNING

本文作者:李伟涛(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




