mysql互为主从federated引擎实现多路径写入功能(mysql写负载均衡)

mysql互为主从federated引擎实现多路径写入功能(mysql写负载均衡)

ID:8810795

大小:113.77 KB

页数:3页

时间:2018-04-08

mysql互为主从federated引擎实现多路径写入功能(mysql写负载均衡)_第1页
mysql互为主从federated引擎实现多路径写入功能(mysql写负载均衡)_第2页
mysql互为主从federated引擎实现多路径写入功能(mysql写负载均衡)_第3页
资源描述:

《mysql互为主从federated引擎实现多路径写入功能(mysql写负载均衡)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Mysql互为主从+FEDERATED 实现写负载均衡Editby笑天涯Q:280916071环境规划:机器名操作系统IP角色MySQL01CentOS5.632bit10.1.1.70Master—>slaveMySQL02CentOS5.632bit10.1.1.80Slave—>master1、概述: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用户和组:Groupaddmysql&& useraddmysqlpas

3、swdmysql修改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_FEDERATED_STORAGE_ENGINE=

4、1-DWITH_PARTITION_STORAGE_ENGINE=1-DMYSQL_TCP_PORT=3306-DMYSQL_USER=mysql-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock-DINSTALL_PLUGINDIR=/usr/local/mysql/plugin-with-plugins=federated编译完成后就直接make&& makeinstall然后运行脚本mysql_install_db、设置为服务,放置my.cnf到/etc注:my.cnf中服务器配置下需新增一行fe

5、derated=1,该引擎默认是关闭的,然后重启服务1、主从配置在master1的my.cnf中确认以下选项,如果没有则添加binlog-bin=mysql-binserver-id=1replicate-do-db=zhw--制定复制的数据库配置完后重启服务在从端的my.cnf中确认以下选项,如果没有则添加binlog-bin=mysql-binserver-id=2binlog-do-db=zhw--制定复制的数据库配置完后重启服务--添加用于从端复制的用户和权限grantreplicationslaveon*.*to'repl'@'10

6、.1.1.70'identifiedby'123';--在从端sqlcmd中通过如下语句连接上主端(注意ip、用户名、密码、文件、位置)changemastertomaster_host='10.1.1.80',master_user='repl',master_password='123',master_log_file='mysql-bin.000009',master_log_pos=107;因是互为主从,所有在2台服务器上交换再次操作。2、配置FEDERATED 表在mysql中执行:showenginesG;可看到FEDERATE

7、D 引擎是yes则可用。在MySQL01test库中创建表:Createtablegetid(maxidbigintnotnull,unamevarchar(30))engine=Innodb;这个是普通的innodb表,用于记录数据库的最大ID当前值,该表非常重要,需经常做备份。在MySQL02的test库中创建表:Createtablegetid(maxidbigintnotnull,unamevarchar(30))engine=FEDERATED CONNECTION=’mysql://repl:123@10.1.1.70:3306/

8、test/getid’;该表是MySQL01中的id最大表在MySQL02上的映射可像本地宝一样操作。创建获取过程:CREATEPROCEDURE`get_id`(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。