指定路径恢复报错 have backup_dest and restore_source at the same time not supported

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.5.1
【问题描述】清晰明确描述问题
【复现路径】
使用指定路径恢复报错 have backup_dest and restore_source at the same time not supported

select * from CDB_OB_BACKUP_SET_FILES;
查一下备份集是否存在指定的恢复时间

恢复时间是对的,这个问题好像是我们s3异常导致的,我再测测

这个又尝试了几次,本地集群(4.2.5.0)还原是ok的,到另一个集群上(4.2.5.1)还原就报错,还是上面图的错

错误代码 1235 表示在数据恢复操作中,不能同时设置 backup_destrestore_source。这意味着在进行数据恢复时,您需要明确指定备份数据的来源(restore_source)或备份目的地(backup_dest),但不能同时设置这两个参数。

具体来说,backup_dest 用于指定备份数据的存储位置,而 restore_source 用于指定从哪个位置恢复数据。OceanBase 数据库不支持同时设置这两个参数 建议检查恢复操作的配置,确保只设置了 restore_sourcebackup_dest 中的一个,而不是同时设置两者。

感谢回复,这里是我没仔细看文档了,文档中最后还原语句是不需要uri的

ALTER SYSTEM RESTORE restore_tenant_name [UNTIL {TIME='timestamp' | SCN=scn} ] WITH 'restore_option';

不过我这里现在按照这个命令执行也会报错Invalid argument
还有,按照文档所述“ *执行恢复命令时,要求与执行 ADD RESTORE SOURCE 命令的会话是同一个会话,如果不是同一个会话(原先的会话中断或者使用了新的会话),之前加载的恢复源列表就会被清空。”
我重新开启一个新的会话,执行SHOW RESTORE PREVIEW; 后仍然能看到之前加载的路径,并且执行不带uri的还原命令时会报错,之后再执行带uri的命令反而成功了


当然我也执行过清理,但是仍然可以看得到已加载过的路径,似乎没有生效

所以现在有两个问题,
1是为啥ALTER SYSTEM CLEAR RESTORE SOURCE 以及断开重连都不能清除已加载过的路径
2是还原命令中到底要不要加uri,感觉我最初的问题时应该不加uri就能成功,但是搞到现在,反而加了uri的能成功,搞不清楚到底要怎么操作


清理过后直接执行show看一下呢,上图显示你执行恢复后再show的。
这边提供一个流程你测试一下
1.add restore source
2.执行恢复不带url(如果报错测试使用带url的sql)
3.执行clear
4.执行show
5.执行带URL的恢复

直接执行SHOW RESTORE PREVIEW是不行的,要结合ALTER SYSTEM RESTORE PREVIEW才可以

我又拿了一个新租户的备份测试,结果不需要加载路径,直接就能show出来了
我甚至又换了第三套集群,也是不需要加载路径,直接就能show出来
这套新集群完全没有加载过这个s3的地址,很干净

难道是因为这几套集群都是同一套ocp托管的缘故吗?


官网也确实说了这个限制,你意思是你更换集群可以直接show出来么


可能我对这个描述理解有误,以为跨集群恢复需要用这个步骤来
测试下来,跨集群恢复完全可以直接使用正常的restore命令

这个功能适用的场景,应该只是将备份集或归档日志中的一部分移动了才会需要
备份集整体移动测试过,对还原没有影响,只需要restore命令指定新路径即可

SHOW RESTORE PREVIEW这个命令是展示你恢复时候所需要的备份集和归档集。


执行review是可以让你在执行恢复时候不需要填写url直接恢复。

感谢解答,虽然我还是没有执行成功过不带uri的恢复命令
可能我们这也用不到这类场景吧,后面有机会再测测

真的很棒 膜拜 +++1