使用手册
支持迁移场景如下:
注意:
如果后端连接 MySQL 数据库,请下载 mysql-connector-java-5.1.47.jar,并将其放入 目录。
MySQL 需要开启 binlog
,且迁移时所使用用户需要赋予 Replication 相关权限。
PostgreSQL 需要开启
弹性迁移组件提供了 DistSQL 接口
预览当前分片规则
示例:
preview select count(1) from t_order;
mysql> preview select count(1) from t_order;
+------------------+--------------------------------+
+------------------+--------------------------------+
| ds_0 | select count(1) from t_order_0 |
| ds_0 | select count(1) from t_order_1 |
| ds_1 | select count(1) from t_order_0 |
| ds_1 | select count(1) from t_order_1 |
+------------------+--------------------------------+
4 rows in set (0.00 sec)
创建迁移任务
- 添加新的数据源
详情请参见RDL#数据源资源。
示例:
- 修改分片规则
详情请参见。
示例:
ALTER SHARDING TABLE RULE t_order (
SHARDING_COLUMN=order_id,
TYPE(NAME=hash_mod,PROPERTIES("sharding-count"=10)),
GENERATED_KEY(COLUMN=another_id,TYPE(NAME=snowflake,PROPERTIES("worker-id"=123)))
);
比如说RESOURCES
和sharding-count
修改了会触发迁移。
查询所有迁移任务
详情请参见。
示例:
show scaling list;
查询迁移任务进度
示例:
show scaling status {jobId};
返回信息:
+------+-------------+----------+-------------------------------+--------------------------+
| item | data_source | status | inventory_finished_percentage | incremental_idle_minutes |
+------+-------------+----------+-------------------------------+--------------------------+
| 0 | ds_1 | FINISHED | 100 | 2834 |
+------+-------------+----------+-------------------------------+--------------------------+
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 | 增量迁移阶段失败 |
预览新的分片规则是否生效
示例:
返回信息:
mysql> preview select count(1) from t_order;
+------------------+--------------------------------+
| data_source_name | sql |
+------------------+--------------------------------+
| ds_2 | select count(1) from t_order_0 |
| ds_2 | select count(1) from t_order_1 |
| ds_3 | select count(1) from t_order_0 |
| ds_3 | select count(1) from t_order_1 |
| ds_4 | select count(1) from t_order_0 |
| ds_4 | select count(1) from t_order_1 |
6 rows in set (0.01 sec)
其他DistSQL
详情请参见。