设为首页 收藏本站
查看: 519|回复: 0

[经验分享] MySQL Fabric Sharding命令详解

[复制链接]

尚未签到

发表于 2015-12-22 11:36:31 | 显示全部楼层 |阅读模式
  使用MySQL FabricSharding功能,需要运用如下命令,这些命令在官方的手册中没有详尽的说明,
  在这里结合实际的使用来逐一说明各个命令的使用方法。
  
1、使用Fabric的时候首先要先建立组群,使用mysqlfabric group create组群名称  
例如mysqlfabric group create group_id-1  
组群至少要建立3个,2个用于数据分片Sharding,一个用于全局更新。  
   
2、建立好组群后要向组群里添加服务器,使用mysqlfabric group add 组群名称 服务器地址  
例如mysqlfabric group add group_id-1 localhost:13001  
   
3、添加好服务器以后,将组群里面的任意一台服务器自动升级成为主服务器  
使用mysqlfabric group promote 组群名称  
例如mysqlfabric group promote group_id-1  
   
准备工作到以上为止,接下来是关于Sharding功能的定义和使用。  
   
4、定义一个Sharding映射,这里面包括三个内容(Sharding类型,全局组群和生成唯一的映射ID  
使用mysqlfabric sharding create_definition Sharding 全局组群名称  
例如mysqlfabric sharding create_definition RANGE group_id-global  
Sharding类型包括RANGE, HASH, LIST等等,执行结果会返回一个result值,这个值就是生成的唯一的映射ID  
   
5、将需要进行Sharding的表加入Sharding映射,使用  
mysqlfabric sharding add_table 映射ID 带有数据库名的表名称 Sharding键(列名)  
例如mysqlfabric sharding add_table 1 employees.employees emp_no  
   
6、向该表内添加Shards,使用mysqlfabric sharding add_shard 映射ID "分片组名称/Sharding键(列名)的值, 分片组名称/ Sharding键(列名)的值[, 分片组名称/ Sharding键(列名)的值]" --state=ENABLED  
例如mysqlfabric sharding add_shard 1 "group_id-1/1, group_id-2/100000, group_id-2/200000" --state=ENABLED 1里面是emp_no 1~100000的数据45  
至此,就可以使用应用程序通过连接器连接至Fabric进行数据操作了。  
   
7Shard移动  
Fabric支持数据从一个Shard移动到另一个Shard,使用mysqlfabric sharding move_shard 需要移动的ShardID 新组群名称  
例如mysqlfabric sharding move_shard 1 group_id-MOVE ShardID可以通过 select * from fabric.shards 来查看。  
   
8、查看给定的Shard键分布在哪些Shard上面, 使用mysqlfabric sharding lookup_servers Shard的对象表 Shard键的值  
例如mysqlfabric sharding lookup_servers employees.employees 4  
   
9、分割Shard  
Fabric支持将已经分片化的Shard再次进行分片处理,使用mysqlfabric sharding split_shard 对象ShardID 组群名称 --split_value=Sharding键(列名)的分割值  
例如mysqlfabric sharding split_shard 2 group_id-SPLIT --split_value=150  
   
10、显示所有的Shard映射定义,使用mysqlfabric sharding list_definitions  
   
11、查看给定表的Sharding信息。使用mysqlfabric sharding sharding lookup_table 数据库名.表名  
例如mysqlfabric sharding lookup_table employees.employees_tmp  
   
12、使Shard无效,使用mysqlfabric sharding disable_shard ShardID  
例如mysqlfabric sharding disable_shard 8  
   
13、使Shard有效,使用mysqlfabric sharding enable_shard ShardID  
例如mysqlfabric sharding enable_shard 8  
   
14、对Shard里面的表进行修剪,将指定表里不符合Shard定义的数据删除,使用mysqlfabric sharding prune_shard 数据库名.表名  
例如mysqlfabric sharding prune_shard employees.employees_tmp  
   
15、删除Shard,使用mysqlfabric sharding remove_shard ShardID  
例如mysqlfabric sharding remove_shard 8  
   
16、从Shard映射中删除表,使用mysqlfabric sharding remove_table数据库名.表名  
例如mysqlfabric sharding remove_table employees.employees  
   
17、删除Shard映射,使用mysqlfabric sharding remove_definition Shard映射ID  
例如mysqlfabric sharding remove_definition 6  
  注意删除Shard的时候一定按照 使Shard无效->删除Shard->删除表->删除映射的顺序执行,否则会报错。
   

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-154724-1-1.html 上篇帖子: 小花狸监控之MySQL 下篇帖子: MySQL 性能优化之缓存参数优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表