MySQL Fabric管理mysql分片和高可用部署(当前实现了两个特性:高可用和使用数据分片的横向扩展,能单独使用或结合使用这两个特性。)。
MySQL Fabric能“组织”多个MySQL数据库,是应用系统将大于几TB的表分散到多个数据库,即数据分片(Data Shard)。在同一个分片内又可以含有多个数据库,并且由Fabric自动挑选一个适合的作为主数据库,其他的数据库配置成从数据库,来做主从复制。当主数据库挂掉时,从各个从数据库中挑选一个提升为主数据库。
测试MySQL Fabirc 高可用性
测试环境 redhat6.3 mysql-5.6.26 mysql-utilities-1.5.6
安装 可到官网下载也可到百度网盘下载 http://pan.baidu.com/s/1hqvwihQ
rpm -iv mysql-connector-python-2.0.4-1.el6.noarch.rpm
rpm -iv mysql-utilities-1.5.6-1.el6.noarch.rpm
192.168.10.145:3307 fabric 管理节点
192.168.10.145:3308 数据节点
192.168.10.154:3307 数据节点
192.168.10.154:3308 数据节点
创建两个用户 修改配置文件/etc/mysql/fabric.cfg
Backing store user: stores Fabric specific information, and is only created on the fabric backing store
配置文件中[storage]标签
Server user: accesses the managed MySQL servers, and is created on each managed MySQL server.
配置文件中[servers]标签
192.168.10.145:
mysql -uroot -p –socket=/opt/mysqldata3307/mysql.sock
grant all on fabric.* to ‘fabric’@’localhost’ identified by ‘fabric’;
grant all on *.* to ‘fabric’@’192.168.10.154’ identified by ‘fabric’
mysql -uroot -p –socket=/opt/mysqldata3308/mysql.sock
grant all on *.* to ‘fabric’@’192.168.10.154’ identified by ‘fabric’
192.168.10.154:
mysql -uroot -p –socket=/opt/mysqldata3307/mysql.sock
grant all on *.* to ‘fabric’@’192.168.10.145’ identified by ‘fabric’
grant all on *.* to ‘fabric’@’192.168.10.154’ identified by ‘fabric’
mysql -uroot -p –socket=/opt/mysqldata3308/mysql.sock
grant all on *.* to ‘fabric’@’192.168.10.145’ identified by ‘fabric’
grant all on *.* to ‘fabric’@’192.168.10.154’ identified by ‘fabric’
修改各个数据节点MySQL数据库配置文件
server_id=2
log-bin=/opt/mysqldata3308/binlog/binlog
log-bin-index=/opt/mysqldata3308/binlog/log
binlog_format=mixed
relay-log=/opt/mysqldata3308/relaylog/relaylog
relay-log-info-file=/opt/mysqldata3308/relaylog/relay.info
relay-log-index=/opt/mysqldata3308/relaylog/relaylog.index
report-host=192.168.10.145
log_slave_updates = 1
gtid-mode=on
enforce-gtid-consistency=true
启动停止
mysqlfabric manage start –daemonize
mysqlfabric manage stop
创建数据库fabric
mysqlfabric manage setup
创建组
mysqlfabric group create my_group
添加组成员
mysqlfabric group add my_group 192.168.10.154:3307
mysqlfabric group add my_group 192.168.10.154:3308
mysqlfabric group add my_group 192.168.10.145:3308
查看组信息和健康信息
mysqlfabric group lookup_servers my_group
mysqlfabric group health my_group
提升一个mysql实例为master:
mysqlfabric group promote my_group
启动错误检测 主服务器发生错误时自动切换
mysqlfabric group activate my_group
出现错误时 修改服务器状态 faulty–>spare–>secondary
mysqlfabric server set_status 3ecc746f-2e05-11e4-b448-560d7281695e spare
删除组成员
mysqlfabric group remove my_group 47565be1-8146-11e5-9880-000c294f8975
删除空组
mysqlfabric group destroy my_group