我的操作系统为oralcelinux8,昨晚在实验rapid引擎的增量导入数据时,报下面的错。
SELECT START_SECONDARY_ENGINE_INCREMENT_LOAD_TASK('test', 't1');
ERROR 2013 (HY000): Lost connection to MySQL server during query
No connection. Trying to reconnect...
Connection id: 8
Current database: test
+----------------------------------------------------------+
| START_SECONDARY_ENGINE_INCREMENT_LOAD_TASK('test', 't1') |
+----------------------------------------------------------+
| not support when lower_case_table_names == 0 |
+----------------------------------------------------------+
1 row in set (0.03 sec)
从官方社区的技术文档上看,要求上面的的参数要调整为1。
增量导入数据的限制和需求
- 需要设置表名大小写不敏感,即设置
lower_case_table_names = 1
。 - 需要开启GTID模式,即设置
gtid_mode = ON
和enforce_gtid_consistency = ON
。 - 需要采用row格式的binlog event,不支持statement格式,即设置
binlog_format = ROW
。增量任务运行过程中,检测到statement的DML event,可能会报错退出。 - 需要关闭GIPKs特性,即设置
sql_generate_invisible_primary_key = OFF
。用户表不能有 invisible primary key,如果表包含隐式不可见的主键,在全量导入过程中会报错;同时也不支持用户表中存在任何不可见列(invisible column)。 - 需要先对表执行过一次全量导入后,才能启动增量导入任务,否则任务启动会报错。
- 不支持 PARTIAL_UPDATE_ROWS_EVENT 类型的binlog,即不要设置
binlog_row_value_options = PARTIAL_JSON
。 - 不支持
CREATE TABLE SELECT
语句,增量任务运行过程中,检测到该语句产生的binlog event时可能会报错退出。 - 不支持XA事务,运行过程中检查到XA事务会报错退
从上面的信息是要调整参数lower_case_table_names ,由于这个参数是只读参数,只能在配置文件中添加lower_case_table_names=1 ,其它参数也按照官方的技术文档进行添加。但添加后,数据库服务启动报错了。只能注释这个参数lower_case_table_names =1,才能正常启动数据库。