版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1 Mycat概述 12 读写分离 32.1 读写分离定义 32.2 优缺点 43 安装环境 44 Mycat安装配置 44.1 首先确认Mycat服务器网络是否联通 44.2 检查JAVA版本 54.3 下载Mycat安装包 54.4 解压缩安装包 54.5 增加Mycat相关的环境变量 54.6 修改Mycat配置文件 64.6.1 修改server.xml 64.6.2 修改schema.xml 64.7 启动Mycat 74.8 连接Mycat 74.9 查看Mycat逻辑库 84.10 关闭Mycat服务 85 读写分离验证 8Mycat概述Mycat从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQLServer、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。Mycat架构图Mycat支持基于MySQL主从复制状态的高级读写分离控制机制读写分离读写分离定义为了确保数据库产品的稳定性,很多数据库拥有双机热备功能。也就是,第一台数据库服务器,是对外提供增删改查业务的生产服务器;第二台数据库服务器,仅仅接收来自第一台服务器的备份数据。一般来说,为了配置方便,以及稳定性,这两台数据库服务器,都用的是相同的配置。在实际运行中,第一台数据库服务器的压力,远远大于第二台数据库服务器。因此,很多人希望合理利用第二台数据库服务器的空闲资源。从数据库的基本业务来看,数据库的操作无非就是增删改查这4个操作。但对于“增删改”这三个操作,如果是双机热备的环境中做,一台机器做了这三个操作的某一个之后,需要立即将这个操作,同步到另一台服务器上。出于这个原因,第二台备用的服务器,就只做了查询操作。进一步,为了降低第一台服务器的压力,干脆就把查询操作全部丢给第二台数据库服务器去做,第一台数据库服务器就只做增删改了。优缺点优点:合理利用从数据库服务器的空闲资源。缺点:本来第二台数据库服务器,是用来做热备的,它就应该在一个压力非常小的环境下,保证运行的稳定性。而读写分离,却增加了它的压力,也就增加了不稳定性。因此,读写分离,实质上是一个在资金比较缺乏,但又需要保证数据安全的需求下,在双机热备方案上,做出的一种折中的扩展方案。安装环境MySQL主库MySQL从库Mycat服务器操作系统Centos6.564位Centos6.564位Centos6.564位主机名wyg001wyg002wyg003IP313233数据库版本MySQL5.6.23MySQL5.6.23MySQL5.6.23说明:Mycat由Java语言开发,运行环境为JDK1.7及以上的版本,Mycat服务器需要安装JDB1.7或以上版本;MySQL主库和从库MySQL数据库服务已经开启并且开启主从同步;建议Mycat服务器本地有一个MySQLServer,若没有,建议安装一个;Mycat安装配置首先确认Mycat服务器网络是否联通用IP地址为33的主机ping31的机器,其结果如下:[root@wyg003conf]#ping31PING31(31)56(84)bytesofdata.64bytesfrom31:icmp_seq=1ttl=64time=1.93ms64bytesfrom31:icmp_seq=2ttl=64time=0.468ms64bytesfrom31:icmp_seq=3ttl=64time=0.539ms用IP地址为33的主机ping32的机器,其结果如下:[root@wyg003conf]#ping32PING32(32)56(84)bytesofdata.64bytesfrom32:icmp_seq=1ttl=64time=7.97ms64bytesfrom32:icmp_seq=2ttl=64time=0.448ms64bytesfrom32:icmp_seq=3ttl=64time=0.446ms说明:网络不通的话请先检查网络。检查JAVA版本[root@wyg003bin]#java-versionjavaversion"1.7.0_67"Java(TM)SERuntimeEnvironment(build1.7.0_67-b01)JavaHotSpot(TM)64-BitServerVM(build24.65-b04,mixedmode)说明:Mycat由Java语言开发,运行环境为JDK1.7及以上的版本,Mycat服务器需要安装JDB1.7或以上版本;如果版本过低请下载JDK1.7或以上版本安装;下载Mycat安装包/MyCATApache/Mycat-download这里下载的版本是Mycat1.4-RELEASE版;下载完成后通过FTP或传输软件将安装包上传到服务器目录/usr/local/下。解压缩安装包[root@wyg003local]#cd/usr/local/[root@wyg003local]#tarzxvfMycat-Server-1.4-RC-Linux-RW-20150724.tar.gz[root@wyg003local]#mvMycat-Server-1.4-RC-Linux-RW-20150724Mycat说明:安装包已经提前上传到目录/usr/local/下,修改解压后文件夹名为Mycat增加Mycat相关的环境变量[root@wyg003Mycat]#cd[root@wyg003~]#vi.bash_profileexportMYCAT_HOME=/usr/local/Mycat[root@wyg003~]#source.bash_profile说明:设置MYCAT_HOME目录;source命令使之立即生效;修改Mycat配置文件修改server.xml[root@wyg003conf]#cd/usr/local/Mycat/conf/[root@wyg003conf]#viserver.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmycat:serverSYSTEM"server.dtd"><mycat:serverxmlns:mycat="http://org.opencloudb/"><system><!--<propertyname="processors">32</property><propertyname="processorExecutor">32</property><propertyname="serverPort">8066</property><propertyname="managerPort">9066</property>--></system><username="test"><propertyname="password">test</property><propertyname="schemas">TESTDB</property></user></mycat:server>说明:进入/usr/local/Mycat/conf/目录修改,主要配置的是Mycat的用户名和密码,Mycat的用户名和密码和MySQL的用户名密码是分开的,应用连接Mycat就用这个用户名和密码。逻辑库TESTDB,用户名test,密码test;修改schema.xml[root@wyg003conf]#cd/usr/local/Mycat/conf/[root@wyg003conf]#vischema.xml<?xmlversion="1.0"?><!DOCTYPEmycat:schemaSYSTEM"schema.dtd"><mycat:schemaxmlns:mycat="http://org.opencloudb/"><schemaname="TESTDB"checkSQLschema="false"sqlMaxLimit="100"dataNode="dn1"></schema><dataNodename="dn1"dataHost="localhost1"database="db1"/><dataHostname="localhost1"maxCon="1000"minCon="10"balance="1"writeType="0"dbType="mysql"dbDriver="native"switchType="2"slaveThreshold="100"><heartbeat>selectuser()</heartbeat><writeHosthost="wyg001"url="31:3306"user="root"password="123456"><readHosthost="wyg002"url="32:3306"user="root"password="123456"/></writeHost></dataHost></mycat:schema>说明:进入/usr/local/Mycat/conf/目录修改;主要配置主从库的数据库连接地址信息;schemaname="TESTDB"对应server.xml配置的Mycat逻辑库名称;属性设置balance=1代表全部的readHost与standbywriteHost参与select语句的负载均衡;witchType="2"代表基于MYSQL主从同步的状态决定是否主从切换;启动Mycat[root@wyg003bin]#cd/usr/local/Mycat/bin/[root@wyg003bin]#./mycatstartStartingMycat-server...[root@wyg003bin]#说明:进入目录/usr/local/Mycat/bin/执行;连接Mycat[root@wyg003bin]#mysql-utest-ptest-h-P8066-DTESTDBWarning:Usingapasswordonthecommandlineinterfacecanbeinsecure.ReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaquickerstartupwith-AWelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis9Serverversion:5.5.8-mycat-1.4-alpha-20150520235658MyCatServer(OpenCloundDB)Copyright(c)2009-2015PerconaLLCand/oritsaffiliatesCopyright(c)2000,2015,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>说明:Mycat默认使用8066端口;查看Mycat逻辑库mysql>showdatabases;++|DATABASE|++|TESTDB|++1rowinset(0.00sec)mysql>selectuser();++|USER()|++|test@|++1rowinset(0.01sec)mysql>说明:可以看到我们在server.xml配置的TESTDB逻辑库和test用户;关闭Mycat服务[root@wyg003bin]#cd/usr/local/Mycat/bin/[root@wyg003bin]#./mycatstopStoppingMycat-server...StoppedMycat-server.[root@wyg003bin]#说明:进入/usr/local/Mycat/bin/目录执行;读写分离验证先将日志的debug(log4j.xml文件)模式打开,执行建表插入数据操作;mysql>createtableuser(idintnotnullprimarykey,namevarchar(100));QueryOK,0rowsaffected(0.20sec)mysql>insertintouser(id,name)values(1,'alibaba');QueryOK,1rowaffected(0.07sec)说明:执行插入记录操作。[root@wyg003logs]#moredebug.log12/2200:51:40.228DEBUG[$_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=TESTDB]insertintouser(id,name)values(1,'alibaba'),route={1->dn1{insertintouser(id,name)values(1,'alibaba')}}rrs12/2200:51:40.661DEBUG[$_NIOREACTOR-2-RW](MultiNodeQueryHandler.java:83)-executemutinodequeryinsertintouser(id,name)values(1,'alibaba')12/2200:51:40.694DEBUG[$_NIOREACTOR-2-RW]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 假期读一本好书读后感900字(12篇)
- 2024全新能源开发项目投资与合作合同
- 中式快餐创业计划书
- 2024年工业设备维修协议
- 2024年度4S店租赁期内公共区域维护与管理协议
- 2024年建筑工程消防设计与施工合同
- 2024年企业广告发布与媒体投放合同
- 2024年大数据分析与应用服务协议
- 2024年度「惠州技术开发」合同标的:技术研发与成果共享
- 2024年工程项目混凝土供应合同
- 临床微生物学检验-实验系列肠杆菌科的微生物检验
- GB/T 22844-2009配套床上用品
- GB/T 14683-2017硅酮和改性硅酮建筑密封胶
- 无人机校企合作协议
- 工程设备进场进场开箱验收单
- 中国互联网发展概述XXXX
- GB 16809-2008防火窗
- 2018年木地板公司组织架构及部门职能
- 《百团大战》历史课件
- 银行涉农贷款专项统计制度讲解
- DB31-T 540-2022 重点单位消防安全管理要求
评论
0/150
提交评论