【 使用环境 】生产环境
【 使用版本 】4.2.0_CE
【问题描述】
主机ob1开启日志归档doing,并执行全量备份,全量备份完关闭 归档。
ALTER SYSTEM BACKUP TENANT = ‘haiyisec’;
2.全量备份完之后,立即关闭归档模式:
ALTER SYSTEM NOARCHIVELOG TENANT = ‘haiyisec’;
3.将主机ob1的备份文件同步到ob2上
在ob2上执行备租户恢复还原:
ALTER SYSTEM RESTORE haiyisec FROM ‘file:///hybackup/data,file:///hybackup/archive’ WITH ‘pool_list=haiyisec_pool&concurrency=100’;
此时ob2上报错:Error 4018: No enough log for restore
【问题】
1.物理备份完成之后,关闭归档模式,在同步备份文件到另一个机器恢复 有时候 成功有时候失败 ,为什么?备份完成之后不能关闭归档模式吗?
2 个赞
全备时,加上这个参数PLUS ARCHIVELOG试试?
3 个赞
旭辉
2025 年9 月 15 日 15:25
#4
这个是缺少归档日志,你做恢复时需要保证归档足够,有可能备份做完了,归档还未完全生成,应该是立即关闭归档这个操作有问题。
1 个赞
应该是你在全量备份完成后,就立刻关了归档日志。
你应该先检查一下,归档日志的最新备份时间的要大于你全量备份的结束时间。
不然就恢复不了的。
1 个赞
如果备份完成,不关闭归档,然后同步到主机b,是不是也有可能出现这种情况恢复不了,日志可能没完成归档。
有没有方式可以快速判断备份完成并且可以恢复?
2 个赞
旭辉
2025 年9 月 15 日 16:09
#7
备份完成时间 DBA_OB_BACKUP_JOB_HISTORY的END_TIMESTAMP字段
当前归档位点时间 DBA_OB_ARCHIVELOG的CHECKPOINT_SCN_DISPLAY字段
归档位点时间要更新才可以
参考
https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001808671
3 个赞
如果使用楼上建议的这种方式,备份时增加 PLUS ARCHIVELOG ,是不是 备份完成就可以直接恢复了?
旭辉
2025 年9 月 16 日 09:49
#12
这种方式备份时归档和数据放在一起了,可以直接拷贝备份集到异机进行恢复,不用单独拷贝归档日志了。
使用了PLUS ARCHIVELOG 进行全量备份和增量备份,清理设置了每小时进行清理:
ALTER SYSTEM ADD DELETE BACKUP POLICY ‘default’ RECOVERY_WINDOW ‘1h’ TENANT = ‘haiyisec’
为什么 不会删掉 之前的备份的文件:
没有清理哪些文件夹 都是只有一个文件夹:
清理历史显示,1-14是删除了的:
难道是使用了PLUS ARCHIVELOG 的有些数据是不会清理吗?
按照正常理解,不应该 备份完成就可以用这份数据进行恢复吗?备份完成都不能恢复,那这个完成标志有什么意义呢?想了解下这样设计是基于什么考虑呢?