溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-16 02:25:07 來源:網絡 閱讀:602 作者:IT蘭博 欄目:MySQL數據庫
博客分享的第一篇技術文章;
項目主要搭建:主主數據庫高可用集群搭建。
數據庫互為主備,應用技術: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
{
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from
Alexandre.Cassen@firewall.loc
   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
{
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from
Alexandre.Cassen@firewall.loc
   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
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女