一、前言1.1 分布式数据库 随着IT行业的迅猛发展,行业应用系统的数据规模呈现爆炸式增长,对数据库的数据处理能力要求越来越高,分布式数据库正是因此应运而生。 分布式数据库特点包括: 透明性:用户不必关心后台数据库的具体实现 扩展性:能够根据系统压力情况进行扩展 可靠性:如果其中一台服务器宕机,备用服务器能够自动切换继续提供服务 高性能: 1.2 Mycat介绍 Mycat(http://www./)是一个支持mysql、sql server等数据库集群化部署的中间件。它由Amoeba和cobar发展而来。 二、负载均衡三、测试环境四、测试脚本CREATE TABLE `employee` ( 五、软件安装首先安装mycat-server、mycat-eye、zookeeper和navicat for mysql 六、服务启动6.1 、启动mycat 6.1.1、安装java环境 1、 安装jdk 2、 配置环境变量 JAVA_HOME=C:Program FilesJavajdk1.8.0_131 CLASSPATH=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar; Path =%JAVA_HOME%in;%JAVA_HOME%jrein; 6.1.2、启动mycat服务 在windows8操作系统上启动mycat服务,命令如下 cmd cd /d D:EC-OFCJavaMycatMycat-server-1.6mycatin startup_nowrap.bat 6.1.3、连接mycat 6.1.3.1、navicat连接 使用navicat连接mycat,默认端口为8066,密码123456 6.1.3.2、DOS链接
注意:如果需要使用如show @@datasource命令时,需要连接9066端口而不是8066 6.2 、启动zookeeper D:EC-OFC开发工具zookeeper-3.4.10inzkServer.bat 6.3 、启动mycat-eye D:EC-OFCJavaMycatmycat-webstart.bat 七、写集群7.1 拓扑图 7.2 配置文件 <?xml version='1.0'?> 八、主从配置8.1 业务要求 Master挂掉时,Slave还能提供读服务。 8.2 配置步骤 注意每台mysql服务器的server-id必须唯一 第一步: 在10.3.30.161中创建一个10.3.30.238主机中可以登录的MySQL用户 用户:mysql238 密码:123456 mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql238’@’10.3.30.238’ IDENTIFIED BY ‘123456’; mysql>FLUSH PRIVILEGES; 第二步: 需要先在C:ProgramDataMySQLMySQL Server 5.7my.ini文件中添加log-bin=mysql-bin 查看10.3.30.161MySQL服务器二进制文件名与位置 mysql>SHOW MASTER STATUS; 第三步: 告知二进制文件名与位置 在10.3.30.238中执行: mysql>CHANGE MASTER TO MASTER_HOST='10.3.30.161', MASTER_USER='mysql238', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mybin.000001', MASTER_LOG_POS=154; 完成主从复制配置 8.3 验证配置 在10.3.30.238中 mysql> START SLAVE; #开启复制 mysql>SHOW SLAVE STATUSG #查看主从复制是否配置成功 当看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明状态正常 8.4 配置文件 switchType='-1'意味着当主挂掉的时候,不进行自动切换,即hostS1并不会被提升为主,仍只提供读的功能。这就避免了将数据写进slave的可能性,单纯的MySQL主从集群并不允许将数据写进slave中,除非配置的是双master。
九、Haproxy配置9.1 拓扑图 9.2 配置文件 此处为haproxy配置文件 #global mysql客户端或者应用程序可以通过如上配置的127.0.0.1:3307端口链接haproxy实现链接mycat集群的目的。 十、注意事项1、主主复制配置文件中auto_increment_increment和auto_increment_offset只能保证主键不重复,却不能保证主键有序。 2、当配置完成Slave_IO_Running、Slave_SQL_Running不全为YES时,show slave statusG信息中有错误提示,可根据错误提示进行更正。 3、Slave_IO_Running、Slave_SQL_Running不全为YES时,大多数问题都是数据不统一导致。 常见出错点: 1、两台数据库都存在db数据库,而第一台MySQL db中有tab1,第二台MySQL db中没有tab1,那肯定不能成功。 2、已经获取了数据的二进制日志名和位置,又进行了数据操作,导致POS发生变更。在配置CHANGE MASTER时还是用到之前的POS。 3、stop slave后,数据变更,再start slave。出错。 终极更正法:重新执行一遍CHANGE MASTER就好了。 ●编号346,输入编号直达本文 ●输入m获取文章目录 |
|