现在有个需求,即需要将当前租户的数据恢复到指定的时间点,翻了文档貌似都是只有新创建租户的方式,但是因为硬件资源的限制,没有额外的CPU和内存再去创建新的租户了。 这个有没有其他方法呢?
您可以使用 RECOVER 命令将备租户的数据恢复到指定的时间点。OceanBase 数据库支持通过 RECOVER 命令将备租户的恢复终点设置为任意合理的时间点。具体的命令如下:
- 恢复到指定时间戳:
ALTER SYSTEM RECOVER STANDBY [TENANT = tenant_name] UNTIL TIME='timestamp';
- 恢复到指定 SCN (System Change Number):
ALTER SYSTEM RECOVER STANDBY [TENANT = tenant_name] UNTIL SCN=scn;
请注意:
- 只有当您使用
sys租户执行命令时,才需要在语句中添加TENANT = tenant_name参数指定备租户名。 -
timestamp是指时间戳,单位为纳秒。 -
scn是指定的 SCN,这是一个逻辑的、系统内部的时间戳。
执行以上语句后,备租户会恢复到该位点位置,且包括该位点。
具体信息可参考以下文档:
太努力了
这是说的备租户吧,主租户也可以?
1、备租户恢复到指定时间点
ALTER SYSTEM RESTORE restore_pay FROM ‘file:///obbackup/data/db_pay,file:///obbackup/archive/db_pay’ UNTIL TIME=‘2024-04-23 11:07:52.009833’ WITH ‘pool_list=pl_2c2g&concurrency=20’;
2、修改需要恢复的时间
ALTER SYSTEM RECOVER STANDBY TENANT restore_pay UNTIL TIME=‘2024-04-23 13:35:41.305871’;
3、或者持续回放日志
ALTER SYSTEM RECOVER STANDBY TENANT restore_pay UNTIL UNLIMITED;
4、也可以取消回放
ALTER SYSTEM RECOVER STANDBY TENANT restore_pay CANCEL;
5、查询租户当前回放的时间点
select tenant_id,id,type,value,SCN_TO_TIMESTAMP(RECOVERY_UNTIL_SCN) from cdb_ob_log_restore_source;
学习
等一个最终方案
学习
通过日志恢复到指定时间
66666666