【 使用环境 】生产环境
【 OB or 其他组件 】ocp
【 使用版本 】4.3.5-20250319105844
【问题描述】ocp使用s3协议备份到minio失败,报错“Failed to set the backup path”
【复现路径】
s3协议联通行测试通过,但是备份失败:
详细日志如下:
2025-12-19 10:09:49.273 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.service.iam.user.UserService : user 100 login with organization 10000000
2025-12-19 10:09:49.286 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.o.c.t.e.runner.JavaSubtaskRunner : Retry subtask, id=9018157, context=Context{parallelIdx=-1, stringMap={checkBeforeDataBackup=true, scheduleTime=10:00:00, ob_version=4.2.1.8, startClusterCompact=false, task_instance_id=9018735, task_operation=retry, ob_cluster_id=1752455905, startLogBackup=true, backupDim=CLUSTER, cluster_id=2, tenantName=*, backupMode=physical, scheduleDayMode={“1”:“FULL_BACKUP”,“2”:“FULL_BACKUP”,“3”:“FULL_BACKUP”,“4”:“FULL_BACKUP”,“5”:“FULL_BACKUP”,“6”:“FULL_BACKUP”,“7”:“FULL_BACKUP”}, scheduleMode=week, triggerType=SCHEDULED, latest_execution_start_time=2025-12-19T10:09:49.202+08:00, sub_task_instance_name=Start log backup if necessary, sub_task_instance_id=9018157, obClusterName=yzdp001}, listMap={}}, executor=172.16.15.104
2025-12-19 10:09:49.404 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: set ob_query_timeout = ?, args: [10000000]
2025-12-19 10:09:49.423 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: SHOW VARIABLES LIKE ?
2025-12-19 10:09:49.471 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: set ob_query_timeout = ?, args: [10000000]
2025-12-19 10:09:49.485 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: SELECT tenant_id, name, value, gmt_create, gmt_modified FROM __all_virtual_sys_variable WHERE name = ?
2025-12-19 10:09:49.518 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: set ob_query_timeout = ?, args: [10000000]
2025-12-19 10:09:49.551 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: SELECT value FROM CDB_OB_ARCHIVE_DEST WHERE tenant_id = ? AND name = ?
2025-12-19 10:09:49.572 WARN 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] queryForObject failed, sql:[SELECT value FROM CDB_OB_ARCHIVE_DEST WHERE tenant_id = ? AND name = ?], error message:[Incorrect result size: expected 1, actual 0]
2025-12-19 10:09:49.592 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : Last Trace Info:[YB42AC100F65-0006426FD5AB2AA0-0-0]
2025-12-19 10:09:49.655 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.o.s.o.o.f.ConnectPropertiesBuilder : get credential from obsdk context, clusterName=yzdp001, tenantName=sys, dbUser=root
2025-12-19 10:09:49.668 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: set ob_query_timeout = ?, args: [10000000]
2025-12-19 10:09:49.680 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: set ob_query_timeout = ?, args: [300000000]
2025-12-19 10:09:49.691 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: ALTER SYSTEM SET log_archive_dest = ? TENANT = ?, args: [LOCATION=s3://yizhuangdaping-db-bak/yzdp001/1752455905/tenant_incarnation_1/1002/clog?host=http://minio-api.datacenter.com&access_id=xxx&access_key=xxx&s3_region=us-east-1, online_usr]
2025-12-19 10:09:49.717 WARN 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] update failed, sql:[ALTER SYSTEM SET log_archive_dest = ? TENANT = ?], error message:[PreparedStatementCallback; SQL [ALTER SYSTEM SET log_archive_dest = ? TENANT = ?]; (conn=3221685758) S3 error; nested exception is java.sql.SQLTransientConnectionException: (conn=3221685758) S3 error]
2025-12-19 10:09:49.729 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : Last Trace Info:[YB42AC100F65-0006426FD5AB2AA7-0-0]
2025-12-19 10:09:49.740 INFO 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.ocp.obsdk.connector.ConnectTemplate : [obsdk] sql: set ob_query_timeout = ?, args: [10000000]
2025-12-19 10:09:49.754 ERROR 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] .o.b.i.o.PhysicalBackupOpsServiceFactory : set tenant:online_usr log archive dest failed, ex=SQL [ALTER SYSTEM SET log_archive_dest = ? TENANT = ?]; SQL state [HY000]; error code [9105]; traceId [YB42AC100F65-0006426FD5AB2AA7-0-0]; message [(conn=3221685758) S3 error]
com.oceanbase.ocp.obsdk.exception.OceanBaseException: (conn=3221685758) S3 error
at com.oceanbase.ocp.obsdk.connector.ConnectTemplate.customizeException(ConnectTemplate.java:432)
at com.oceanbase.ocp.obsdk.connector.ConnectTemplate.customizeException(ConnectTemplate.java:420)
at com.oceanbase.ocp.obsdk.connector.ConnectTemplate.updateInner(ConnectTemplate.java:297)
at com.oceanbase.ocp.obsdk.connector.ConnectTemplate.update(ConnectTemplate.java:282)
at com.oceanbase.backup.core.obsdk.AbstractBackupParameterOperator.setSystemParameter(AbstractBackupParameterOperator.java:32)
at com.oceanbase.backup.core.obsdk.operator.MysqlPhysicalTenantWithSysBackupOperator.setLogArchiveDest(MysqlPhysicalTenantWithSysBackupOperator.java:153)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.setLogArchiveDest(PhysicalBackupOpsServiceFactory.java:160)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.setBackupDestination(PhysicalBackupOpsServiceFactory.java:135)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.lambda$setBackupDestination$5(PhysicalBackupOpsServiceFactory.java:466)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.setBackupDestination(PhysicalBackupOpsServiceFactory.java:466)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupTaskService.setBackupDestinationIfNotExists(PhysicalBackupTaskService.java:166)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupTaskService.startLogBackup(PhysicalBackupTaskService.java:90)
at com.oceanbase.ocp.backup.internal.task.
schedule.StartLogBackupTask.run(StartLogBackupTask.java:51)
at com.oceanbase.ocp.core.task.runtime.Subtask.retry(Subtask.java:49)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.retry(JavaSubtaskRunner.java:76)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.doRun(JavaSubtaskRunner.java:35)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.run(JavaSubtaskRunner.java:26)
at com.oceanbase.ocp.core.task.engine.runner.RunnerFactory.doRun(RunnerFactory.java:76)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.doRun(SubtaskExecutor.java:207)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.redirectConsoleOutput(SubtaskExecutor.java:201)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.lambda$submit$2(SubtaskExecutor.java:137)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.sql.SQLTransientConnectionException: (conn=3221685758) S3 error
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:128)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:202)
at com.oceanbase.jdbc.OceanBaseStatement.executeExceptionEpilogue(OceanBaseStatement.java:320)
at com.oceanbase.jdbc.JDBC4PreparedStatement.executeInternal(JDBC4PreparedStatement.java:257)
at com.oceanbase.jdbc.JDBC4PreparedStatement.execute(JDBC4PreparedStatement.java:171)
at com.oceanbase.jdbc.JDBC4PreparedStatement.executeUpdate(JDBC4PreparedStatement.java:205)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeUpdate(DruidPooledPreparedStatement.java:255)
at org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:967)
at org.springframework.jdbc.core.JdbcTemplate.
execute(JdbcTemplate.java:650)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:962)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1017)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1027)
at com.oceanbase.ocp.obsdk.connector.ConnectTemplate.updateInner(ConnectTemplate.java:293)
… 23 common frames omitted
Caused by: com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException: S3 error
at com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException.of(OceanBaseSqlException.java:79)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:205)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:186)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:401)
at com.oceanbase.jdbc.JDBC4PreparedStatement.executeInternal(JDBC4PreparedStatement.java:248)
… 32 common frames omitted
Caused by: java.sql.SQLException: S3 error
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:2366)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:2229)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:2117)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:399)
… 33 common frames omitted
2025-12-19 10:09:49.792 ERROR 2498322 — [subtask-executor29,4880a2d53b7f6f00,b7d1e98709f08dcc] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : Failed to set the backup path. Error message: (conn=3221685758) S3 error.
com.oceanbase.ocp.core.exception.UnexpectedException: [OCP UnexpectedException]: status=500 INTERNAL_SERVER_ERROR, errorCode=BACKUP_DEST_SET_FAILED, args=(conn=3221685758) S3 error
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.setLogArchiveDest(PhysicalBackupOpsServiceFactory.java:170)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.setBackupDestination(PhysicalBackupOpsServiceFactory.java:135)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.lambda$setBackupDestination$5(PhysicalBackupOpsServiceFactory.java:466)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupOpsServiceFactory.setBackupDestination(PhysicalBackupOpsServiceFactory.java:466)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupTaskService.setBackupDestinationIfNotExists(PhysicalBackupTaskService.java:166)
at com.oceanbase.ocp.backup.internal.operation.PhysicalBackupTaskService.startLogBackup(PhysicalBackupTaskService.java:90)
at com.oceanbase.ocp.backup.internal.task.schedule.StartLogBackupTask.run(StartLogBackupTask.java:51)
at com.oceanbase.ocp.core.task.runtime.Subtask.retry(Subtask.java:49)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.retry(JavaSubtaskRunner.java:76)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.doRun(JavaSubtaskRunner.java:35)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.run(JavaSubtaskRunner.java:26)
at com.oceanbase.ocp.core.task.engine.runner.RunnerFactory.doRun(RunnerFactory.java:76)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.doRun(SubtaskExecutor.java:207)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.redirec
tConsoleOutput(SubtaskExecutor.java:201)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.lambda$submit$2(SubtaskExecutor.java:137)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Set state for subtask: 9018157, operation:RETRY, state: FAILED

