双主MySQL+keepalived高可用配置
部署双节点双主数据库服务器mysql
分别在二台服务器上安装mysql,要求同版本或主服务器比从服务器版本高。
主机mysql配置:
Vi /etc/my.cnf
[mysqld]
Log-bin=mysql-bin
Server-id=1
Service mysqld restart
Mysql –uroot –p

从mysql配置:
Vi /etc/my.cnf
[mysqld]
Log-bin=mysql-bin
Server-id=2
然后从主mysql导出数据,mysql –uroot –p dump –single-transaction *** > ***.sql
导入到从mysql数据库:mysql –uroot –p *** < ***.sql(***表示数据库名)
从服务器:

可能遇到的问题:log-bin一定不是log_bin,并且位置在[mysqld]的里面。否则日志不能正常开启。
主服务器:

测试:

以下为部署keepalived双主高可用:
二个服务器IP10.16.37.101,10.16.37.94,一个VIP10.16.37.200。
安装keepalived:
下载keepalived-1.2.23.tar.gz
tar –xvf keepalived-1.2.23.tar.gz –C /opt
cd /opt/keepalived-1.2.23/
./configure prefix=/usr/local/keepalived
make & make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
vi /etc/keepalived/keepalived.conf
主配置:(10.16.37.101)
! Configuration File for keepalived
global_defs {
notification_email {
627885927@qq.com #通知邮箱
}
notification_email_from 627885927@qq.com
smtp_server 127.0.0.1 #表示发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
smtp_connect_timeout 30 #连接smtp超时时间
router_id MySQL-ha #一般为主机名
}
vrrp_instance VI_1 {
state BACKUP #都为BACKUP
interface eth0
virtual_router_id 51
priority 100 #权限100
advert_int 1
nopreempt #不抢占
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.16.37.200 #虚拟IP地址,即VIP
}
}
virtual_server 10.16.37.200 3306 { #监控端口及配置
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 10.16.37.101 3306 { #真实IP地址
weight 3
notify_down /usr/local/MySQL/bin/MySQL.sh #宕机脚本
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
}
从配置:(10.16.37.94)
! Configuration File for keepalived
global_defs {
notification_email {
627885927@qq.com #通知邮箱
}
notification_email_from 627885927@qq.com
smtp_server 127.0.0.1 #表示发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
smtp_connect_timeout 30 #连接smtp超时时间
router_id Nginx-ha #一般为主机名
}
vrrp_instance VI_1 {
state BACKUP #都为BACKUP
interface eth0
virtual_router_id 51
priority 90 #权限90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.16.37.200 #虚拟IP地址,即VIP
}
}
virtual_server 10.16.37.200 3306 { #监控端口及配置
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 10.16.37.94 3306 { #真实IP地址
weight 3
notify_down /usr/local/MySQL/bin/MySQL.sh #宕机脚本
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
}
vi /usr/local/MySQL/bin/MySQL.sh
#!/bin/bash
pkill keepalived
# chmod +x /usr/local/MySQL/bin/MySQL.sh
测试:关闭一台服务器mysql,ps aux | grep keepalved查看keepalived是否自动关闭。注意防火墙和selinux的关闭!!
双主MySQL+keepalived高可用配置的更多相关文章
- MySQL+Keepalived高可用配置
注意:首先关闭两台机器的防火墙 setenforce 0 Environment: 2台CentOS测试机器 安装好MySQL 1.两台机器安装keepalived yum -y install k ...
- Mysql+Keepalived双主热备高可用操作记录
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...
- 使用Keepalived实现Nginx的自动重启及双主热备高可用
1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...
- Oracle Compute云快速搭建MySQL Keepalived高可用架构
最近有个客户在测试Oracle Compute云,他们的应用需要使用MySQL数据库,由于是企业级应用一定要考虑高可用架构,因此有需求要在Oracle Compute云上搭建MySQL高可用集群.客户 ...
- 通过keepalived搭建MySQL双主模式的高可用集群系统
1. 配置MySQL双主模式 1.修改my.cnf配置文件 默认情况下,MySQL的配置文件是/etc/my.cnf,在配置文件的[mysqld]段添加如下内容: server-id=1 log-bi ...
- MySQL主主模式+Keepalived高可用
今天闲来无事,打算搭建一个MySQL的高可用架构,采用的是MySQL的主主结构,再外加Keepalived,对外统一提供虚IP.先来说说背景吧,现在的项目为了高可用性,都是避免单节点的存在的,比如,我 ...
- mysql+keepalived 双主热备高可用
理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互 ...
- 【Keepalived+MySQL】MySQL双主互备+高可用
一.基本信息说明 [DB1] IP: 192.168.102.144 hostname: LVS-Real1 [DB2] IP: 192.168.102.145 hostname: LVS-Real2 ...
- 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)
前言: 原理与思想 这里选用GTID主从复制模式Mysql主从复制模式,是为了更加确保主从复制的正确性.健康性与易配性.这里做的是两服务器A,B各有Mysql实例331 ...
随机推荐
- Android使用ndk-stack获取so奔溃堆栈
利用NDK做开发,因为各种原因的不小心,导致了闪退问题,没有stack的话,很难查到问题的所在.这时候ndk-stack出场了. 先看看如下DUMP信息: ********** Crash dump: ...
- 删除txt文件每行第一(n)个空格前内容的方法
1. 把要处理的文本保存在a.txt文件中 2. 在相同文件夹中新建一个xx.txt文件,输入下面代码,再把文件名改为xx.bat. @echo offset fn=a.txt(for /f &quo ...
- 【转】PowerShell入门(十一):编写脚本模块
转至:http://www.cnblogs.com/ceachy/archive/2013/03/08/PowerShell_Script_Module.html 现在通过编写模块就可以在PowerS ...
- [摘]在ASP.NET MVC中使用DropDownList
在ASP.NET MVC中,尽管我们可以直接在页面中编写HTML控件,并绑定控件的属性,但更方便的办法还是使用HtmlHelper中的辅助方法.在View中,包含一个类型为HtmlHelper的属性H ...
- HTML、JavaScript之单双引号转义
一.HTML : 双引号:" 单引号:' 二.JavaScript: 双引号:\" 单引号:\'
- Java设计模式(一)——代理模式
有高手云:了解设计模式才算是入门级的程序员. 所以为了入门我打算把我学习到的设计模式逐条总结下来.和别人的文章不同,我几乎只提供了测试源码与细节分类.原因是,我相信对于设计来说,你永远无法给出终极答案 ...
- cookie 的创建 得到 删除
//设置cookie function setCookie(attr,value,time){ if(time){ var newtime=new Date(); newtime.setTime(ne ...
- 快速增加sql数据
declare @i int begin insert into dbo.w10test(Name) select Name from dbo.w10test end;
- 【转】不容忽视的ClassNotFoundException
转载地址:http://it.deepinmind.com/jvm/2014/04/11/classnotfoundexception-is-it-slowing-down-your-jvm.html ...
- TopCoder kawigiEdit插件配置
kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...