MySQL 主主复制
200 ? "200px" : this.width)!important;}
-->
介绍
环境
OS:CentOS 6.7,MySQL 5.6
Master:192.168.137.10 hosts:master
Backup:192.168.137.20 hosts:slave
VIP:192.168.137.50
Master配置
修改cnf配置文件:
server_id = log_bin=/usr/local/mysql/data/mysql_bin max_binlog_size = 1G binlog_format=MIXED #binlog-do-db= binlog-ignore-db=test #这里记住不要加入系统数据库,多个数据库以逗号隔开 #replicate-do-db= replicate-ignore-db=test log-slave-updates slave-skip-errors=all auto_increment_increment= auto_increment_offset=
重启mysql
Service mysql restart
查看binglog位置
SHOW MASTER STATUS
由于是刚创建默认是:mysql_bin.000001:120
创建复制用户:
mysql –uroot -proot
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.80.%' IDENTIFIED BY 'repl';
flush privileges; change master to master_host = '192.168.137.20', master_user = 'repl', master_password = 'repl', master_log_file = 'mysql_bin.000001', #注意binlog的命名 master_log_pos = ;
启动复制,先在132上创建完复制用户再执行
start slave;
Backup配置
server_id = log_bin=/usr/local/mysql/data/mysql_bin max_binlog_size = 1G binlog_format=MIXED #binlog-do-db= binlog-ignore-db=test #replicate-do-db= replicate-ignore-db=test #这里记住不要加入系统数据库,多个数据库以逗号隔开 log-slave-updates slave-skip-errors=all auto_increment_increment= auto_increment_offset=
重启mysql
Service mysql restart
查看binglog位置
SHOW MASTER STATUS
由于是刚创建默认是:mysql_bin.000001:120
创建复制用户:mysql –uroot -proot
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.80.%' IDENTIFIED BY 'repl';
flush privileges; change master to master_host = '192.168.137.10', master_user = 'repl', master_password = 'repl', master_log_file = 'mysql-bin.000001', #注意binlog的命名 master_log_pos = ;
启动复制
start slave;
master keeplived安装配置
通过keeplived管理虚拟IP,并执行故障切换。
yum install openssl openssl-devel -y wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz tar -xvf keepalived-1.2..tar.gz cd keepalived-1.2. ./configure --prefix=/usr/local/keepalived make && make install
配置启动项
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/bin/
keepalived配置
master
vim /etc/keepalived/keepalived.conf
#! Configuration File forkeepalived
global_defs {
notification_email {
test@.com
}
notification_email_from ha@.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id MYSQL #组标识,双主相同
}
vrrp_instance VI_1 {
state BACKUP #两台都设置BACKUP
interface eth0
virtual_router_id #主备相同
priority #优先级,backup设置120 master设置150
advert_int
nopreempt #不主动抢占资源,两台都设置
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.137.50 #虚拟IP
}
}
virtual_server 192.168.137.50 {
delay_loop
#lb_algo rr #LVS算法,用不到,我们就关闭了
#lb_kind DR #LVS模式如果不关闭备用服务器不能通过VIP连接主MySQL
persistence_timeout #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP
real_server 192.168.137.10 { #检测本地mysql,backup也要写检测本地mysql
weight
notify_down /usr/local/keepalived/mysql.sh #当mysq服down时,执行此脚本,杀死keepalived实现切换
TCP_CHECK {
connect_timeout #连接超时
nb_get_retry #重试次数
delay_before_retry #重试间隔时间 }
}
}
backup
vim /etc/keepalived/keepalived.conf
#! Configuration File forkeepalived
global_defs {
notification_email {
test@.com
}
notification_email_from ha@.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id MYSQL #组标识,双主相同
}
vrrp_instance VI_1 {
state BACKUP #两台都设置BACKUP
interface eth0
virtual_router_id #主备相同
priority #优先级,backup设置120 master设置150
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.137.50
}
} virtual_server 192.168.137.50 {
delay_loop
#lb_algo rr #LVS算法,用不到,我们就关闭了
# #lb_kind DR #LVS模式如果不关闭备用服务器不能通过VIP连接主MySQL
persistence_timeout #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP
real_server 192.168.137.20 { #检测本地mysql,backup也要写检测本地mysql
weight
notify_down /usr/local/keepalived/mysql.sh #当mysq服down时,执行此脚本,杀死keepalived实现切换
TCP_CHECK {
connect_timeout #连接超时
nb_get_retry #重试次数
delay_before_retry #重试间隔时间 }
}
}
注意:nopreempt(不主动抢占)针对优先级高的一方是有效的;如果不使用 nopreempt 那么优先级高的服务器每次重启都会把VIP抢占过去,这样会导致VIP频繁切换。正常情况下VIP切换到了哪一台服务器就把那台作为主不需要再抢占回去,目前测试nopreempt针对优先级低的一方没有效果,优先级低的不加上该参数也不会把优先级高的VIP抢占走。
将keepalived加入系统启动项
chkconfig --add keepalived chkconfig keepalived on
vim /usr/local/keepalived/mysql.sh
#!/bin/bash pkill keepalived
修改文件可执行权限
chmod +x /usr/local/keepalived/mysql.sh
启动Keepalived
service keepalived start
查看VIP状态
ip add
注意:在文件配置中使用备注千万要注意,要确保你的备注被识别为备注,之前就遇到过这样的问题在代码后使用#备注由于#和实际的代码挨在一起被程序当成了代码导致整个配置出现了问题,特别是这种问题很难找,所以代码中使用备注千万要小心。
总结
|
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
MySQL 主主复制的更多相关文章
- mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...
- mysql数据库主从及主主复制配置演示
实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有2台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 实验拓 ...
- MySQL复制环境(主从/主主)部署总结性梳理
Mysql复制概念说明Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves) ...
- MySQL数据的主从复制、半同步复制和主主复制详解
一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...
- MySQL主主复制
MySQL5. 主主复制 环境如下: CentOS6.4_64 MySQL5. master1:192.168.10.11 master2:192.168.10.12 1.1 配置 master1 a ...
- MySQL主主复制3
一.创建并授权用户 在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库 在Server-1上: 创建一个充许Server-2来访问的用户server2,密码为:server ...
- 【MySQL】主备复制
复制对于mysql的重要性不言而喻,mysql集群的负载均衡,读写分离和高可用都是基于复制实现.下文主要从4个方面展开,mysql的异步复制,半同步复制和并行复制,最后会简单聊下第三方复制工具.由于生 ...
- mysql主主复制(双主复制)配置步骤
以前我们介绍的都是主从复制,这里给各位介绍一个双主复制了,下面都希望两个主服务器数据自动复制的话可参考一下此文章. MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任何一台 ...
- mysql主从复制 主主复制 读写分离
首先是mysql的主从复制很简单 主主复制也就是互相主从最麻烦的最难的就是日志恢复,增量恢复什么的比较复杂 首先如果你不会安装mysql版本最好一样,或者往上的版本,因为mysql是向下兼容 请注意不 ...
- MYSQL的主从和主主复制模式
一.复制介绍 MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录 ...
随机推荐
- C++预定义宏
C/C++宏体中出现的#,#@,##: - #的功能是将其后面的宏参数进行字符串化操作(stringfication),就是对它所引用的宏变量通过替换后在其左右各加上一个双引号 -##被称为连接符(c ...
- mysql从身份证号中提取生日、性别
SELECT p.ID, p.IDCardNo, IF ( LENGTH(p.IDCardNo) , CAST( , ) AS DATETIME ), CAST( CONCAT( ', , ) ) A ...
- 【Hawk】入门教程(1)——从URL开始
入门教程(1)--从URL开始 首先感谢辛苦的沙漠君 先把沙漠君的教程载过来:)可以先看一遍 Hawk-数据抓取工具:简明教程 Hawk 数据抓取工具 使用说明(二) 20分钟无编程抓取大众点评17万 ...
- js模拟抛出球运动
js练手之模拟水平抛球运动 -匀加速运动 -匀减速运动 模拟运动有些基本的思路,当前所在点的坐标,元素的长宽是多少,向右/向下运动x/y增加,向上/向左运动x/y减少,运动的路程是多少,用什么方程进行 ...
- 关于jquery简单操作简单表格
最近在摸索jquery中,想着学习过程中还是记下点自己的东西比较好,不管是日后自己查阅,亦或是对于他人有些许帮助. 也是一件两全其美的事情了. 下面我就简单 贴上自己的html中重要部分了. 具体实现 ...
- WPF CodeBehind后台动态创建图片及添加事件
问题:WPF中DataGrid需要动态生成列并绑定值,首列包含图片和文本,点击图片触发事件. 难点:1.图片资源在VisualTree中的绑定 2.图片的事件绑定 public class Mai ...
- 原生JS 年月日、省市区 三级联动
这个算生日日期,因为是从100年前的到现年. <select id="sel_year"></select> <select id="sel ...
- Thinkphp3.2.3使用Ajax一定注意 数据返回
Thinkphp3.2.3使用Ajax一定注意 数据返回 $data = 'ok'; $this->ajaxReturn($data); 不能直接 echo $data;
- javaweb初学记录
原文 链接 http://blog.csdn.net/iojust/article/details/52429805 - ---热情依旧 - 环境搭建: - jdk环境配置 jdk下载: http:/ ...
- 基于node.js的压缩合并安装
1.构建工具(grunt,gulp) 下载地址:http://gruntjs.cn/http://gruntjs.com/ (1)安装nodejs(http://www.nodejs.org/) 验证 ...