【 使用环境 】测试环境
【 OB or 其他组件 】
ob3.1.4
【 环境说明 】
业务租户内存75G,如下图
【问题描述】我们尝试将现场两张数据量比较多的表导入oceanbase报错,csv文件大小约300G,导入程序是我们自己写的,基本原理就是jdbc1000条提交一次这么写
jdbc:mysql://xx.xx.xx.xx:2883/$dbname?useLocalSessionState=true&allowBatch=true&allowMultiQueries=true&rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
【复现路径】
- 我们原本没有对任何系统参数的修改,导入时发现每晚在合并期间会报错
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [REPLACE INTO `HIS_02004_2021` (`UPDATE_TIME`,`POINT_ID`,`UPLOAD_TIME`,`VAL`) VALUES (?,?,?,?)]; SQL state [HY000]; error code [4030]; Over tenant memory limits; nested exception is java.sql.BatchUpdateException: Over tenant memory limits
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:649)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:662)
- 于是我们调整了一些参数
freeze_trigger_percentage 50 --> 35
writing_throttling_trigger_percentage 100 --> 95
ob_sql_work_area_percentage 5 --> 10
- 又在ocp页面启用了轮转合并并调整了下时间
- 然后发现轮转合并第一个Zone结束以后程序又发生了错误:“Transaction is killed”
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [REPLACE INTO `HIS_02004_2022` (`UPDATE_TIME`,`POINT_ID`,`UPLOAD_TIME`,`VAL`,`QUALITY_TYPE`,`VALID_RANGE`,`ZERO_DRIFT`) VALUES (?,?,?,?,?,?,?)]; SQL state [25000]; error code [6002]; Transaction is killed; nested exception is java.sql.BatchUpdateException: Transaction is killed
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:649)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:662)
at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:950)
【问题现象及影响】
无法导入数据做后续测试
【附件】