【 使用环境 】测试环境
【 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_dest
和 restore_source
。这意味着在进行数据恢复时,您需要明确指定备份数据的来源(restore_source
)或备份目的地(backup_dest
),但不能同时设置这两个参数。
具体来说,backup_dest
用于指定备份数据的存储位置,而 restore_source
用于指定从哪个位置恢复数据。OceanBase 数据库不支持同时设置这两个参数 建议检查恢复操作的配置,确保只设置了 restore_source
或 backup_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托管的缘故吗?
可能我对这个描述理解有误,以为跨集群恢复需要用这个步骤来
测试下来,跨集群恢复完全可以直接使用正常的restore命令
这个功能适用的场景,应该只是将备份集或归档日志中的一部分移动了才会需要
备份集整体移动测试过,对还原没有影响,只需要restore命令指定新路径即可
感谢解答,虽然我还是没有执行成功过不带uri的恢复命令
可能我们这也用不到这类场景吧,后面有机会再测测
真的很棒 膜拜 +++1