1. 程式人生 > >MM(主主數據庫)+keepalived主備高可用集群

MM(主主數據庫)+keepalived主備高可用集群

數據庫 集群 mm

博客分享的第一篇技術文章;
項目主要搭建:主主數據庫高可用集群搭建。
數據庫互為主備,應用技術:MM+keepalived
使用的是虛擬機搭建的實驗向大家展示:

數據庫1:192.168.4.7
數據庫2:192.168.4.77
VIP:192.168.4.68
web1:192.168.4.69
web2:192.168.4.70


一、安裝mysql,部署主主同步結構。
直接yum安裝
配置主主同步:
由於主數據庫192.168.4.7裏面存放著數據,所以需要先導出數據,方法很多,我們采取mysqldump:
#mysqldump -uroot   -p123456  --all-databases  >    /opt/all.sql
然後需要將數據拷貝到數據庫192.168.4.77。
數據庫2:
1、修改配置文件:
數據庫192.168.4.7

[mysqld]
server_id=7                           #兩臺主機不能重復
log-bin=master7                     #開啟binlog功能
log-bin-index=master7.index
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
binlog_format="mixed"

數據庫192.168.4.77

[mysqld]
#vim
/etc/my.cnf
[mysqld]
log-bin=master77
server_id=77
binlog_format="mixed"
log_slave_updates
datadir=/var/lib/
mysqlsocket=/var/lib/mysql/mysql.sock
:wq
依次啟動兩臺數據庫:systemctl
start mariadb


2、導入數據庫:
將數據庫192.168.4.7備份出來的數據庫導入到數據庫192.168.4.77,以此保持兩端數據一致
mysql -uroot -p123456 < all.sql


3、配置用戶授權並查看master信息:

數據庫192.168.4.7
給用戶授權:允許192.168.4.77的數據庫用戶slave擁有replication slave權限:
mysql>grant replication  slave  on   *.*   to  slave@"192.168.4.77" identified  by "123456";
mysql>show master status;     //查看狀態;

數據庫192.168.4.77
給用戶授權:允許192.168.4.7的數據庫用戶slave擁有replication slave權限:
mysql>grant replication  slave  on   *.*   to  slave@"192.168.4.7" identified  by "123456";
mysql>show master status;     //查看狀態;

4、配置相互主從,並開啟slave模式:

數據庫192.168.4.7
#mysql -uroot -p123456
mysql>change master  to  master_host="192.168.4.77",master_user="slave",master_password="12
3456",master_log_file="master77.000001",master_log_pos=357;
mysql>start slave;                       //啟動slave
mysql>show  slave status\G;       //查看slave狀態

數據庫192.168.4.77
mysql>change master  to  master_host="192.168.4.7",master_user="slave",master_password="123
456",master_log_file="master7.000001",master_log_pos=357;
mysql>start slave;
mysql>show  slave status\G;         //查看slave狀態
狀態都為yes是正常,否則主主同步異常,需要進一步排查
 Slave_IO_Running:            Yes
 Slave_SQL_Running:         Yes

主主同步配置完成後可以進行一些建庫,建表的測試測試,看看兩邊的數據是否一致




二、安裝keepalived並設置監控
keepalived是安裝在兩臺MySQL服務器上的
首先安裝keepalived過程不解釋就正常解壓安裝就好

1、修改配置文件/etc/keepalived/keepalived.conf
!
Configuration File for keepalived
global_defs
{
   notification_email
{
     [email protected]
/* */ [email protected] [email protected] } notification_email_from [email protected] smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script check_mysql { script "/opt/mysql.sh" //監控腳本存放位置(最後有參考腳本,也可以自己寫) interval 2 //(檢測腳本執行的間隔) weight 2 } vrrp_instance VI_1 { state MASTER //備份服務器上將MASTER改為 BACKUP interface eth0 virtual_router_id 51 //主、備機的virtual_router_id必須相同 priority 100 //主、備機取不同的優先級,主機值較大,備份機值較小,備份服 務器設置為99 advert_int 1 authentication { auth_type PASS auth_pass 1111 //主、備機一樣 } track_script { check_mysql //檢測腳本 } virtual_ipaddress { 192.168.4.68 //VIP(虛擬IP,對外提供服務的IP) } } 數據庫192.168.4.77配置文件: vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { [email protected]
/* */ [email protected] [email protected] } notification_email_from [email protected] smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script check_mysql { script "/opt/mysql.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { check_mysql } virtual_ipaddress { 192.168.4.68 } } ****************************************************************************** 監控腳本的作用是:實現keepalived主備的切換 附:監控腳本 vim /opt/ mysql.sh #!/bin/bash a=`ps -C mysqld --no-header | wc -l` if [ $a -eq 0 ];then systemctl start mariadb sleep 3 b=`ps -C mysqld --no-header | wc -l` if [ $b -eq 0 ];then killall keepalived fi fi

本文出自 “11063277” 博客,請務必保留此出處http://11073277.blog.51cto.com/11063277/1954924

MM(主主數據庫)+keepalived主備高可用集群