mycat实现mysql读写分离安装配置文档v1.0_第1页
mycat实现mysql读写分离安装配置文档v1.0_第2页
mycat实现mysql读写分离安装配置文档v1.0_第3页
mycat实现mysql读写分离安装配置文档v1.0_第4页
mycat实现mysql读写分离安装配置文档v1.0_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录1Mycat概述12读写分离32.1读写分离定义32.2优缺点43安装环境44Mycat安装配置44.1首先确认Mycat服务器网络是否联通44.2检查JAVA版本54.3下载Mycat安装包54.4解压缩安装包54.5增加Mycat相关的环境变量54.6修改Mycat配置文件64.6.1修改server.xml64.6.2修改schema.xml64.7启动Mycat74.8连接Mycat74.9查看Mycat逻辑库84.10关闭Mycat服务85读写分离验证81 Mycat概述Mycat从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把

2、它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持

3、标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。Mycat架构图Mycat支持基于MySQL主从复制状态的高级读写分离控制机制2 读写分离2.1 读写分离定义为了确保数据库产品的稳定性,很多数据库拥有双机热备功能。也就是,第一台数据库服务器,是对外提供增删改查业务的生产服务器;第二台数据库服务器,仅仅接收来自第一台服务器的备份数据。一般来说,为了配置方便,以及稳定性,这两台数据库服务器,都用的是相同的配置。在实际运行中,第一台数据库服务器的压力,远远大于第二台数据库服务器。因此,很多人希望合理利用第二台数据库服务器的空闲资源。从数据库的基本业务

4、来看,数据库的操作无非就是增删改查这4个操作。但对于“增删改”这三个操作,如果是双机热备的环境中做,一台机器做了这三个操作的某一个之后,需要立即将这个操作,同步到另一台服务器上。出于这个原因,第二台备用的服务器,就只做了查询操作。进一步,为了降低第一台服务器的压力,干脆就把查询操作全部丢给第二台数据库服务器去做,第一台数据库服务器就只做增删改了。2.2 优缺点优点:合理利用从数据库服务器的空闲资源。缺点:本来第二台数据库服务器,是用来做热备的,它就应该在一个压力非常小的环境下,保证运行的稳定性。而读写分离,却增加了它的压力,也就增加了不稳定性。因此,读写分离,实质上是一个在资金比较缺乏,但又需

5、要保证数据安全的需求下,在双机热备方案上,做出的一种折中的扩展方案。3 安装环境MySQL主库MySQL从库Mycat服务器操作系统Centos6.5 64位Centos6.5 64位Centos6.5 64位主机名wyg001wyg002wyg003IP313233数据库版本MySQL 5.6.23MySQL 5.6.23MySQL 5.6.23说明: 1. Mycat由Java语言开发,运行环境为JDK1.7及以上的版本,Mycat服务器需要安装JDB1.7或以上版本;2. MySQL主库和从库MySQL数据库服务已经开启并

6、且开启主从同步;3. 建议Mycat服务器本地有一个MySQL Server,若没有,建议安装一个;4 Mycat安装配置4.1 首先确认Mycat服务器网络是否联通用IP地址为33的主机ping31的机器,其结果如下:rootwyg003 conf# ping 31PING 31 (31) 56(84) bytes of data.64 bytes from 31: icmp_seq=1 ttl=64 time=1.93 ms64 bytes from 192.

7、168.0.131: icmp_seq=2 ttl=64 time=0.468 ms64 bytes from 31: icmp_seq=3 ttl=64 time=0.539 ms用IP地址为33的主机ping32的机器,其结果如下:rootwyg003 conf# ping 32PING 32 (32) 56(84) bytes of data.64 bytes from 32: icmp_seq=1 ttl=64 time=7.97 m

8、s64 bytes from 32: icmp_seq=2 ttl=64 time=0.448 ms64 bytes from 32: icmp_seq=3 ttl=64 time=0.446 ms说明:网络不通的话请先检查网络。4.2 检查JAVA版本rootwyg003 bin# java -versionjava version 1.7.0_67Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b0

9、4, mixed mode)说明:Mycat由Java语言开发,运行环境为JDK1.7及以上的版本,Mycat服务器需要安装JDB1.7或以上版本;如果版本过低请下载JDK1.7或以上版本安装;4.3 下载Mycat安装包这里下载的版本是Mycat 1.4-RELEASE版;下载完成后通过FTP或传输软件将安装包上传到服务器目录/usr/local/下。4.4 解压缩安装包rootwyg003 local# cd /usr/local/rootwyg003 local# tar zxvf Mycat-Server-1.4-RC-Linux-RW-20150724.tar.gzrootwyg00

10、3 local# mv Mycat-Server-1.4-RC-Linux-RW-20150724 Mycat说明:安装包已经提前上传到目录/usr/local/下,修改解压后文件夹名为Mycat4.5 增加Mycat相关的环境变量rootwyg003 Mycat# cdrootwyg003 # vi .bash_profileexport MYCAT_HOME=/usr/local/Mycatrootwyg003 #source .bash_profile说明:设置MYCAT_HOME目录;source 命令使之立即生效;4.6 修改Mycat配置文件4.6.1 修改server.xmlro

11、otwyg003 conf# cd /usr/local/Mycat/conf/rootwyg003 conf# vi server.xml !- 32 32 8066 9066 - test TESTDB 说明:进入/usr/local/Mycat/conf/目录修改,主要配置的是Mycat的用户名和密码,Mycat的用户名和密码和MySQL的用户名密码是分开的,应用连接Mycat就用这个用户名和密码。逻辑库TESTDB,用户名test,密码test;4.6.2 修改schema.xmlrootwyg003 conf# cd /usr/local/Mycat/conf/rootwyg003

12、conf# vi schema.xml select user() 说明:进入/usr/local/Mycat/conf/目录修改;主要配置主从库的数据库连接地址信息; schema name=TESTDB对应server.xml配置的Mycat逻辑库名称;属性设置balance =1代表全部的readHost与stand by writeHost参与select语句的负载均衡; witchType=2代表基于MYSQL主从同步的状态决定是否主从切换;4.7 启动Mycatrootwyg003 bin# cd /usr/local/Mycat/bin/rootwyg003 bin# ./myc

13、at startStarting Mycat-server.rootwyg003 bin#说明:进入目录/usr/local/Mycat/bin/执行;4.8 连接Mycatrootwyg003 bin# mysql -utest -ptest -h -P8066 -DTESTDBWarning: Using a password on the command line interface can be insecure.Reading table information for completion of table and column namesYou can turn

14、 off this feature to get a quicker startup with -AWelcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 9Server version: 5.5.8-mycat-1.4-alpha-20150520235658 MyCat Server (OpenCloundDB)Copyright (c) 2009-2015 Percona LLC and/or its affiliatesCopyright (c) 2000, 2015, Ora

15、cle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type help; or h for help. Type c to clear the current input statement.mysql说明:Mycat默认使用8066端口;4.9 查看Mycat逻辑库mysql show d

16、atabases;+-+| DATABASE |+-+| TESTDB |+-+1 row in set (0.00 sec)mysql select user();+-+| USER() |+-+| test |+-+1 row in set (0.01 sec)mysql说明:可以看到我们在server.xml配置的TESTDB逻辑库和test用户;4.10 关闭Mycat服务rootwyg003 bin# cd /usr/local/Mycat/bin/rootwyg003 bin# ./mycat stopStopping Mycat-server.Stopped M

17、ycat-server.rootwyg003 bin#说明:进入/usr/local/Mycat/bin/目录执行;5 读写分离验证先将日志的debug(log4j.xml文件)模式打开,执行建表插入数据操作;mysql create table user(id int not null primary key,name varchar(100);Query OK, 0 rows affected (0.20 sec)mysql insert into user(id,name) values(1,alibaba);Query OK, 1 row affected (0.07 sec)说明:执

18、行插入记录操作。rootwyg003 logs# more debug.log12/22 00:51:40.228 DEBUG $_NIOREACTOR-2-RW (NonBlockingSession.java:113) -ServerConnection id=1, schema=TESTDB, host=0:0:0:0:0:0:0:1, user=test,txIsolation=3, autocommit=true, schema=TESTDBinsert into user(id,name) values(1,alibaba), route= 1 - dn1insert into u

19、ser(id,name) values(1,alibaba) rrs 12/22 00:51:40.661 DEBUG $_NIOREACTOR-2-RW (MultiNodeQueryHandler.java:83) -execute mutinode query insert into user(id,name) values(1,alibaba)12/22 00:51:40.694 DEBUG $_NIOREACTOR-2-RW (MultiNodeQueryHandler.java:167) -received ok response ,executeResponse:true from MySQLConnection id=6, lastTime=1437541572734, schema=db1, old shema=db1, borrowed=true, fromSlaveDB=false, threadId=514, charset=gb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论