点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
磐维数据库备份说明
逻辑备份与恢复 物理备份与恢复 闪回恢复
本文主要讲解磐维数据库使用gs_probackup进行物理备份与恢复。
打开相关配置参数
postgres=# show archive_mode;
postgres=#alter system set archive_mode=on;
ALTER SYSTEM SET
postgres=#show archive_mode;
archive_mode
--------------
on
(1 row)
gs_guc reload -N all -I all -c "archive_mode=on"
postgres=#alter system set archive_dest = '/data/shsnc/panweidb/archive';
ALTER SYSTEM SET
postgres=#
postgres=#show archive_dest;
archive_dest
------------------------------
/data/shsnc/panweidb/archive
(1 row)
#gs_guc reload -N all -I all -c "archive_dest = '/data/shsnc/panweidb/archive'"
gs_guc reload -N all -I all -c "archive_dest = '/data/shsnc/archive'"
postgres=# show wal_sender_timeout;
wal_sender_timeout
--------------------
6s
postgres=# alter system set wal_sender_timeout = '10s';
ALTER SYSTEM SET
postgres=# show wal_sender_timeout;
wal_sender_timeout
--------------------
10s
(1 row)
gs_guc修改:
gs_guc reload -N all -I all -c "wal_sender_timeout = '10s'"
gs_guc reload -N all -I all -c "wal_sender_timeout = '10s'"
PanWeiDB=#alter user omm set session_timeout to 0;
ALTER ROLE
gs_guc reload -N all -I all -c "session_timeout=0"
物理备份
[root@node1 dbops-installer]#mkdir /data/backup/
[root@node1 dbops-installer]#chown -R omm.dbgrp /data/backup/
gs_probackup init -B data/backup/probackup
mkdir data/backup/probackup/log
gs_probackup add-instance -B backup-path -D pgdata-path --instance instance_name
或者
gs_probackup add-instance -B /data/backup/probackup --instance=pwdb-ajgl -D /data/shsnc/panweidb/data -p 17700 --
retention-redundancy=10
--instance 创建备份服务时定义的备份服务实例名; --backup-mode 备份模式; --pguser 备份使用的数据库用户; --pgdatabase 备份使用的数据库名称(指定要连接的数据库名称); --retention-redundancy 指定在数据目录中留存的完整备份数。必须为正整数。0表示禁用此设置。
gs_probackup backup --backup-path=/data/backup/probackup --
instance=pwdb-ajgl --backup-mode=full --delete-expired --
pgdatabase=postgres > /data/backup/probackup/log/backup_week$(date +\%u).log
gs_probackup backup --backup-path=/data/backup/probackup --
instance=pwdb-ajgl --backup-mode=full --delete-expired --pgdatabase=postgres
--delete-expired 根据设置的备份策略删除过期的备份集
[omm@node1 probackup]$ ll /data/backup/probackup/backups/pwdb-ajgl/
-rw------- 1 omm dbgrp 190 Jan 18 19:06 pg_probackup.conf #配置文件
drwx------ 3 omm dbgrp 4.0K Jan 18 19:06 S7GEV5 #backup_id
drwx------ 3 omm dbgrp 4.0K Jan 18 19:31 S7GG08 #backup_id
gs_probackup show-config -B /data/backup/probackup/ --instance=pwdb-ajgl --format=plain
gs_probackup show -B /data/backup/probackup/ --instance=pwdb-ajgl
==========================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Type Status
==========================================================================================================================================
pwdb-ajgl 9.2 S7GG08 2024-01-18 19:31:25+08 FULL STREAM 1/0 11s 693MB 16MB 1.00 0/12000028 0/120001E8 FILE OK
pwdb-ajgl 9.2 S7GEV5 2024-01-18 19:06:47+08 FULL STREAM 1/0 14s 693MB 16MB 1.00 0/10000028 0/100001E8 FILE OK
模拟数据丢失
gsql -d postgres -p 5432
postgres=# \c chg1;
chg1=# delete from t2;
DELETE 6
数据恢复
cm_ctl stop
mv /data/shsnc/panweidb/data /data/shsnc/panweidb/data-bak
#gs_probackup restore -B backup-path --instance instance_name -D pgdata-path -i backup_id
gs_probackup restore -B /data/backup/probackup/ --instance pwdb-ajgl -D /data/shsnc/panweidb/data -i S7GG08
#pw_ctl start -D /data/shsnc/panweidb/data
gs_om -t start
gs_om -t status --detail
gsql -d chg1 -p 17700 -r
chg1=# select * from t2;
id
------
1001
1002
1003
1001
1002
1003
(6 rows)
chg1=#

本文作者:事业二部(上海新炬中北团队)
本文来源:“IT那活儿”公众号





