使用OSS作为介质进行备份

【 使用环境 】 测试环境
【 OB or 其他组件 】observer
【 使用版本 】4.0.0
【问题描述】
https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001576747
根据官网文档设置归档路径和备份路径时有报错
ERROR 1235 (0A000): Not supported feature or function
每次设置报错,都会有相应得到日志报错
[2023-03-08 10:17:58.613725] WARN log_user_error_and_warn (ob_rpc_proxy.cpp:320) [8687][T1_TNT_L0_G0][T1][YB42ACAC1F54-0005F645B3488498-0-0] [lt=19]
[2023-03-08 10:17:58.614358] WARN log_user_error_inner (ob_table_modify_op.cpp:1042) [7800][EvtHisUpdTask][T1][YB42ACAC1F54-0005F645ABA8855E-0-0] [lt=18] Data too long for column ‘value2’ at row 1
配置时为什么会报错呢。(OSS相关配置可以通过SDK正常使用)

能把设置归档路径和备份路径时的截图界面贴一下吗

麻烦您提供一下楼上同学回复的相关信息


麻烦确认。

这个报错是指,log_archieve_dest/data_backup_dest只有user用户可以配置该配置项,sys租户不能配置其自身,但可以配置其他租户的,例如sys租户下使用:
alter system set data_backup_dest = ‘xxx’ tenant = xxxx

ok,明白了。谢谢

今天设置的时候报了这个错,format文件不存在。但是之前应该是设置的同时自动生成这个文件的。
ERROR 9080 (HY000): the format file does not exist under the destination

上面那个是设置归档路径的报错,设置备份路径也有报错。命令后面都加了tenant=“xxx”;
ERROR 9026 (HY000): backup destination is not valid

你那边是设置路径报错之后,执行select last_trace_id(); 看一下trace id是多少,然后根据这个trace id 捞一下日志

同理执行select last_trace_id() 后,根据这个trace_id捞一下日志

设置备份路径后的错误日志。
[2023-03-16 16:52:23.534343] WARN log_user_error_and_warn (ob_rpc_proxy.cpp:320) [4575][T1_TNT_L0_G0][T1][YB42ACAC1F54-0005F6EB86BD5ED6-0-0] [lt=19]
[2023-03-16 16:52:23.534040] ERROR [STORAGE] get_storage_type_from_path (ob_storage.cpp:77) [4529][T1_TNT_L0_G0][T1][YB42ACAC1F54-0005F6EB86BD5ED6-0-0] [lt=48] invlaid backup uri(ret=-9026, uri=LOCATION=oss://~~) BACKTRACE:0xb61bbbb 0xb60d4f6 0x3c12f81 0x3c12c84 0x3c12a99 0x3bf0efb 0xb4ce2f0 0xb4ce225 0xa755a82 0xa7506c6 0xa84c001 0xa84affb 0x5039e8e 0x5039699 0x42130b9 0x3b8af35 0x390ab41 0x45eb379 0x3902f24 0x45eb917 0xb5ffbb7 0xb5fa7ea 0x2b91bfc65e65 0x2b91bff7888d

设置归档路径后的错误日志
[2023-03-16 16:56:34.785056] WARN log_user_error_and_warn (ob_rpc_proxy.cpp:320) [4575][T1_TNT_L0_G0][T1][YB42ACAC1F54-0005F6EB86BD5ED8-0-0] [lt=14]

ALTER SYSTEM SET DATA_BACKUP_DEST = ‘data_backup_path’ TENANT = mysql_tenant;

例子

obclient [(none)]> ALTER SYSTEM SET DATA_BACKUP_DEST = ‘oss://oceanbase-test-bucket/backup/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx&delete_mode=delete’ TENANT = mysql_tenant;

obclient [(none)]> ALTER SYSTEM SET DATA_BACKUP_DEST = ‘oss://oceanbase-test-bucket/backup/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx&delete_mode=delete’;

直接oss://应该是可以的

官方文档里可以看到样例

https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001578192

命令中去掉 LOCATION= 么,去掉再执行还是不行 :sweat_smile:

设置失败和OSS的配置有关系么。
之前的这个报错,可以看到OSS对应目录下有了check_file文件夹,但是没有format文件
ERROR 9080 (HY000): the format file does not exist under the destination