欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

MySQL高可用性之Keepalived+Mysql(雙主熱備)

環(huán)境描述:

網(wǎng)站制作、建網(wǎng)站找專業(yè)網(wǎng)站制作公司創(chuàng)新互聯(lián)建站:定制網(wǎng)站、模板網(wǎng)站、仿站、微信小程序開發(fā)、軟件開發(fā)、重慶APP開發(fā)公司等。做網(wǎng)站價(jià)格咨詢創(chuàng)新互聯(lián)建站:服務(wù)完善、10年建站、值得信賴!網(wǎng)站制作電話:028-86922220

OS:CentOS6.5_X64

MySQL-VIP:192.168.1.200    

MySQL-master1:192.168.1.201    

MySQL-master2:192.168.1.202   

1、配置兩臺(tái)Mysql主主同步

[root@master ~]# yum install mysql-server mysql -y
[root@master ~]# service mysqld start
[root@master ~]# mysqladmin -u root password 123.com
[root@master ~]# vi /etc/my.cnf                   #開啟二進(jìn)制日志,設(shè)置id
[mysqld]
server-id = 1                    #backup這臺(tái)設(shè)置2
log-bin = mysql-bin
binlog-ignore-db = mysql,information_schema     #忽略寫入binlog日志的庫
auto-increment-increment = 2             #字段變化增量值
auto-increment-offset = 1               #初始字段ID為1
slave-skip-errors = all                #忽略所有復(fù)制產(chǎn)生的錯(cuò)誤     
[root@master ~]# service mysqld restart

如果是Centos7,則卸載mariadb,安裝mysql,參考文章:https://blog.51cto.com/sf1314/2073389 

安裝mysql,參考文章:

mysql5.6.37 https://blog.51cto.com/sf1314/2058754 

# mysql -uroot -p'密碼'

先查看下log bin日志和pos值位置

MySQL高可用性之Keepalived+Mysql(雙主熱備)

master配置如下:

[root@ master ~]# mysql -u root -p123.com
mysql> GRANT  REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%' IDENTIFIED  BY 'replication';
mysql> flush  privileges;
mysql> change  master to
    ->  master_host='192.168.0.203',
    ->  master_user='replication',
    ->  master_password='replication',
    ->  master_log_file='mysql-bin.000002',
    ->  master_log_pos=106;  #對(duì)端狀態(tài)顯示的值
mysql> start  slave;         #啟動(dòng)同步

backup配置如下:

[root@backup ~]#  mysql -u root -p123.com
mysql> GRANT  REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%' IDENTIFIED  BY 'replication';
mysql> flush  privileges;
mysql> change  master to
    ->  master_host='192.168.0.202',
    ->  master_user='replication',
    ->  master_password='replication',
    ->  master_log_file='mysql-bin.000002',
    ->  master_log_pos=106;
mysql> start  slave;

#主主同步配置完畢,查看同步狀態(tài)Slave_IO和Slave_SQL是YES說明主主同步成功。

MySQL高可用性之Keepalived+Mysql(雙主熱備)

在master插入數(shù)據(jù)測(cè)試下:

MySQL高可用性之Keepalived+Mysql(雙主熱備)

在backup查看是否同步成功:

MySQL高可用性之Keepalived+Mysql(雙主熱備)

可以看到已經(jīng)成功同步過去,同樣在backup插入到user表數(shù)據(jù),一樣同步過去,雙主就做成功了。

2、配置keepalived實(shí)現(xiàn)熱備

[root@backup ~]# yum install -y pcre-devel openssl-devel popt-devel #安裝依賴包

[root@master ~]# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz 
[root@master ~]# tar -xf keepalived-1.2.7.tar.gz -C /usr/local/src/
[root@master ~]# cd /usr/local/
[root@master ~]# ln -sv /usr/local/src/keepalived-1.2.7/ keepalived  #根據(jù)實(shí)際情況修改 
[root@master ~]# cd keepalived
[root@master ~]#./configure --prefix=/usr/local/keepalived
make && make install

#將keepalived配置成系統(tǒng)服務(wù)

[root@master ~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
chmod +x /etc/init.d/keepalived  
[root@master ~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@master  ~]#  chkconfig --add keepalived  
[root@master  ~]#  chkconfig keepalived on  
[root@master ~]# mkdir /etc/keepalived
[root@master ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@master ~]# cp /usr/local/sbin/keepalived /usr/sbin/      #或者ln -s /usr/local/sbin/keepalived /usr/sbin/

配置keepalived
我們自己在新建一個(gè)配置文件,默認(rèn)情況下keepalived啟動(dòng)時(shí)會(huì)去/etc/keepalived目錄下找配置文件

  1. [root@master ~]# vi /etc/keepalived/keepalived.conf  
    global_defs {    
         notification_email {    
             862572301@qq.com
         }    
         notification_email_from 862572301@qq.com   
         smtp_server 127.0.0.1    
         smtp_connect_timeout 30    
         router_id MYSQL_HA      #標(biāo)識(shí),雙主相同 
    }    
       
    vrrp_instance VI_1 {    
         state BACKUP   #兩臺(tái)配置此處均是BACKUP    
         interface eth0    
         virtual_router_id 51    #主備相同
         priority 100             #優(yōu)先級(jí),另一臺(tái)backup改為90    
         advert_int 1    
         nopreempt                  #不搶占,只在優(yōu)先級(jí)高master的機(jī)器上設(shè)置即可,優(yōu)先級(jí)低backup的機(jī)器不設(shè)置    
         authentication {    
             auth_type PASS    
             auth_pass 1111    
         }    
         virtual_ipaddress {    
             192.168.1.200    
         }    
    }    
       
    virtual_server 192.168.1.200 3306 {    
         delay_loop 2    #每個(gè)2秒檢查一次real_server狀態(tài)    
         #lb_algo wrr    #LVS算法,用不到,我們就關(guān)閉了    
         #lb_kind DR    #LVS模式,如果不關(guān)閉,備用服務(wù)器不能通過VIP連接主MySQL   
         persistence_timeout 60   #會(huì)話保持時(shí)間,同一IP的連接60秒內(nèi)被分配到同一臺(tái)真實(shí)服務(wù)器   
         protocol TCP    
         real_server 192.168.1.201 3306 {   #檢測(cè)本地mysql,backup也要寫檢測(cè)本地mysql 
             weight 3    
             notify_down /usr/local/keepalived/mysql.sh   #當(dāng)mysq服down時(shí),執(zhí)行此腳本,殺死keepalived實(shí)現(xiàn)切換    
             TCP_CHECK {    
                 connect_timeout 10    #連接超時(shí)時(shí)間    
                 nb_get_retry 3      #重連次數(shù)    
                 delay_before_retry 3   #重連間隔時(shí)間    
                 connect_port 3306      #健康檢查端口
             }
         }  
    }

編寫檢測(cè)服務(wù)down后所要執(zhí)行的腳本
[root@master ~]# vi /usr/local/keepalived/mysql.sh
#!/bin/bash
pkill keepalived
[root@master ~]# chmod +x /usr/local/keepalived/mysql.sh
[root@master ~]# /etc/init.d/keepalived start

注:此腳本是上面配置文件notify_down選項(xiàng)所用到的,keepalived使用notify_down選項(xiàng)來檢查real_server 的服務(wù)狀態(tài),當(dāng)發(fā)現(xiàn)real_server服務(wù)故障時(shí),便觸發(fā)此腳本;我們可以看到,腳本就一個(gè)命令,通過pkill keepalived強(qiáng)制殺死keepalived進(jìn)程,從而實(shí)現(xiàn)了MySQL故障自動(dòng)轉(zhuǎn)移。另外,我們不用擔(dān)心兩個(gè)MySQL會(huì)同時(shí)提供數(shù)據(jù)更新操作, 因?yàn)槊颗_(tái)MySQL上的keepalived的配置里面只有本機(jī)MySQL的IP+VIP,而不是兩臺(tái)MySQL的IP+VIP

啟動(dòng)keepalived

[root@master ~]# /usr/local/keepalived/sbin/keepalived –D     或者/etc/init.d/keepalived start
[root@master ~]# ps -aux | grep keepalived


測(cè)試
找一臺(tái)局域網(wǎng)PC,然后去ping  MySQL的VIP,這時(shí)候MySQL的VIP是可以ping的通的
停止MySQL服務(wù),看keepalived健康檢查程序是否會(huì)觸發(fā)我們編寫的腳本


#backup服務(wù)器只修改priority為90、nopreempt不設(shè)置、real_server設(shè)置本地IP。


#授權(quán)兩臺(tái)Mysql服務(wù)器允許root遠(yuǎn)程登錄,用于在其他服務(wù)器登陸測(cè)試!

mysql> grant all on *.* to'root'@'192.168.0.%' identified by '123.com';

mysql> flush privileges;

3、測(cè)試高可用性

1、通過Mysql客戶端通過VIP連接,看是否連接成功。

2、停止master這臺(tái)mysql服務(wù),是否能正常切換過去,可通過ip addr命令來查看VIP在哪臺(tái)服務(wù)器上。

MySQL高可用性之Keepalived+Mysql(雙主熱備)

3、可通過查看/var/log/messges日志,看出主備切換過程

4、master服務(wù)器故障恢復(fù)后,是否主動(dòng)搶占資源,成為活動(dòng)服務(wù)器。


附:keepalived-1.2.7 keepalived實(shí)現(xiàn)服務(wù)高可用 http://down.51cto.com/data/2440924 

---------------------------------------------------------------------------------------------

針對(duì)網(wǎng)卡做bond的做VIP: https://blog.51cto.com/sf1314/2073519 

[root@master ~]# vi /etc/keepalived/keepalived.conf  
global_defs {    
     notification_email {    
         862572301@qq.com
     }    
     notification_email_from 862572301@qq.com   
     smtp_server 127.0.0.1    
     smtp_connect_timeout 30    
     router_id MYSQL_HA      #標(biāo)識(shí),雙主相同 
}    
   
vrrp_instance VI_1 {    
     state BACKUP   #兩臺(tái)配置此處均是BACKUP    
     interface bond0.101                   #------->這邊指定配置的聚合網(wǎng)卡bond0.101
     virtual_router_id 51    #主備相同
     priority 100             #優(yōu)先級(jí),另一臺(tái)backup改為90    
     advert_int 1    
     nopreempt                  #不搶占,只在優(yōu)先級(jí)高master的機(jī)器上設(shè)置即可,優(yōu)先級(jí)低backup的機(jī)器不設(shè)置    
     authentication {    
         auth_type PASS    
         auth_pass 1111    
     }    
     virtual_ipaddress {    
         10.104.101.13/24                 #------->這邊設(shè)置虛擬的VIP地址    
     }    
}    
    
virtual_server 10.104.101.13/24 3306 {            #--------->指定虛擬VIP地址的配置信息
     delay_loop 2    #每個(gè)2秒檢查一次real_server狀態(tài)    
     #lb_algo wrr    #LVS算法,用不到,我們就關(guān)閉了    
     #lb_kind DR    #LVS模式,如果不關(guān)閉,備用服務(wù)器不能通過VIP連接主MySQL   
     persistence_timeout 60   #會(huì)話保持時(shí)間,同一IP的連接60秒內(nèi)被分配到同一臺(tái)真實(shí)服務(wù)器   
     protocol TCP    
     real_server 10.104.101.12 3306 {   #10.104.101.12指本地配置的IP地址,檢測(cè)本地mysql,backup也要寫檢測(cè)本地mysql 
         weight 3    
         notify_down /usr/local/keepalived/mysql.sh   #當(dāng)mysq服down時(shí),執(zhí)行此腳本,殺死keepalived實(shí)現(xiàn)切換    
         TCP_CHECK {    
             connect_timeout 10    #連接超時(shí)時(shí)間    
             nb_get_retry 3      #重連次數(shù)    
             delay_before_retry 3   #重連間隔時(shí)間    
             connect_port 3306      #健康檢查端口
         }
     }  
}

附:修改mysql賬戶下的replication的密碼可以參考本文章:https://blog.51cto.com/sf1314/2094562 

當(dāng)前題目:MySQL高可用性之Keepalived+Mysql(雙主熱備)
新聞來源:http://www.chinadenli.net/article10/joggdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站網(wǎng)站營銷面包屑導(dǎo)航網(wǎng)站設(shè)計(jì)域名注冊(cè)外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司