2.TiUP 部署 DM 集群
TiUP 是 TiDB 4.0 版本引入的集群运维工具,TiUP DM 是 TiUP 提供的使用 Golang 编写的集群管理组件,通过 TiUP DM 组件就可以进行日常的运维工作,包括部署、启动、关闭、销毁、扩缩容、升级 DM 集群以及管理 DM 集群参数。
安装 TiUP DM 组件:
tiup install dm dmctl
生成模版文件,然后根据模版文件把主机替换成自己的机器即可:
tiup dm template > dm.yaml
通过tiup list dm-master获取最新的版本
通过tiup进行部署操作:
tiup dm deploy dm-test ${version} ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa] 其中版本可以通过命令查询,与当前tidb匹配的版本即可。
tiup dm deploy dm-test v8.3.0 ./dm.yaml --user root -p
启动DM集群
查看DM集群运行状态
tiup dm display dm-test
现在DM部署完毕,后续做数据迁移需要用到这个集群
DM-worker介绍
其主要功能如下:
注册为一台 MySQL 或 MariaDB 服务器的 slave。
备注:简单理解为类似mysql的Binglog,利用日志重现把数据写到新库中。
读取 MySQL 或 MariaDB 的 binlog event,并将这些 event 持久化保存在本地 (relay log)。
单个 DM-worker 支持迁移一个 MySQL 或 MariaDB 实例的数据到下游的多个 TiDB 实例。
多个 DM-Worker 支持迁移多个 MySQL 或 MariaDB 实例的数据到下游的一个 TiDB 实例。
配置上下游用户的权限
上游用户权限
当前把db(比如mysql)数据同步到Tidb数据库中,所需要的最小权限:
权限 | 作用域 |
---|---|
SELECT | Tables |
RELOAD | Global |
REPLICATION SLAVE | Global |
REPLICATION CLIENT | Global |
创建最小权限用户:
create user 'mysql_test1'@'%' identified by '123456';
GRANT RELOAD,REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'mysql_test1'@'%';
GRANT SELECT ON . TO 'mysql_test1'@'%';
下游用户权限(tidb)
下游数据库 (TiDB) 用户必须拥有以下权限:
权限 作用域
SELECT Tables
INSERT Tables
UPDATE Tables
DELETE Tables
CREATE Databases,tables
DROP Databases,tables
ALTER Tables
INDEX Tables
tidb创建最小权限的同步账户名:
create user 'tidb_test1'@'%' identified by '123456';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON . TO 'tidb_test1'@'%';
GRANT ALL ON dm_meta.* TO 'tidb_test1'@'%';
为了方便,所以权限是所有库,实际情况是要按照对应的库和表给权限就行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了