版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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_67"Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (bu
9、ild 24.65-b04, 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
10、.gzrootwyg003 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 修改
11、server.xmlrootwyg003 conf# cd /usr/local/Mycat/conf/rootwyg003 conf# vi server.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mycat:server SYSTEM "server.dtd"><mycat:server xmlns:mycat="http:/org.opencloudb/"> <system> <!- <pr
12、operty name="processors">32</property> <property name="processorExecutor">32</property> <property name="serverPort">8066</property> <property name="managerPort">9066</property> -> </system> <user name=&q
13、uot;test"> <property name="password">test</property> <property name="schemas"> TESTDB</property> </user></mycat:server>说明:进入/usr/local/Mycat/conf/目录修改,主要配置的是Mycat的用户名和密码,Mycat的用户名和密码和MySQL的用户名密码是分开的,应用连接Mycat就用这个用户名和密码。逻辑库TESTDB,用户名test
14、,密码test;4.6.2 修改schema.xmlrootwyg003 conf# cd /usr/local/Mycat/conf/rootwyg003 conf# vi schema.xml<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http:/org.opencloudb/"> <schema name="TESTDB" chec
15、kSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="
16、1" writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="wyg001" url="31:3306" user="root" password=&q
17、uot;123456"> <readHost host="wyg002" url="32:3306" user="root" password="123456" /> </writeHost> </dataHost></mycat:schema>说明:进入/usr/local/Mycat/conf/目录修改;主要配置主从库的数据库连接地址信息; schema name="TESTDB"对应server.xml配
18、置的Mycat逻辑库名称;属性设置balance =1代表全部的readHost与stand by writeHost参与select语句的负载均衡; witchType="2"代表基于MYSQL主从同步的状态决定是否主从切换;4.7 启动Mycatrootwyg003 bin# cd /usr/local/Mycat/bin/rootwyg003 bin# ./mycat startStarting Mycat-server.rootwyg003 bin#说明:进入目录/usr/local/Mycat/bin/执行;4.8 连接Mycatrootwyg003 bin# m
19、ysql -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 off this feature to get a quicker startup with -AWelcome to the MySQL monitor. Commands end with ; or g
20、.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, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation an
21、d/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 databases;+-+| DATABASE |+-+| TESTDB |+-+1 row in set (0.00 sec)mys
22、ql> 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 Mycat-server.rootwyg003 bin#说明:进入/usr/local/Mycat/bin/目录执行;
23、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)说明:执行插入记录操作。rootwyg003 logs# more debug.log1
24、2/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 user(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 r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年贷款担保协议范本(第三方)
- 城市扩建土地征用补偿协议样本
- 建立健全的研究生教育智能化评估与反馈机制策略
- 2024化房地产居间服务协议范本
- 2024测量技术员劳动协议范本
- 代理商合同范本
- 齐齐哈尔大学《师范生技能竞赛培训》2023-2024学年第一学期期末试卷
- 齐齐哈尔大学《马克思主义哲学原著选读》2022-2023学年第一学期期末试卷
- 齐齐哈尔大学《电子信息综合实验》2023-2024学年期末试卷
- 叉车租合同范本
- 三字经教案04,首孝悌,次见闻知某数,识某文一而十,十而百百而千,千而万三才者,天地人
- 非传统水源利用率计算书
- 废弃电器电子产品拆解处理综合管理系统使用手册
- 颈椎病护理查房 (3)PPT
- 02《文字下乡》课件13张-统编版高中语文必修上册
- 某集团公司战略地图
- 《线性代数》教案完整版教案整本书全书电子教案
- 旅游管理信息系统教材课件汇总完整版ppt全套课件最全教学教程整本书电子教案全书教案合集最新课件汇编
- 三年级下册美术课件-第4课 瓜果飘香丨赣美版
- 绿电制绿氢及其综合利用技术PPT
- JJG646-2006移液器检定规程-(高清现行)
评论
0/150
提交评论