首批通过分布式安全可靠测评,为关键业务系统打造
合并错误,错误代码 4103
更新时间:2023-12-07 03:16
本文介绍执行合并报 4103 错误的原因和解决方法。
问题现象
在以下建表语句的表上执行合并错误,错误信息如下:
CREATE TABLE t1(c1 varchar(20), c2 nchar(10), PRIMARY KEY(c1,c2));
INSERT t1 VALUES('test', 'test2');
ALTER SYSTEM major freeze;
[YD0316458724D-0005A63C1B1984E0] [lt=4] data table and index table column checksum is not equal(ret=-4103, data_table_id=1100611139453963, index_table_id=1100611139454202, column_id=16, data_table_column_checksum=0, index_table_column_checksum=1811074662)
可能原因
表中的 nchar 或 varchar 列的字符集为 utf16,并作为主键(包括联合主键),可能会引起错误。
说明
OceanBase 数据库默认使用 utf8 处理 nchar 或 varchar 类型。utf16字符集无法处理nchar和varchar类型的字符串。
影响版本
OceanBase 数据库 V2.2.30-BP10 以前的版本
解决方式
避免使用 nchar 类型作为主键。
将 OceanBase 数据库升级到 V2.2.30-BP10 以后的版本。有关升级 OceanBase 数据库的方法,请参见《OceanBase 数据库升级指南》。