已设置了备份策略文件的保留时间,OB的备份文件空间占满,新的备份失败

可以手动开启一次测试一下

老师,我重新创建了备份策略,看着第一个步骤没报错了,目前看还在正常走的,我再观察下

老师您好,后来重建备份策略后,手动启动备份,还是失败了,下面是异常信息:

2026-02-03 23:09:16.748 ERROR 22406 — [manual-subtask-executor16,1a224c637086102f,c16b2fc775ec838c] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : (conn=986453079) Connection.setNetworkTimeout cannot be called on a closed connection

java.sql.SQLSyntaxErrorException: (conn=986453079) Connection.setNetworkTimeout cannot be called on a closed connection
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:110)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:211)
at com.oceanbase.jdbc.OceanBaseConnection.setNetworkTimeout(OceanBaseConnection.java:2439)
at com.zaxxer.hikari.pool.PoolBase.setNetworkTimeout(PoolBase.java:566)
at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:173)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:186)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:108)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:138)
at org.hibernate.internal.SessionImpl.connection(SessionImpl.java:516)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:152)
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:421)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTr
ansaction(AbstractPlatformTransactionManager.java:373)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:595)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:382)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:174)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)
at com.sun.proxy.$Proxy346.findAll(Unknown Source)
at com.oceanbase.ocp.service.compute.HostDaoManager.findByStatus(HostDaoManager.java:128)
at com.oceanbase.ocp.service.compute.HostDaoManager$$FastClassBySpringCGLIB$$6c2f5d71.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at com.oceanbase.ocp.service.comput
e.HostDaoManager$$EnhancerBySpringCGLIB$$16cd5c66.findByStatus()
at com.oceanbase.ocp.compute.host.service.HostServiceImpl.findByStatus(HostServiceImpl.java:492)
at com.oceanbase.ocp.compute.host.service.HostServiceImpl$$FastClassBySpringCGLIB$$74b96bc3.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.oceanbase.ocp.compute.host.service.HostServiceImpl$$EnhancerBySpringCGLIB$$9488df18.findByStatus()
at com.oceanbase.ocp.server.common.scheduled.HostSchedules.checkHostStatus(HostSchedules.java:63)
at sun.reflect.GeneratedMethodAccessor2271.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.oceanbase.ocp.server.common.scheduled.AbstractSchedules.lambda$scheduledTasks$0(AbstractSchedules.java:79)
at com.oceanbase.ocp.server.common.scheduled.AbstractSchedules.lambda$executeIfNotReadOnly$1(AbstractSchedules.java:136)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at com.oceanbase.ocp.common.trace.TraceDecorator.lambda$decorate$0(TraceDecorator.java:33)
at java.util.concurrent.Executors$Run
nableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
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: 8111577, operation:RETRY, state: FAILED

学习了

SELECT * FROM oceanbase.CDB_OB_BACKUP_JOB_HISTORY

老师,日志如下:

CDB_OB_BACKUP_JOB_HISTORY.rar (18.2 KB)


看着是备份成功了,ocp那里应该是超时导致的,重试一下即可

1 个赞

老师,我是再点一下z这个重试吗

我看到这个是成功了,我是不是可以正常开启,备份策略了,我的备份策略,现在是等待调度中

是的,当前备份策略启动了么

备份策略,昨天我已经启动了,我配置的策略,昨天是不自动启动的,昨天只有我手动启动的一次,应该再等下一次的增量备份就可以了

辞霜老师,我这儿怎么点采纳没有反应呢,我想点一下采纳 :grinning:

可能卡住了?
后续这边会整理帖子的

1 个赞

不清楚哦,我刚才又试了,换了机器登录,都是点不了采纳,你们后面整理就好哈

辞霜老师,我还有一个数据备份,按表恢复的问题,一张300W数据量,没有大字段的表,恢复任务走了12个小时,没有恢复成功,下面是报错信息,这个能帮我看看是什么原因吗,备份文件存储介质是HDD磁盘

2026-02-04 23:52:47.650 INFO 22406 — [manual-subtask-executor16,c36109caff7c1b67,1325242dfbd02847] c.o.ocp.common.lang.pattern.Retry : wait for 30 seconds

Set state for subtask: 8112240, operation:EXECUTE, state: FAILED
2026-02-04 23:53:12.788 WARN 22406 — [subtask-executor29,c6b9efbc22b499e9,1fd1b39f0519a2fc] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : Receive timeout callback, id=8112240, name=Wait restore task successful, elapsed=43200, timeout=43200

2026-02-04 23:53:12.813 ERROR 22406 — [manual-subtask-executor16,c36109caff7c1b67,1325242dfbd02847] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : interrupted, msg:sleep interrupted

java.lang.RuntimeException: interrupted, msg:sleep interrupted
at com.oceanbase.ocp.common.lang.pattern.Retry.waitFor(Retry.java:194)
at com.oceanbase.ocp.common.lang.pattern.Retry.executeUntilWithTimeout(Retry.java:114)
at com.oceanbase.ocp.common.lang.pattern.Retry.executeUntilWithTimeout(Retry.java:98)
at com.oceanbase.ocp.backup.internal.task.schedule.WaitTableRestoreSuccessTask.run(WaitTableRestoreSuccessTask.java:42)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.execute(JavaSubtaskRunner.java:64)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.doRun(JavaSubtaskRunner.java:32)
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:212)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.redirectConsoleOutput(SubtaskExecutor.java:206)
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)

这个租户大概有多大

老师,下图是我目前业务租户的规格

下面是我创建恢复任务的时候,选用的租户规格,当时选了更高的规格,提示内存资源不足

老师您好,我创建的一个备份恢复的任务,失败后,我把回滚了任务,恢复前,原来我的内存是70G,为何这个内存不降回去呢,我看应该是备份恢复的任务结束后,会自动删除临时租户,需要您帮忙看看

回滚任务成功了么。
select * from dba_ob_units;
select * from dba_ob_tenants;

是回滚成功了的,下面附件为查询结果


查询结果.rar (6.3 KB)

恢复任务是表还是租户,是1010租户么,恢复失败原因是什么。ocp任务日志发一份看看。
ocp界面集群看一下是否有1010租户