MYSQL分布式中间件课题研究报告

上传人:人*** 文档编号:470326948 上传时间:2023-05-07 格式:DOC 页数:13 大小:61.50KB
返回 下载 相关 举报
MYSQL分布式中间件课题研究报告_第1页
第1页 / 共13页
MYSQL分布式中间件课题研究报告_第2页
第2页 / 共13页
MYSQL分布式中间件课题研究报告_第3页
第3页 / 共13页
MYSQL分布式中间件课题研究报告_第4页
第4页 / 共13页
MYSQL分布式中间件课题研究报告_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《MYSQL分布式中间件课题研究报告》由会员分享,可在线阅读,更多相关《MYSQL分布式中间件课题研究报告(13页珍藏版)》请在金锄头文库上搜索。

1、-MYSQL分布式中间件一、 MYSQL数据库主从复制的实现MySQL的主从复制是通过binlog日志来实现的,主从复制中的“主指的是MySQL主效劳器上的数据库,“从指的是MySQL从效劳器上的数据库,且这种复制是基于数据库级别的,为此从效劳器中的数据库名称必须和主效劳器中的数据库名称保持一致,则,要想实现主从复制,我们至少要有两个MySQL效劳器最好是两个MySQL效劳器分别位于不同的主机上,或者在一个主机上安装两个MySQL,端口不同即可数据库效劳器的参数: 主效劳器master: IP为127.0.0.1,端口为33306 从效劳器slave: IP为127.0.0.1,端口为3330

2、7 从效劳器slave: IP为127.0.0.1,端口为33308主效劳器配置:修改主效劳器的数据库配置文件mysqlbinmy.ini,在 mysqld 标签的最下面,添加如下代码:*需要备份的数据库binlog-do-db=mycat*不需要备份的数据库binlog-ignore-db=mysql*开启二进制日志log-bin=mysql-bin*效劳器idserver-id=1保存退出,重启MySQL主效劳器。binlog-do-db用于指定需要同步的数据库,binlog-ignore-db指定不需要同步的数据库,如果这两个参数都不设置,则从效劳器会复制主效劳器的所有数据库。一般不用r

3、oot账号作同步账号,为此,我们需要在主效劳器上创立一个新的用户如 user01,密码为123456这里我们用命令行的方式创立,方法如下:翻开cmd,切换至 mysqlbin,用 root 账户连接MySQL主效劳器: mysql -uroot - -P33306创立新用户: create user user01127.0.0.1 identified by 123456;后面的ip地址为允许连接的客户端的ip地址。然后,给新用户配置主从复制的权限:grant replication slave on *.* to user01127.0.0.1 identified by 123456;后面

4、的ip地址为允许连接的客户端的ip地址,如果改为 %,就表示客户端没有ip地址的限制如果主效劳器的数据库mycat中,已经有数据,我们需要先手动把主效劳器中的数据复制到从效劳器。方法如下:在本案例中,我们只备份一个数据库mycat,mycat中有一个表user,表中也已经有了数据。为了防止我们复制数据的时候,数据库mycat中的数据发生更新,我们需要先锁定数据库,命令如下:flush tables with read lock;这个命令是全局读锁定,它会给主效劳器中的所有数据库都加上读锁,这里顺便说一下读锁和写锁的区别: read lock读锁:也叫共享锁,允许所有的读操作,但阻塞写操作,即所

5、有连接只可以读数据,但不允许写数据。 write lock写锁:也叫排它锁、独占锁,只允许当前连接的读和写,不允许其他并发的读操作和写操作。锁定主效劳器的数据库后,我们在从效劳器中,也创立一个数据库test,并将所有的表包括表构造和表数据都导入。然后,我们执行下面的命令,解锁:unlock tables; 查看主效劳器的 master 状态:mysql show master status;从效劳器配置:修改从效劳器的数据库配置文件mysqlmy.ini,在 mysqld 标签的最下面,添加如下代码:*端口port = 33307*效劳器idserver_id = 2*开启二进制日志从效劳器不

6、是必须要开启二进制日志log-bin=mysql-bin保存退出,重启MySQL效劳。连接MySQL从效劳器:mysql -uroot - -P33307配置复制的参数:change master to master_host=127.0.0.1,master_user=user01,master_password=123456,master_port=33306,master_log_file=mysql-bin.000008,master_log_pos=498;参数详解:master_host: 主效劳器的IPmaster_user: 主效劳器上新创立的用户名master_passwor

7、d: 用户的密码master_port: 主效劳器的端口,如果未曾修改,默认即可。master_log_file: 主效劳器二进制日志文件的名称,填写查看主效劳器的master状态时显示的File的值master_log_pos: 日志的位置,填写查看主效劳器的master状态时显示的Position的值启动从效劳器的slave复制功能:start slave;查看从效劳器的slave状态:mysql show slave status G如果 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes,则说明主从复制的所有配置已成功,即从效劳器已经可以自动与主

8、效劳器的数据库数据实现同步了二、 MYSQL数据库读写别离1. 数据库中间件选型:Cobar:阿里巴巴B2B开发的关系型分布式系统,管理将近3000个MySQL实例。 在阿里经受住了考验,后面由于作者的走开的原因cobar没有人维护 了,阿里也开发了tddl替代cobar。MyCAT:社区爱好者在阿里cobar根底上进展二次开发,解决了cobar当时存 在的一些问题,并且参加了许多新的功能在其中。目前MyCAT社区活 跃度很高,目前已经有一些公司在使用MyCAT。总体来说支持度比 较高,也会一直维护下去,OnePro*y:数据库界大牛,前支付宝数据库团队领导楼总开发,基于mysql官方 的pr

9、o*y思想利用c进展开发的,OnePro*y是一款商业收费的中间件, 楼总舍去了一些功能点,专注在性能和稳定性上。有朋友测试过说在 高并发下很稳定。Vitess:这个中间件是Youtube生产在使用的,但是架构很复杂。 与以往中间件不同,使用Vitess应用改动比较大,要使用他提供语言的API接口,我们可以借鉴他其中的一些设计思想。Kingshard:Kingshard是前360Atlas中间件开发团队的陈菲利用业务时间 用go语言开发的,目前参与开发的人员有3个左右, 目前来看还不是成熟可以使用的产品,需要在不断完善。Atlas:360团队基于mysql pro*y 把lua用C改写。原有版

10、本是支持分表, 目前已经放出了分库分表版本。在网上看到一些朋友经常说在高并 发下会经常挂掉,如果大家要使用需要提前做好测试。Ma*Scale与MySQL Route:这两个中间件都算是官方的吧,Ma*Scale是mariadb (MySQL原作者维护的一个版本)研发的,目前版本不支持分库分表。2. MYCAT概述2.1 什么是MyCat.简单的说,MyCAT就是: 一个新颖的数据库中间件产品; 一个彻底开源的、面向企业应用开发的“大数据库集群; 支持事务、ACID、可以替代MySQL的加强版数据库; 一个可以视为“MySQL集群的企业级数据库,用来替代昂贵的Oracle集群; 一个融合内存缓存

11、技术、Nosql技术、HDFS大数据的新型SQL Server; 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品。2.2 MyCat的目标MyCAT的目标是:低本钱的将现有的单机数据库和应用平滑迁移到“云端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。2.3 MyCat的关键特性 支持 SQL 92标准 支持Mysql集群,可以作为Pro*y使用 支持JDBC连接ORACLE、DB2、SQL Server,将其模拟为MySQL Server使用 支持NoSQL数据库 支持galera for mysql集群,percona-cluster或者mariadb cluster,

12、提供高可用性数据分片集群 自动故障切换,高可用性 支持读写别离,支持Mysql双主多从,以及一主多从的模式 支持全局表,数据自动分片到多个节点,用于高效表关联查询 支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询 支持一致性Hash分片,有效解决分片扩容难题 多平台支持,部署和实施简单 支持Catelet开发,类似数据库存储过程,用于跨分片复杂SQL的人工智能编码实现,143行Demo完成跨分片的两个表的JION查询。 支持NIO与AIO两种网络通信机制,Windows下建议AIO,Linu*下目前建议NIO 支持Mysql存储过程调用 以插件方式支持SQL拦截和改写 支持自增长主

13、键、支持Oracle的Sequence机制2.4 MyCat的优势 基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能,以及众多成熟的使用案例使得MyCAT一开场就拥有一个很好的起点,站在巨人的肩膀上,能看到更远。 广泛吸取业界优秀的开源工程和创新思路,将其融入到MyCAT的基因中,使得MyCAT在很多方面都领先于目前其他一些同类的开源工程,甚至超越*些商业产品。 MyCAT背后有一只强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了MyCAT的产品质量。 MyCAT并不依托于任何一个商业公司,因此不像*些开源工程,将一些重

14、要的特性封闭在其商业产品中,使得开源工程成了一个摆设。3. MYCAT下载和安装3.1 MyCAT使用Java开发,因为用到了JDK 7的局部功能,所以在使用前请确保安装了JDK 7.0,要求是JDK 7.0以上,并设置了正确的Java环境变量。目前下载的版本Mycat-server-1.6-RELEASE-710-win.tar.gz是免安装,解压在任意磁盘、根目录下,防止路径中出现中文,需配置环境变量MYCAT_HOME。解压后的目录构造如以下图所示:目录说明:Bin: 存放window版本和linu*版本,除了提供封装成效劳的版本之外,也提供nowrap的shell脚本命令,方便大家选择

15、和修改。Windows 下 运行:mycat.bat console在控制台启动程序,也可以装载成效劳,假设此程序运行有问题,也可以运行startup_nowrap.bat,确保java命令可以在命令执行。 Conf: 存放配置文件:l server.*ml:是Mycat效劳器参数调整和用户授权的配置文件。l schema.*ml:是逻辑库定义和表以及分片定义的配置文件。l rule.*ml:是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改,需要重启MyCAT或者通过9066端口reload。l wrapper.conf:JVM配置参数等设置。l log4j.*ml:日志存放在logs/mycat.log中,每天一个文件,日志的配置是在conf/log4j.*ml中,根据自己的需要,可以调整输出级别为debug,debug级别下,会输出更多的信息,方便排查问题。 Lib:MyCAT自身的jar包或依赖的jar

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号