使用手册

    支持迁移场景如下:

    注意

    如果后端连接 MySQL 数据库,请下载 mysql-connector-java-5.1.47.jar,并将其放入 目录。

    MySQL 需要开启 binlog,且迁移时所使用用户需要赋予 Replication 相关权限。

    PostgreSQL 需要开启

    弹性迁移组件提供了 DistSQL 接口

    预览当前分片规则

    示例:

    1. preview select count(1) from t_order;
    1. mysql> preview select count(1) from t_order;
    2. +------------------+--------------------------------+
    3. +------------------+--------------------------------+
    4. | ds_0 | select count(1) from t_order_0 |
    5. | ds_0 | select count(1) from t_order_1 |
    6. | ds_1 | select count(1) from t_order_0 |
    7. | ds_1 | select count(1) from t_order_1 |
    8. +------------------+--------------------------------+
    9. 4 rows in set (0.00 sec)

    创建迁移任务

    1. 添加新的数据源

    详情请参见RDL#数据源资源

    示例:

    1. 修改分片规则

    详情请参见。

    示例:

    1. ALTER SHARDING TABLE RULE t_order (
    2. SHARDING_COLUMN=order_id,
    3. TYPE(NAME=hash_mod,PROPERTIES("sharding-count"=10)),
    4. GENERATED_KEY(COLUMN=another_id,TYPE(NAME=snowflake,PROPERTIES("worker-id"=123)))
    5. );

    比如说RESOURCESsharding-count修改了会触发迁移。

    查询所有迁移任务

    详情请参见。

    示例:

    1. show scaling list;

    查询迁移任务进度

    示例:

    1. show scaling status {jobId};

    返回信息:

    1. +------+-------------+----------+-------------------------------+--------------------------+
    2. | item | data_source | status | inventory_finished_percentage | incremental_idle_minutes |
    3. +------+-------------+----------+-------------------------------+--------------------------+
    4. | 0 | ds_1 | FINISHED | 100 | 2834 |
    5. +------+-------------+----------+-------------------------------+--------------------------+
    6. 2 rows in set (0.00 sec)

    当前迁移任务已完成,新的分片规则已生效。如果迁移失败,新的分片规则不会生效。

    status的取值:

    取值描述
    PREPARING准备中
    RUNNING运行中
    EXECUTE_INVENTORY_TASK全量迁移中
    EXECUTE_INCREMENTAL_TASK增量迁移中
    ALMOST_FINISHED基本完成
    FINISHED已完成
    PREPARING_FAILURE准备阶段失败
    EXECUTE_INVENTORY_TASK_FAILURE全量迁移阶段失败
    EXECUTE_INCREMENTAL_TASK_FAILURE增量迁移阶段失败

    预览新的分片规则是否生效

    示例:

    返回信息:

    1. mysql> preview select count(1) from t_order;
    2. +------------------+--------------------------------+
    3. | data_source_name | sql |
    4. +------------------+--------------------------------+
    5. | ds_2 | select count(1) from t_order_0 |
    6. | ds_2 | select count(1) from t_order_1 |
    7. | ds_3 | select count(1) from t_order_0 |
    8. | ds_3 | select count(1) from t_order_1 |
    9. | ds_4 | select count(1) from t_order_0 |
    10. | ds_4 | select count(1) from t_order_1 |
    11. 6 rows in set (0.01 sec)

    其他DistSQL

    详情请参见。