数据迁移时zk元数据没有刷新

方便更快捷的说明问题,可以按需填写(可删除)

使用环境:测试,代码:master

proxy仅配置server.yaml,内容以下:

mode:
  type: Cluster
  repository:
    type: ZooKeeper
    props:
      namespace: data_migration_1
      server-lists: xxx:2181
      retryIntervalMilliseconds: 500
      timeToLiveSeconds: 60
      maxRetries: 3
      operationTimeoutMilliseconds: 500
  overwrite: false
rules:
  - !AUTHORITY
    users:
      - root@:root
      - sharding@:sharding
    provider:
      type: ALL_PRIVILEGES_PERMITTED
  - !SQL_PARSER
    sqlCommentParseEnabled: true

props:
  max-connections-size-per-query: 1
  kernel-executor-size: 16  # Infinite by default.
  proxy-frontend-flush-threshold: 128  # The default value is 128.
  proxy-hint-enabled: false
  sql-show: true
  check-table-metadata-enabled: false

测试数据迁移场景,打开mysql客户端连接3307 proxy服务
依次执行以下命令:

// 创建库
CREATE DATABASE scaling_db;
USE scaling_db;

// 添加源数据源
ADD RESOURCE ds_0 (
    URL="jdbc:mysql://xx:3306/ds_0?serverTimezone=UTC&useSSL=false",
    USER=abm_dev,
    PASSWORD=xx,
    PROPERTIES("connectionTimeoutMilliseconds"=30000,"idleTimeout"="60000")
);

// 分表规则
CREATE SHARDING TABLE RULE t_order (DATANODES("ds_0.t_order"));

// 创建表&插入数据
CREATE TABLE t_order (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) CHARSET utf8mb4, PRIMARY KEY (order_id));
INSERT INTO t_order (order_id, user_id, status) VALUES (1,2,'ok'),(2,4,'ok'),(3,6,'ok'),(4,1,'ok'),(5,3,'ok'),(6,5,'ok');

// 数据同步
CREATE SHARDING SCALING RULE scaling_manual (
DATA_CONSISTENCY_CHECKER(TYPE(NAME=CRC32_MATCH))
);

// 添加目标数据源
ADD RESOURCE ds_1 (
    URL="jdbc:mysql://xx:3306/ds_1?serverTimezone=UTC&useSSL=false",
    USER=abm_dev,
    PASSWORD=xx,
    PROPERTIES("connectionTimeoutMilliseconds"=30000,"idleTimeout"="60000")
);

// 修改分表规则
ALTER SHARDING TABLE RULE t_order (
DATANODES("ds_1.t_order_${0..5}"),
TABLE_STRATEGY(TYPE=standard,SHARDING_COLUMN=order_id, SHARDING_ALGORITHM(TYPE(NAME=MOD,PROPERTIES("sharding-count"=6)))),
KEY_GENERATE_STRATEGY(COLUMN=order_id,TYPE(NAME=INCREMENT)));

// 查询迁移任务列表
SHOW SCALING LIST;

// 查询任务进度
SHOW SCALING STATUS 

// 停止写入
STOP SCALING SOURCE WRITING 

// 检查
CHECK SCALING  

问题:

数据迁移执行完修改语句,zk没有分片表,重启后才有,试了3遍都是一样的,每次都是重启完才创建然后执行CHECK SCALING 就没有问题

zk没有分片表节点,但是库中已经创建分片表,并且数据已经迁移完成,jobid查询进度100,状态:EXECUTE_INCREMENTAL_TASK,执行CHECK SCALING 提示could not get metadata for table xxx

已进行操作:

现状:

京ICP备2021015875号