最近线上有张表数据已经有6千万了,查询和插入都已经比较慢,所以这边决定分库分表,
下面记录下分库分表的全过程
首先下载mycat包
https://github.com/MyCATApache/Mycat-Server/releases
![](https://img.haomeiwen.com/i13174261/623da763216b2f85.png)
我下载的这个版本,若要使用其他版本,可以自行下载
下载完成后,上传到linux服务器,解压即可
![](https://img.haomeiwen.com/i13174261/1e82c8c3dccc6b7f.png)
然后进入到conf 底下
主要看这两个文件
schema.xml,server.xml
![](https://img.haomeiwen.com/i13174261/badd2bcc31c83374.png)
server.xml 修改这里 schemas 就是schema.xml 的schema名称
name 和password 自己指定
![](https://img.haomeiwen.com/i13174261/50e04ab794e7989b.png)
schema.xm
![](https://img.haomeiwen.com/i13174261/fe64b9ebb33045a9.png)
table 是数据库表名,rule 这里我用的一致性hash ,要换别的算法可以在rule.xml里面找
database 就是table表的数据库名,
datahost 里面的url 是数据库ip和端口
这样配置玩,就可以启动了
cd bin
./mycat console
即可启动,
![](https://img.haomeiwen.com/i13174261/98890dfaf11911a2.png)
然后用navicat链接即可
![](https://img.haomeiwen.com/i13174261/529939f3d561e522.png)
然后在数据库中建好表,插入数据,就会根据算法分到不同的数据库
数据迁移
1、复制 schema.xml、rule.xml 并重命名为 newSchema.xml、newRule.xml 放于 conf 目录下
2、修改 newSchema.xml 和 newRule.xml 配置文件为扩容缩容后的 mycat 配置参数(表的节点数、
数据源、路由规则)
3、修改 conf 目录下的 migrateTables.properties 配置文件,告诉工具哪些表需要进行扩容或缩容,没有出现在此配置文件的 schema 表不会进行数据迁移,格式:
4、修改 bin 目录下的 dataMigrate.sh 脚本文件,参数如下:
tempFileDir 临时文件路径,目录不存在将自动创建
isAwaysUseMaster 默认 true:不论是否发生主备切换,都使用主数据源数据,false:使用当前数据源
mysqlBin:mysql bin 路径,也是是mysqldump命令所在的目录,通过命令"find / -name mysqldump"查找mysqldump路径为"/usr/local/mysql-5.7.18/bin/mysqldump",指定#mysql bin路径为"/usr/local/mysql-5.7.18/bin/"
注意新的newSchema 的dataNode 必须要比schema的dataNode多
否则就会报,不用迁移,最后执行./dataMigrate.sh 即可
如果无法执行: chmod u+x
:set ff
set ff=unix 之后即可执行./dataMigrate.sh
flink支持分库分表
WITH (\
'connector' = 'mysql-cdc',\
'hostname' = '127.0.0.1',\
'port' = '3306',\
'username' = 'root',\
'password' = '123456',\
'database-name' = '[3-4]+',\
'server-id' = '5411-5412',\
'table-name' = 'test')
网友评论