Keepalived+Mysql互为主从高可用安装配置

Keepalived+Mysql互为主从高可用安装配置
环境介绍:
keepalived_vip=192.168.1.210    (写虚拟ip)
mysql_master01      eth0:192.168.1.211  eth1:172.20.27.211 (1核1G)
mysql_master02      eth0:192.168.1.212  eth1:172.20.27.212 (1核1G)

1.安装mysql数据库(所有节点安装)
  //此处省略安装mysql服务
2.编辑my.cnf配置文件
2.1修改mysql_master01配置文件

vim /usr/local/lnmp/mysql/etc/my.cnf
server_id = 211

2.2修改mysql_master02配置文件

vim /usr/local/lnmp/mysql/etc/my.cnf
server_id = 212

3.搭建互为主从
3.1在mysql_master01上面操作
3.1.1为mysql_master02建立主从同步权限

mysql -u root -p123456 //进入数据库
grant replication slave on *.* to ‘backup‘@‘192.168.1.212‘ identified by ‘backup‘; //建立权限
flush privileges; //刷新权限表

3.1.2拷贝数据到mysql_master02节点

mysql -u root -p123456 //进入数据库
flush tables with read lock; //锁表,准备备份数据
mysql> show master status\G  //查看主节点信息
*************************** 1. row ***************************
             File: mysql-bin.000005
         Position: 1231
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

mysqldump -u root -p123456 liu >liu.sql //备份liu这个数据库
mysql -u root -p123456 //进入数据库
unlock tables; //解锁
scp liu.sql [email protected]:/root/   //拷贝数据

3.2在mysql_master02上面操作
3.2.1恢复liu.sql到数据库

mysql -u root -p123456 //进入数据库
create database liu; //创建恢复的数据库名
use liu; //进入数据库
source /root/liu.sql //恢复数据

3.2.2建立主从同步关系

mysql -u root -p123456 //进入数据库
change master to 
master_host=‘192.168.1.211‘,master_user=‘backup‘,master_password=‘backup‘,master_log_file=‘mysql-bin.000005‘,master_log_pos=1231; //建立主从同步关系
start slave; //启动从库同步
show slave status\G  //检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。

3.2.3为mysql_master01建立主从同步权限

mysql -u root -p123456 //进入数据库
grant replication slave on *.* to ‘backup‘@‘192.168.1.211‘ identified by ‘backup‘; //建立权限
flush privileges; //刷新权限表
mysql> show master status\G //查看主节点信息
*************************** 1. row ***************************
             File: mysql-bin.000004
         Position: 1242
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

3.3在mysql_master01上面操作
3.3.1建立主从同步关系

mysql -u root -p123456 //进入数据库
change master to 
master_host=‘192.168.1.212‘,master_user=‘backup‘,master_password=‘backup‘,master_log_file=‘mysql-bin.000004‘,master_log_pos=1242; //建立主从同步关系
start slave; //启动从库同步
show slave status\G  //检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。

4.安装keepalived(所有节点都安装)
4.1安装配置keepalived

wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar zxvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.15
./configure --prefix=/usr/local/keepalived
make && make install

4.2将keepalived配置成系统服务

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/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

4.3修改keepalived配置文件
4.3.1修改mysql_master01的keepalived配置文件

echo ‘‘ >/etc/keepalived/keepalived.conf //清空配置文件,自己写
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived  
 global_defs {  
      notification_email {  
      [email protected]  
      }  
    notification_email_from [email protected]  
     smtp_server 127.0.0.1  
     smtp_connect_timeout 30  
     router_id MySQL-ha  
     }  
vrrp_instance VI_1 {
   state backup       #两台配置此处均是BACKUP
   interface eth0
   virtual_router_id 51
   priority 100       #优先级,另一台改为90
   advert_int 1
   nopreempt          #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       192.168.1.210
   }
}
virtual_server 192.168.1.210 3306 {
   delay_loop 6
   lb_algo wrr
   lb_kind DR
   persistence_timeout 50        #会话保持时间
   protocol TCP
real_server 192.168.1.211 3306 {
       weight 3
       notify_down /usr/local/lnmp/mysql/bin/killkeepalived.sh    #检测到mysql服务挂了就执行这个脚本
       TCP_CHECK {
       connect_timeout 10        #连接超时时间
       nb_get_retry 3            #重连次数
       delay_before_retry 3      #重连间隔时间
       connect_port 3306         #健康检查端口
        }
       }
}

4.3.2修改mysql_master02的keepalived配置文件

echo ‘‘ >/etc/keepalived/keepalived.conf //清空配置文件,自己写
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived  
 global_defs {  
      notification_email {  
      [email protected]  
      }  
    notification_email_from [email protected]  
     smtp_server 127.0.0.1  
     smtp_connect_timeout 30  
     router_id MySQL-ha  
     }  
vrrp_instance VI_1 {
   state backup  
   interface eth0
   virtual_router_id 51
   priority 90 
   advert_int 1
   nopreempt
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       192.168.1.210
   }
}
virtual_server 192.168.1.210 3306 {
   delay_loop 6
   lb_algo wrr
   lb_kind DR
   persistence_timeout 50
   protocol TCP
real_server 192.168.1.212 3306 {
       weight 3
       notify_down /usr/local/lnmp/mysql/bin/killkeepalived.sh
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 3306
        }
       }
}

4.4编写killkeepalived.sh(所有节点安装)

vim /usr/local/lnmp/mysql/bin/killkeepalived.sh
#!/bin/sh  
pkill keepalived
chmod +x /usr/local/lnmp/mysql/bin/killkeepalived.sh

4.5 启动keepalived(所有节点安装)

service keepalived restart 
echo ‘service keepalived start‘ >>/etc/rc.local

5.测试数据库高可用
5.1为测试用户建立权限

grant all privileges on *.* to ‘liuzhuang‘@‘%‘ identified by ‘123‘;
flush privileges; //刷新权限表

5.2模拟故障,看是否关闭一台mysql服务,vip会自动切换,如果会,说明环境正常。

时间: 2024-12-28 14:16:50

Keepalived+Mysql互为主从高可用安装配置的相关文章

keepalived+MySQL主主高可用

keepalived+MySQL主主高可用 一.环境介绍: 10.1.1.174:23316 M1 10.1.1.237:23316 M2 二.配置双主:略. 三.keepalive安装 [[email protected] ~]# cd /usr/local/src/ [[email protected] src]# wget https://www.keepalived.org/software/keepalived-2.0.17.tar.gz [[email protected] src]

ceph对象存储(rgw)服务、高可用安装配置

ceph对象存储服务.高可用安装配置 简介:    Ceph本质上就是一个rados,利用命令rados就可以访问和使用ceph的对象存储,但作为一个真正产品机的对象存储服务,通常使用的是Restfulapi的方式进行访问和使用.而radosgw其实就是这个作用,安装完radosgw以后,就可以使用api来访问和使用ceph的对象存储服务了.    首先明白一下架构,radosgw其实名副其实,就是rados的一个网关,作用是对外提供对象存储服务.本质上radosgw(其实也是一个命令)和rbd

keepalived+mysql双主高可用配置

具体架构图如下 两个节点一主一从(从库上面也可以再挂一个从库),或者是双主,再利用keepalived在出现容灾时进行高可用切换. Keepalived原理说明: 其实这个原理可以很简单的用一个故事说明. 以前有一个帮派,像其他所有的帮派一样,有老大.这个老大活的也很憋屈,不仅自己做所有的活,还要隔一段时间就要告诉所有小弟我是老大,你们老实点.所有的小弟也是很乖的,只要老大不死,他们肯定不会抢夺老大的地位,但是一旦他们都收不到老大的通信的话,他们就确信老大死了,他们就开始抢夺老大的地位了.不过他

KeepAlived+MySQL互为主从

解决Master单点问题,两台mysql互为主备,双向replication.当一master挂了,则将slave切换为master,继续工作.好,给定两台机器 主机A:192.168.1.201 主机B:192.168.1.202 一.互为主从 1.配置 主机A上,vim /etc/my.cnf,添加: [mysqld] log-bin=mysql-bin server-id=1 #服务id要和B不同 binlog_do_db=db1 master-host = 192.168.1.202 #

MySQL数据库——MMM高可用群集配置(实战!)

MMM简介 MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,可以说是mysql主主复制管理器.虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实

Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群

------------------------------------- 一.前言 二.MySQL Cluster基本概念 三.环境 四.配置 1.LB-Master及LB-Backup配置 2.MGM配置 3.SQL节点(SQL1和SQL2)配置 4.数据节点(NDB1和NDB2)配置 五.查看状态 六.测试 ------------------------------------- 一.前言 MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB

使用keepalived 实现redis主从高可用

keepalived官方有中文文档:LVS + Keepalived Chinese application doc - March 16, 2010. keepalived 实现VRRP协议,从路由级别实现VIP切换,可以完全避免类似heartbeat 脑裂问题.可以很nice的实现主从.主备.互备方案,尤其是无状态业务,有状态业务就需要额外花些功夫了. 既然mysql 可以使用keepalived很好的做到主从切换,redis自然也就有样学样就成了. redis主从实现完全没有mysql成熟

MySQL互为主从+Keepalived高可用数据库集群

1.剧情回顾 在之前的博客上,我做了一个MySQL主从配置的实验,链接在这:http://blog.51cto.com/superpcm/2094958 .在这里我决定把这两个数据库做成互为主从,然后在这两个互为主从的数据库上配置keepalived,实现高可用,怎么配置可以参考我前文高可用的实验博客,http://blog.51cto.com/superpcm/2095395 . 最后实现的的拓扑图如下: 2.配置MySQL 互为主从复制 之前可能没有说明,实验默认都是开放所有端口给同一网段的

配置MySQL实现主主互备模式并利用keepalived实现双主高可用

每台主机均需安装keepalived,mysql,安装过程这里不多介绍,不懂的可自行百度. 本次配置的环境为 DB1:192.168.31.190                DB2:192.168.31.184        MySQL VIP:192.168.31.189 1.修改MySQL配置文件 首先修改DB1的/etc/my.cnf配置文件,在"[mysqld]"段中添加一下内容: server-id = 1 log-bin=mysql-bin relay-log = my