MySQL互为主从+FEDERATED引擎实现多路径写入功能Mysql写负载均衡_第1页
MySQL互为主从+FEDERATED引擎实现多路径写入功能Mysql写负载均衡_第2页
MySQL互为主从+FEDERATED引擎实现多路径写入功能Mysql写负载均衡_第3页
MySQL互为主从+FEDERATED引擎实现多路径写入功能Mysql写负载均衡_第4页
全文预览已结束

下载本文档

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

文档简介

1、实用标准文案环境规划:Mysql互为主从+FEDERATED 实现写负载均衡机器名操作系统IP角色MySQL01CentOS5.6 32bit10.1.1.70Master >slaveMySQL02CentOS5.6 32bit10.1.1.80Slave >masterEdit by 笑天涯 Q : 2809160711、 概述:Mysql主重复制多用在数据库容灾,读写分离方面,因互为主从结构在高并发下各自自增键生成的ID可能导致主键冲突,所有一般的结构式一主多重结构如图一:图1图二而是用双主或多主并是用全局唯一ID生成机制的结构如图 2在图一中master节点是这个系统的写操

2、作最频繁的节点,如果该节点出现故障则新的订单将无法写入库, 可以采用淘宝是用的多系统拆策略,将不同系统的数据库独立,每个系统单独一个主从结构体。但是采用多主相互复制的结构,可以负载均衡写操作,实现多个写入口加多个读出口,提示系统的并 发链接数量。2、安装主要操作(1)、系统安装 略过(2)、mysql 安装:本实验使用的 mysql 版本是 mysql-5.5.34.tar.gz 、cmake 版本是 cmake-2.8.4.tar.gz ,其他 依赖包采用yum 安装。1创建mysql用户和组:Groupadd mysql && useradd mysqlpasswd mys

3、ql 修改 mysql 密码2编译安装cmake 略3编译安装 mysql :cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/-DMYSQL_DATADIR=/home/mysql -DWITH_DEBUG=0 精彩文档实用标准文案-DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_TCP_P

4、ORT=3306 -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock -DINSTALL_PLUGINDIR=/usr/local/mysql/plugin-with-plugins=federated编译完成后就直接 make && make install然后运行脚本mysql_install_db 、设置为服务,放置 f到/etc注:f中服务器配置下需新增一行federated=1 ,该引擎默认是关闭的,然后重启服务3、主从配置在master1 的f中确认以下选项,如果没有则添加binlog-bin =

5、mysql-binserver-id = 1replicate-do-db = zhw-制定复制的数据库配置完后重启服务在从端的f中确认以下选项,如果没有则添加binlog-bin = mysql-binserver-id = 2binlog-do-db = zhw-制定复制的数据库配置完后重启服务-添加用于从端复制的用户和权限grant replication slave on *.* to 'repl''10.1.1.70' identified by '123'-在从端sqlcmd中通过如下语句连接上主端(注意 ip、用户名、密码、文件、位

6、置)change master to master_host='10.1.1.80',master_user='repl',master_password='123', master_log_file='mysql-bin.000009' ,master_log_pos=107;因是互为主从,所有在 2台服务器上交换再次操作。4、配置 FEDERATED 表在mysql 中执行:show enginesG;可看到FEDERATED引擎是yes则可用。在MySQL01 test库中创建表:精彩文档实用标准文案Create table

7、 getid(maxid bigint not null,uname varchar(30)engine=Innodb;这个是普通的innodb表,用于记录数据库的最大ID当前值,该表非常重要,需经常做备份。在MySQL02 的test库中创建表:Create table getid(maxid bigint not null,uname varchar(30)engine=FEDERATED CONNECTION= ' mysql:/repl:12310.1.1.70:3306/test/getid'该表是MySQL01中的id最大表在MySQL02上的映射可像本地宝一样操作

8、。创建获取过程:CREATE PROCEDURE 'get_id'(in in_uname VARCHAR(30),-该表可配置多个选项out out_ActorID BIGINT)BEGINstart TRANSACTION;update test.getid-更新最大值set maxid=maxid+1where uname=in_uname;返回最大值select maxid into out_ActorID from test.getid where uname=in_uname;- COMMIT;end5、测试:在zhw库中创建表Create table GameActor(ActorID bigint not null,uname varchar(30) not null);该表用来保存角色的ID和角色名,因角色ID需全局唯一,所以需要唯一机制创建角色ID创建角色过程:CREATE PROCEDURE 'CreateActor'(in in_ActorName

温馨提示

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

评论

0/150

提交评论