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

gs_probackup还原到指定时间

原创 有教无类 2025-04-24
104

相关参数

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

评论