金仓数据库KDTS 常见问题处理说明

一、通用问题

1.迁移程序启动报错:java.lang.OutOfMemoryError: Java heap space
解决方法:修改启动脚本(bin/startup.bat或bin/startup.sh)中JAVA_MEMORY大小
图片.png

2.Windows 下启动迁移工具闪退
解决方法:
1)检查 JDK 目录下是否正确放置 JDK
2)使用管理员身份运行迁移工具

3.数据迁移报错:文件签名不被认可
解决方法:修改配置文件(conf/application.properties)中的是否使用遗留二进制拷贝签名为 false (如果原来值为 false,则调整为true)
图片.png
4.迁移时创建模式报错:syntax error at or near “AUTHORIZATION”
解决方法:检查数据库配置文件(data/kingbase.conf)中是否将 authorization 添加到 exclude_reserved_words 中,如果添加了,移除即可。

二、Oracle 迁移 KES

1.数据迁移报错(源库与目标库编码都为GBK):迁移数据错误,无效的GBK编码字节顺序:0xb4
解决方法:删除目标数据源连接参数 clientEncoding: utf8
图片.png

2.数据迁移目标端报raw类型不支持,需要在kes目标端安装raw数据类型插件(kes默认是不支持raw类型)。
图片.png

3.自定义类型的数据不支持copy方式写入,支持insert写入

三、MySQL 迁移 KES

1.数据迁移报错:no unpinned buffers available(没有可用的非固定缓冲区)
解决方法:查看KES数据库共享缓存区大小(show shared_buffers),调整为系统内存的25%

2.迁移报错: Communications link failure
解决方法:
1)增加 socketTimeout 连接参数(单位为毫秒),设置值足够大
图片.png
2)查询 MySQL 配置中的 max_allowed_packet 值,条件允许的情况下加大此值
3)减小源库游标读取记录数

3.数据迁移报错:Statement cancelled due to timeout or client request
解决方法:设置迁移参数连接超时时间值为0

4.无法获取表结构
解决方法:检查源数据库连接中数据库名称中是否有多余的空格

5.迁移报错:Table read failed: Unknown column datetime_precision in field list
解决方法:选择 MySQL 版本号为 5.5
图片.png

6.表结构迁移报错:语法错误 在 “COLLATE” 或附近的
解决方法:目标端的配置项【useCollate】参数设置为false

  1. 表数据迁移报错:无效的 “UTF8” 编码字节顺序: 0x00
    解决方法:目标端的配置项【removeNullCharacter】参数设置为true

四、KES 迁移 KES

1.V7 迁移 KES 报错:非法 BigDecimal 值
解决方法:更新 V7 JDBC驱动文件为数据库对应的JDBC驱动(数据库安装目录下),迁移工具驱动所在目录为 drivers/kingbase/v7

五、DM 迁移 KES

1.DM 迁移 KES,无法获取到表结构
解决方法:检查DM数据库连接账号是否为 sysdba,如果使用应用账号,可能会由于账号权限不足导致无法获取表结构信息。

六、Db2 迁移 KES

1.数据迁移报错:DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016, SQLERRMC=7;RP_DM.BAINDZZZ001, DRIVER=4.31.10
解决方法:目前表处于“装入暂挂”状态,Db2 针对多次操作一张表的时候,会将表处于挂载状态,需要重组表。在服务器上执行 reorg 命令,DB2 reorg table <TABLE_NAME>,提示 successful 后表示重组成功
图片.png

2.数据迁移报错:捕获到 java.io.CharConversionException。有关详细信息,请参阅相连接的 Throwable。 ERRORCODE=-4220, SQLSTATE=null
解决方法:在启动脚本中添加参数: -Ddb2.jcc.charsetDecoderEncoder=3
图片.png

3.interval xxx时间类型数据搬迁后值变为0
解决方法:如果目标端的kes版本是V8R6C7以上版本,在进行数据库连接管理的地方,要选择V8R6C7版本

七、OceanBase 迁移 KES

1.time类型范围超出 00:00:00 ~ 24:00:00的数据搬迁失败
图片.png
解决方法/限制:
KES Oracle兼容模式本身就放不下这种数据,会迁移失败
KES MySQL兼容模式使用insert方式插入

八、sqlserver迁移KES

  1. datetime时间类型的9999-12-31 23:59:59:998的表数据,搬迁到目标端后,值变为10000-01-01 00:00:00,这个是数据库自身的行为,与kdts无关。
    图片.png

2.sqlserver sql_variant类型不支持copy方式写入,支持insert写入

九、KES迁移MySQL

  1. kes数据库中的gis数据类型的表数据搬迁到mysql数据库后,使用select * 进行查询的时候gis类型的表数据库读出来是乱码,需要使用select st_astext() 来查询,这样查询出来的结果显示才是正确的。
    图片.png

十、sqlite迁移kes

  1. 搬迁的配置文件中需要将readonly配置设置为false,否则会导致搬迁任务失败。

图片.png

图片.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值