Mysql-cobar集群安装部署手册

本文档以mysql5.6.17-1 rhel版本为例,介绍mysql一机多实例,以两台机器各两个实例,实现机器间的mysql实例主主复制功能。并将4mysql实例归入到cobar集群,实现mysql的分布式部署。部署结构图以下:php

一.      Mysql RPM包多实例安装以及双主复制配置java

  1. 1.     检测是否有历史版本存在,命令为:rpm –qa|grep –iE mysqlnode

  2. 2.     卸载历史版本,命令为:rpm -e –nodeps 包名。包名为步骤一中所查询的结果;mysql

  3. 3.     删除历史版本的文件和库,查找命令为:find / -name mysql,而后利用rm –rf “路径来删除;linux

  4. 4.     删除配置文件,my.cnf通常存在于/etc/my.conf下面或者/usr/bin下面,须要手动删除。git

  5. 5.     Mysql RPM5.6之后会自动创建mysql用户组与用户,安装前能够卸载到原有的mysql用户,命令:userdel –rf mysqlgithub

  6. 6.     Mysql基本功能仅须要安装 MySQL-server-community.*.rpmMySQL-client-community.*.rpm,以root用户登陆后, 执行rpm –ivh “MySQL-*.rmp”完成mysql客户端与服务端的安装。安装完成后,能够看到在系统目录/var/lib/mysql下面,生成了mysql系统默认的数据库信息;在/usr/bin下面为mysql服务于客户端程序;/usr/lib64/mysqlmysql的插件和so程序;/usr/share/mysql为数据库的示例配置等相关信息。算法

  7. 7.     Mysql一机多实例及主主复制配置,为在一台机器上使用一个mysqld管理多份实例,咱们须要作更多的操做。在mysql安装完成后,rpm默认在系统下创建了mysql用户以及mysql用户组,为便于管理数据,咱们在系统的/home目录下创建mysql用户目录,并受权该目录的全部者为mysqlmysqlsql

  8. 1)     无损拷贝两份mysql数据库目录到/home/mysql下,具体的命令为cp –rp /var/lib/mysql /home/mysql/mysql3006cp –rp /var/lib/mysql /home/mysql/mysql3007。此时咱们能够删除/var/lib/mysql目录,从而将数据库的数据目录彻底迁移到/home/mysql下。数据库

  1. 2)     构建启动配置文件,运行mysqld_multi –example >> /usr/my-multi.cnf能够生成mysql多实例启动的模板配置信息,修改[mysqld_multi],配置userpassword项,这两个能够配置任意的用户名和密码,后续当咱们初次启动各实例后,使用GRANT SHUTDOWN ON *.* TO user@localhost  IDENTIFIED BY 'password'来创建刚刚配置的用户。而后咱们修改配置中的各个[mysqld*]组,*为一个数字,也就是咱们的mysql实例的惟一标号,从1开始。各组中须要配置mysql实例的启动socket文件、端口号、pid文件、数据文件(也就是咱们上一步所拷贝的数据目录)、数据库启动用户、server-id(主主模式中的身份标识)、log-bin(启用bin log日志)、主主复制时数据库的过滤规则(主要配置binlog-ignore-dbbinlog-do-db)以及复制过滤规则(主要使用replication-wild-ignore-table)。有多少个实例就配置多少个mysqld组。

  1. 3)     启动mysql的多个实例,运行mysqld_multi --defaults-extra-file=/usr/my-multi.cnf --user=mysql start 1-n,便可以启动mysql标号为1n的实例。

  2. 4)      链接指定的mysql实例,运行mysql –uroot –p –P端口 –Ssocket文件(mysql –uroot –p –P3306 –S/temp/mysql.sock1),而后输入root默认密码,该密码存放在文件/root/.mysql_secret中。运行set password=password(“ password”)修改mysql root用户密码;运行GRANT SHUTDOWN ON *.* TO multi_admin@localhost  IDENTIFIED BY 'password'创建步骤2)中所要求的管理用户;运行GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'192.168.1.10' IDENTIFIED BY 'password'创建主主复制管理用户;若是有须要,还能够创建供外部访问的其它用户,并设置对应的管理权限,或者开放root用户的部分外部访问权限。

  3. 5)     关闭数据库多实例,使用命令mysqld_multi --defaults-extra-file=/usr/my-multi.cnf --user=mysql stop 1-n。若是没有在步骤4)中正确的创建步骤2)配置文件所要求的用户,则没法实现数据库多个实例的关闭。

  4. 6)     创建实例间的双主复制,开启各机器上的多个mysql数据服务,分别链接个实例,运行show master status命令,能够看到数据库所使用的bin-long日志文件名称和偏移量。运行stop slave中止从库服务,而后使用CHANGE MASTER TO MASTER_HOST='<master's IP>', MASTER_USER='<slave user>', MASTER_PASSWORD='<slave password>', MASTER_LOG_FILE='<master's log file name>', MASTER_LOG_POS=<master's log file position>指定当前实例的主库,因为是主主模式,因此须要在全部的库上均指定的主库。通常状况下,咱们推荐在一台机器上启动两个mysql实例,两台机器间两个实例交叉互为对方的备库。当完成全部实例的上述操做后,运行start slave启动从属服务,完成数据库实例见的双主复制。使用show salve status能够查看从库的运行状况。若是看到Slave_IO_RunningSlave_SQL_Running均为yes则证实配置成功。

实际环境中,启动单机的mysql多实例,能够使用/home/mysql/startup.sh启动,关闭则使用/home/mysql/shutdown.sh实现。

 

二.      Cobra集群部署

cobar为淘宝开源的一个mysql分布式框架,其经过简单的配置实现了mysql的分表分库。其主要的配置包括schema.xmlserver.xmlrule.xml,下面咱们将以双机双实例来介绍cobar的分布式集群配置。

首先咱们须要下载cobar的最新版本,能够到github上下载,下载后须要将cobar源码编译并打包成cobar-server-version.jar,并添加到lib目录下(若是是windows系统,须要查看下载包中bin目录下startup.bat中的版本号,linux能够自行指定版本号),至此完成了cobar主程序的制做。                                        

Jre的安装,cobar是一个java程序,所以须要jre的支持,其须要javajps等命令的支持。咱们以jre1.7.0_60rpm包做为源执行安装,执行命令rpm –ivh jre1.7.0_60.x64.rpm。完成安装后须要在/etc/profile中添加JAVA_HOME环境变量,使用source /etc/profile使环境变量当即生效。

Cobra的配置,咱们默认部署的双机双实例,为保证数据在扩容后的可迁移性,cobar建议在创建集群的初期在每一个mysql实例上创建多份数据库,咱们默认创建了16个(通常根据规模推荐创建32个或者64个),若是后续扩容,则仅须要将一个mysql实例的一半的库移动到另外一台主机的mysql实例中,无需琐碎的数据迁移。全部的数据库使用一样的账号和密码以及数据库前缀,这样能够方便的在cobarschema.xml中配置数据源(使用$m-n的模式)。而后经过数据源配置dataNode,以dataNode来配置schema结构。详细的配置说明见附件

启动cobar框架,使用cobar目录bin下的startup.sh能够开启cobar,用netstat –an能够查看cobar的端口是否开启(默认为80669066),若开启,则证实开启成功,经过8066则能够访问mysql集群。实际环境中,cobar提供的外部访问用户为root,密码为r#dcenter9(全部mysql实例外部的访问用户都设置为该用户与密码)。默认提供的数据库实例为dbtest,提供的示例表sample,经过sample表的ID字段以hash算法散列到16个不一样的mysql库中。集群提供了一个common库,用户创建的其它表将被部署到该实例中,其没有设置散列算法,仅作主从备份。


附件:

mysql-cobar安装部署 .docx

Acrobat 文档.pdf

相关文章
相关标签/搜索