为什么OceanBase Developer Center导出数据总是失败

【 使用环境 】测试环境
【 OB or 其他组件 】OceanBase Developer Center
【 使用版本 】版本号:4.2.2
Server: 4.2.2-20231124
Release Date: 2023-11-24
【问题描述】odc工具导不出数据
【复现路径】选择表执行导出数据
【附件及日志】
text.log (10.6 KB)

2024-01-10 13:48:59 [INFO] No Sys user setting, connectionId=33
2024-01-10 13:48:59 [INFO] Querying table metadata. This might take a while…
2024-01-10 13:49:02 [INFO] Found 2 empty tables before executing… Elapsed: 38.55 ms
2024-01-10 13:49:02 [INFO] Begin transferring schema
2024-01-10 13:49:02 [INFO] Generate 1 dump tasks finished. Total Elapsed: 2.272 ms
2024-01-10 13:49:02 [INFO] Start 3 schema dump threads for 1 dump tasks finished.
2024-01-10 13:49:02 [INFO] Return the latest compatible version: 4.2.1.2 → 4.0.0.0
2024-01-10 13:49:02 [INFO] Dump create objects success. DbType: OBMYSQL Version: 4.2.1.2
2024-01-10 13:49:02 [INFO] ObMySql(4.2.1.2) is older than 4.0 ? false
2024-01-10 13:49:02 [WARN] ClassLoad load: “meta/obmysql/obmysql14x.xml” as system resource is null
2024-01-10 13:49:02 [WARN] ClassLoad load: “meta/obmysql/obmysql22x.xml” as system resource is null
2024-01-10 13:49:02 [WARN] ClassLoad load: “meta/obmysql/obmysql2271.xml” as system resource is null
2024-01-10 13:49:02 [WARN] ClassLoad load: “meta/obmysql/obmysql3230.xml” as system resource is null
2024-01-10 13:49:02 [WARN] ClassLoad load: “meta/obmysql/obmysql40x.xml” as system resource is null
2024-01-10 13:49:02 [INFO] Load meta/obmysql/obmysql14x.xml, meta/obmysql/obmysql22x.xml, meta/obmysql/obmysql2271.xml, meta/obmysql/obmysql3230.xml, meta/obmysql/obmysql40x.xml successed
2024-01-10 13:49:02 [INFO] Query 5 dependencies elapsed 77.56 ms
2024-01-10 13:49:06 [ERROR] SQL: SELECT
C.CONSTRAINT_NAME AS CONSTRAINT_NAME,
K.COLUMN_NAME AS COLUMN_NAME,
K.ORDINAL_POSITION AS ORDINAL_POSITION,
K.REFERENCED_TABLE_SCHEMA AS REFERENCED_TABLE_SCHEMA,
K.REFERENCED_TABLE_NAME AS REFERENCED_TABLE_NAME,
K.REFERENCED_COLUMN_NAME AS REFERENCED_COLUMN_NAME,
K.POSITION_IN_UNIQUE_CONSTRAINT AS POSITION_IN_UNIQUE_CONSTRAINT,
R.UPDATE_RULE AS UPDATE_RULE,
R.DELETE_RULE AS DELETE_RULE
FROM information_schema.TABLE_CONSTRAINTS AS C,
information_schema.KEY_COLUMN_USAGE AS K,
information_schema.REFERENTIAL_CONSTRAINTS AS R
WHERE C.TABLE_SCHEMA=K.TABLE_SCHEMA AND C.TABLE_NAME=K.TABLE_NAME AND C.TABLE_NAME=R.TABLE_NAME
AND R.CONSTRAINT_SCHEMA=K.REFERENCED_TABLE_SCHEMA AND R.REFERENCED_TABLE_NAME=K.REFERENCED_TABLE_NAME
AND K.CONSTRAINT_NAME=C.CONSTRAINT_NAME AND R.CONSTRAINT_NAME=C.CONSTRAINT_NAME
AND C.CONSTRAINT_TYPE=‘FOREIGN KEY’ AND C.TABLE_SCHEMA=? AND C.TABLE_NAME=?
java.sql.SQLTransientConnectionException: (conn=1277906) No memory or reach tenant memory limit
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:128) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:202) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.OceanBaseStatement.executeExceptionEpilogue(OceanBaseStatement.java:318) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.executeInternal(JDBC4ServerPreparedStatement.java:1040) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.execute(JDBC4ServerPreparedStatement.java:998) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.executeQuery(JDBC4ServerPreparedStatement.java:938) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:213) ~[druid-1.2.18.jar!/:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcExecutor.queryMap(JdbcExecutor.java:138) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcTemplate.queryMap(JdbcTemplate.java:149) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.queryForeignMapping(ObMySqlMetadataAccessor.java:1598) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.lambda$queryTableMapping$12(ObMySqlMetadataAccessor.java:617) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_292]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_292]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_292]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_292]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_292]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
Caused by: com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException: No memory or reach tenant memory limit
at com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException.of(OceanBaseSqlException.java:79) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:206) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:187) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.executePreparedQuery(AbstractQueryProtocol.java:545) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.executeInternal(JDBC4ServerPreparedStatement.java:1022) ~[oceanbase-client-2.4.7.1.jar!/:?]
… 13 more
Caused by: java.sql.SQLException: No memory or reach tenant memory limit
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:2364) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:2227) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:2115) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.executePreparedQuery(AbstractQueryProtocol.java:542) ~[oceanbase-client-2.4.7.1.jar!/:?]
at com.oceanbase.jdbc.JDBC4ServerPreparedStatement.executeInternal(JDBC4ServerPreparedStatement.java:1022) ~[oceanbase-client-2.4.7.1.jar!/:?]
… 13 more
2024-01-10 13:49:06 [INFO] shutdown task context finished
2024-01-10 13:49:06 [INFO] ---------- Finished Tasks: 1 Running Tasks: 0 Progress: 100.00% ----------
2024-01-10 13:49:06 [INFO]

All Dump Tasks Finished:


    No.#        |        Type        |             Name             |            Count             |       Status       

                                            Nothing was done!

Total Count: 0 End Time: 2024-01-10 13:49:06

2024-01-10 13:49:06 [WARN] Failed to execute data transfer task
java.lang.IllegalStateException: sdw.null: No memory or reach tenant memory limit
at com.oceanbase.odc.service.datatransfer.task.BaseDataTransferTask.syncWaitFinished(BaseDataTransferTask.java:182) ~[odc-service-4.2.2-20231124.jar!/:?]
at com.oceanbase.odc.service.datatransfer.task.BaseDataTransferTask.call(BaseDataTransferTask.java:133) ~[odc-service-4.2.2-20231124.jar!/:?]
at com.oceanbase.odc.service.datatransfer.task.BaseDataTransferTask.call(BaseDataTransferTask.java:52) ~[odc-service-4.2.2-20231124.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_292]
at com.oceanbase.odc.common.trace.TraceDecorator.lambda$decorate$0(TraceDecorator.java:40) ~[odc-common-4.2.2-20231124.jar!/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_292]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_292]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
2024-01-10 13:49:07 [ERROR] SQL: SELECT
NON_UNIQUE,
INDEX_SCHEMA,
INDEX_NAME,
SEQ_IN_INDEX,
COLUMN_NAME,
COLLATION,
– CARDINALITY,
SUB_PART,
– PACKED,
– NULLABLE,
INDEX_TYPE,
– COMMENT,
INDEX_COMMENT,
IS_VISIBLE
FROM information_schema.STATISTICS S
WHERE TABLE_SCHEMA=? AND TABLE_NAME=? AND
NOT EXISTS (SELECT 1 FROM information_schema.TABLE_CONSTRAINTS C WHERE S.TABLE_SCHEMA=C.TABLE_SCHEMA AND S.TABLE_NAME=C.TABLE_NAME AND S.INDEX_NAME=C.CONSTRAINT_NAME AND CONSTRAINT_TYPE NOT IN (‘CHECK’,‘FOREIGN KEY’))
ORDER BY INDEX_NAME ASC, SEQ_IN_INDEX ASC
java.lang.IllegalStateException: SessionManager is not initialized
at com.google.common.base.Preconditions.checkState(Preconditions.java:502) ~[guava-31.1-jre.jar!/:?]
at com.oceanbase.tools.loaddump.manager.session.SessionManager.getPooledBizConnection(SessionManager.java:165) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.jdbc.JdbcTemplate.queryMap(JdbcTemplate.java:148) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.queryIndexes(ObMySqlMetadataAccessor.java:1187) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.queryIndexMappingV4(ObMySqlMetadataAccessor.java:1278) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.queryIndexMapping(ObMySqlMetadataAccessor.java:1176) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at com.oceanbase.tools.loaddump.schema.accessor.ObMySqlMetadataAccessor.lambda$queryTableMapping$12(ObMySqlMetadataAccessor.java:618) ~[ob-loader-dumper-4.2.5-RELEASE.jar!/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_292]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_292]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_292]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_292]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_292]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]

1 个赞
select *  from gv$ob_servers;  执行看下。

SELECT * FROM OCEANBASE.GV$OB_TENANT_MEMORY;

select zone, concat(SVR_IP,':',SVR_PORT) observer, CPU_CAPACITY_MAX cpu_total,CPU_ASSIGNED_MAX cpu_assigned,CPU_CAPACITY_MAX-CPU_ASSIGNED_MAX cpu_free,CAST(MEM_CAPACITY/1024/1024/1024 as DECIMAL(15,2)) mem_total_gb,CAST(mem_assigned/1024/1024/1024 as DECIMAL(15,2)) mem_assign_gb,CAST((MEM_CAPACITY-MEM_ASSIGNED)/1024/1024/1024 as DECIMAL(15,2)) mem_free_gb from gv$ob_servers;

这个呢

java.lang.IllegalStateException: SessionManager is not initialized 麻烦确认下SessionManager是否已初始化完成 。

租户内存不足。请调大当前使用的租户内存。

这个最小要求内存是多大呢,这个租户给配置了4G内存,应该不小了呀

建议下载:OceanBase 导数工具 试一下。