相关参数
enable_cbm_tracking
参数说明: 当使用roach执行数据库实例的全量和增量备份时需要开启此参数,如果关闭会导致备份失败。
wal_level
参数说明: 设置写入WAL信息量的级别。
minimal
优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。
缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。
archive
这个参数增加了WAL归档需要的日志信息,从而可以支持数据库的归档恢复。
hot_standby
这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。
为了在备机上开启只读查询,wal_level必须在主机上设置成hot_standby ,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能只有微小的差异,如果它们的设置对产品的性能影响有明显差异,欢迎反馈。
logical
这个参数表示WAL日志支持逻辑复制。
archive_mode
参数说明: 表示是否进行归档操作。
archive_command
参数说明: 由管理员设置的用于归档WAL日志的命令,建议归档路径为绝对路径。
如:archive_command = ‘cp --remove-destination %p /mnt/server/archivedir/%f’
archive_dest
参数说明: 由管理员设置的用于归档WAL日志的目录,建议归档路径为绝对路径。
wal_keep_segments
参数说明: wal文件保留数量,每个文件16MB,增大此值,在重做备库过程中可有效避免wal被移除的错误
设置并验正参数
gsql -r -c "alter system set enable_cbm_tracking=on;"
gsql -r -c "alter system set archive_mode=on;"
gsql -r -c "alter system set archive_dest='/opt/panweidb/archive';"
gsql -r -c "select name,setting from pg_catalog.pg_settings where name in ( 'enable_cbm_tracking', 'wal_level', 'archive_mode', 'archive_command', 'archive_dest');"
准备测试数据
gsql -c "create database orcl"
gsql -d orcl -c "create table emp(empno int,ename varchar2(10),created date default sysdate);"
初始化备份目录
gs_probackup init -B /opt/panweidb/backup_data/
在备份集添加实例
gs_probackup add-instance --instance bak_stone -B /opt/panweidb/backup_data/
备份
执行一次全备
gs_probackup backup -B /opt/panweidb/backup_data/ --instance bak_stone -b full
参数说明
FULL:创建全量备份,全量备份包含所有数据文件。
PTRACK:创建PTRACK增量备份。
查看备份信息
gs_probackup show -B /opt/panweidb/backup_data/
BACKUP INSTANCE 'bak_stone'
========================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Type Status
========================================================================================================================================
bak_stone 9.2 SOUJO0 2024-12-21 21:48:18+08 FULL STREAM 1/0 24s 693MB 16MB 1.00 0/8000028 0/80001E8 FILE OK
进行增量备份
添加增量数据1
gsql -d orcl -c "insert into emp values(7369,'SMITH');"
增量备份1 (-b PTRACK)
gs_probackup backup -B /opt/panweidb/backup_data/ --instance bak_stone -b PTRACK
添加增量数据2
gsql -d orcl -c "insert into emp values(7369,'ALLEN');"
增量备份2 (-b PTRACK)
gs_probackup backup -B /opt/panweidb/backup_data/ --instance bak_stone -b PTRACK
查看增量备份信息
gs_probackup show -B /opt/panweidb/backup_data/
BACKUP INSTANCE 'bak_stone'
==========================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Type Status
==========================================================================================================================================
bak_stone 9.2 SOUJW3 2024-12-21 21:52:52+08 PTRACK STREAM 1/1 6s 257MB 16MB 1.00 0/C000028 0/C0001E8 FILE OK
bak_stone 9.2 SOUJU5 2024-12-21 21:51:44+08 PTRACK STREAM 1/1 11s 257MB 16MB 1.00 0/A000028 0/A0001E8 FILE OK
bak_stone 9.2 SOUJO0 2024-12-21 21:48:18+08 FULL STREAM 1/0 24s 693MB 16MB 1.00 0/8000028 0/80001E8 FILE OK
恢复
全备恢复
查看历史备份信息
通过备份信息确认需要还原的ID
gs_probackup show -B /opt/panweidb/backup_data/
停库
还原前需要停库
cm_ctl stop
恢复全量备份
在主机还原
gs_probackup restore --incremental-mode=checksum -B /opt/panweidb/backup_data/ --instance bak_stone -D $PGDATA -i SOUJW3
启动主备
主机
gs_ctl start -M primary -D $PGDATA
备机
gs_ctl start -M standby -D $PGDATA
最后启动cm,cm启动后会自动同步
cm_ctl start
验正数据
gsql -d orcl -c "select * from emp"
增量备份恢复
查看历史增量备份信息
通过备份信息确认需要还原的ID
gs_probackup show -B /opt/panweidb/backup_data/
还原增备停库
还原前需要停库
cm_ctl stop
恢复增量备份
在主机还原
gs_probackup restore --incremental-mode=checksum -B /opt/panweidb/backup_data/ --instance bak_stone -D $PGDATA -i SOUJW3
还原增备后启动主备
主机
gs_ctl start -M primary -D $PGDATA
备机
gs_ctl start -M standby -D $PGDATA
最后启动cm,cm启动后会自动同步
cm_ctl start
验正增备还原数据
gsql -d orcl -c "select * from emp"
还原至指定时间
增加数据并归档
ll /opt/panweidb/archive
gsql -d orcl -c "select * from emp"
gsql -d orcl -c "insert into emp values(7521,'WARD');"
gsql -d orcl -c "insert into emp values(7566,'JONES');"
gsql -d orcl -c "insert into emp values(7654,'MARTIN');"
gsql -d orcl -c "insert into emp values(7698,'BLAKE');"
gsql -d orcl -c "select pg_sleep(1);"
gsql -d orcl -c "select pg_switch_xlog();"
ll /opt/panweidb/archive
gsql -d orcl -c "select now();"
gsql -d orcl -c "select pg_sleep(1);"
gsql -d orcl -c "insert into emp values(7782,'CLARK');"
gsql -d orcl -c "insert into emp values(7788,'SCOTT');"
gsql -d orcl -c "select pg_sleep(1);"
gsql -d orcl -c "select pg_switch_xlog();"
ll /opt/panweidb/archive
gsql -d orcl -c "select now();"
gsql -d orcl -c "select pg_sleep(1);"
gsql -d orcl -c "insert into emp values(7839,'KING');"
gsql -d orcl -c "insert into emp values(7844,'TURNER');"
gsql -d orcl -c "select pg_switch_xlog();"
ll /opt/panweidb/archive
gsql -d orcl -c "select now();"
gsql -d orcl -c "select * from emp"
增量备份
-b PTRACK 表示为增量备份
gs_probackup backup -B /opt/panweidb/backup_data/ --instance bak_stone -b PTRACK
确认备份信息
通过备份信息确认需要还原的ID
gs_probackup show -B /opt/panweidb/backup_data/
还原备份前停库
还原前需要停库
cm_ctl stop
移除原目录
mv data data_20241212
mkdir data
还原到指定时间
在主机全量还原
gs_probackup restore -B /opt/panweidb/backup_data/ --instance bak_stone -D $PGDATA -i SOVJGK
配制参数 修改 recovery.conf
ll $PGDATA/recovery.*
mv $PGDATA/recovery.done $PGDATA/recovery.conf
vi $PGDATA/recovery.conf
更改为
restore_command = 'cp /opt/panweidb/archive/%f %p'
recovery_target_time = '2024-12-22 10:58:04+08'
pause_at_recovery_target = 'true'
启动主机
gs_ctl start -M primary -D $PGDATA
验正指定时间数据
gsql -d orcl -c "select * from emp"
重建各备机
gs_ctl -D $PGDATA build -b -incremental
最后启动cm
cm_ctl start
再次验正数据
gsql -d orcl -c "select * from emp"
删除备份
删除指定备份
gs_probackup delete -B /opt/panweidb/backup_data/ --instance=bak_stone -i SOULP0
删除实例
gs_probackup del-instance -B /opt/panweidb/backup_data/ --instance=bak_stone




