国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
高可用的Mysql雙機(jī)熱備(Mysql_HA)
使用KeepAlived實(shí)現(xiàn)高可用的MYSQL_HA集群環(huán)境中,MYSQL為(Master/Master)主/主同步復(fù)制關(guān)系,保證MYSQL服務(wù)器數(shù)據(jù)的一致性,用KeepAlived提供虛擬IP,通過KeepAlived來進(jìn)行故障監(jiān)控,實(shí)現(xiàn)Mysql故障時(shí)自動(dòng)切換。
布署環(huán)境拓樸如下:
Mysql VIP :192.168.187.61
Master1:192.168.187.129
Master:192.168.187.132
OS 環(huán)境:Cent OS 5.9
Mysql版本:Mysql5.5.31
安裝mysql
升級(jí)安裝
因?yàn)镃entOS的Mysql還是停留在5.0.19,而我們做Mysql之間的同步復(fù)制,Mysql版本至少要在Mysql5.1以上,所以要對(duì)其進(jìn)行升級(jí)安裝。
>>使用 yum安裝, yum 可以幫你解決依賴于沖突
# rpm –Uvh  http://repo.webtatic.com/yum/centos/5/latest.rpm  //安裝最新的mysql的yum源
# yum –y install Mysql55 MySQL55-* --enablerepo=webtatic  //安裝Mysql,--enablerepo參數(shù)是用來指定源
>>開啟mysql服務(wù)
# service mysqld start  //開啟mysql服務(wù)
>>剛安裝密碼為空,設(shè)置root密碼
# mysqladmin –u root password ‘1234’  //設(shè)置root密碼
>>更改mysql配置文件
# cp /usr/share/mysql/my-medium.cnf  /etc/my.cnf //在etc目錄下建立mysql的配置文件my.cnf
# service mysqld restart//重啟mysql服務(wù)
>>登陸Mysql
# mysql –u root –p 1234    //設(shè)置root密碼
Mysql>     //登陸進(jìn)了mysql
主/主配置
2.2.1 設(shè)置配置文件
Mysql是通過日志進(jìn)行同步復(fù)制的,先建立日志文件
#touch /var/log/mysql/mysql-bin.log   //建立日志文件
#chown mysql.mysql /var/log/mysql/mysql-bin.log  //將日志文件的所屬用戶和用戶組更改成mysql
在兩臺(tái)要進(jìn)行備份的mysql服務(wù)器上的my.cnf文件進(jìn)行配置如下(將下面的配置分別加入相關(guān)服務(wù)器的my.cnf):
Master1(192.168.187.129)
Master(192.168.187.132)
#主標(biāo)服務(wù)標(biāo)識(shí)號(hào),必需唯一
server-id = 1
#因?yàn)镸YSQL是基于二進(jìn)制的日志來做同步的,每個(gè)日志文件大小為 1G
log-bin=/var/log/mysql/mysql-bin.log
#要同步的庫(kù)名
binlog-do-db = test
#不記錄日志的庫(kù),即不需要同步的庫(kù)
binlog-ignore-db=mysql
#用從屬服務(wù)器上的日志功能
log-slave-updates
#經(jīng)過1日志寫操作就把日志文件寫入硬盤一次(對(duì)日志信息進(jìn)行一次同步)。n=1是最安全的做法,但效率最低。默認(rèn)設(shè)置是n=0。
sync_binlog=1
# auto_increment,控制自增列AUTO_INCREMENT的行為
用于MASTER-MASTER之間的復(fù)制,防止出現(xiàn)重復(fù)值,
auto_increment_increment=n有多少臺(tái)服務(wù)器,n就設(shè)置為多少,
auto_increment_offset=1設(shè)置步長(zhǎng),這里設(shè)置為1,這樣Master的auto_increment字段產(chǎn)生的數(shù)值是:1, 3, 5, 7, …等奇數(shù)ID
auto_increment_offset=1
auto_increment_increment=2
#進(jìn)行鏡像處理的數(shù)據(jù)庫(kù)
replicate-do-db = test
#不進(jìn)行鏡像處理的數(shù)據(jù)庫(kù)
replicate-ignore-db= mysql
#主標(biāo)服務(wù)標(biāo)識(shí)號(hào),必需唯一
server-id = 2
#因?yàn)镸YSQL是基于二進(jìn)制的日志來做同步的,每個(gè)日志文件大小為 1G
log-bin=/var/log/mysql/mysql-bin.log
#要同步的庫(kù)名
binlog-do-db = test
#不記錄日志的庫(kù),即不需要同步的庫(kù)
binlog-ignore-db=mysql
#用從屬服務(wù)器上的日志功能
log-slave-updates
#經(jīng)過1日志寫操作就把日志文件寫入硬盤一次(對(duì)日志信息進(jìn)行一次同步)。n=1是最安全的做法,但效率最低。默認(rèn)設(shè)置是n=0。
sync_binlog=1
# auto_increment,控制自增列AUTO_INCREMENT的行為
用于MASTER-MASTER之間的復(fù)制,防止出現(xiàn)重復(fù)值,
auto_increment_increment=n有多少臺(tái)服務(wù)器,n就設(shè)置為多少,
auto_increment_offset=2設(shè)置步長(zhǎng),這里設(shè)置為2,這樣Master的auto_increment字段產(chǎn)生的數(shù)值是:2, 4, 6, 8, …等奇數(shù)ID
auto_increment_offset=2
auto_increment_increment=2
#進(jìn)行鏡像處理的數(shù)據(jù)庫(kù)
replicate-do-db = test
#不進(jìn)行鏡像處理的數(shù)據(jù)庫(kù)
replicate-ignore-db= mysql
2.2.2查看配置情況
按上面的配置將兩臺(tái)服務(wù)器配置好以后,重新啟動(dòng)mysql服務(wù),用showmaster status查看一下兩臺(tái)服務(wù)器的Master配置情況,可以看出已經(jīng)配置成功,如下:
NO1:Master1(192.168.187.129)的情況
# mysql –u root –p 1234
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001|      107 | test         | mysql            |
+------------------+----------+--------------+------------------+
NO2:Master1(192.168.187.132)的情況
# mysql –u root –p 1234
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001|      107 | test         | mysql            |
+------------------+----------+--------------+------------------+
2.2.3建立權(quán)限帳戶,實(shí)現(xiàn)同步
a.創(chuàng)建賬戶并授予REPLICATION SLAVE權(quán)限
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '1234';   //建立一個(gè)用戶名為slave的帳戶
mysql> FLUSH PRIVILEGES;   //刷新相關(guān)權(quán)限表
因?yàn)檫M(jìn)行雙向復(fù)制,兩邊服務(wù)器都需要建立一個(gè)用于復(fù)制的的用戶。兩邊可以復(fù)用上面的語(yǔ)句,用戶名和密碼可以自行進(jìn)行修改。
b.同步設(shè)置
Master1(192.168.187.129)上操作如下:
mysql> stop slave;  //停止slave
mysql>change master to master_host='192.168.187.132', master_user='slave', master_password='1234', master_log_file='mysql-bin.000001', master_log_pos=107;  //修改當(dāng)前的Master的值,因?yàn)槭腔閭浞?,所以Master1(192.168.187.129)的master為Master2(192.168.187.132),Master2設(shè)置復(fù)制的用戶名為slave,密碼是1234,上面通過 show master status我們得知,log_file是mysql-bin.000001,postion是107。
mysql>start slave;    //開始salve,開始同步
mysql>show slave status;   //檢測(cè)slave狀態(tài),如果Slave_IO_Running: Yes    Slave_SQL_Running: Yes    Seconds_Behind_Master: 0就OK了
Master2(192.168.187.132)上面操作如下:
mysql> stop slave;  //停止slave
mysql>change master to master_host='192.168.187.129', master_user='slave', master_password='1234', master_log_file='mysql-bin.000001', master_log_pos=107;  //修改當(dāng)前的Master的值,因?yàn)槭腔閭浞?,所以Master2(192.168.187.132)的master為Master2(192.168.187.129),Master1設(shè)置復(fù)制的用戶名為slave,密碼是1234,上面通過 show master status我們得知,log_file是mysql-bin.000001,postion是107。
mysql>start slave;    //開始salve,開始同步
mysql>show slave status;  //檢測(cè)slave狀態(tài),如果Slave_IO_Running: Yes    Slave_SQL_Running: Yes    Seconds_Behind_Master: 0就OK了
c.測(cè)試情況:
Step1:建一個(gè)測(cè)試表Test,兩個(gè)字段,id與name字段,id字段為自增,兩個(gè)服務(wù)器上面都是同樣的結(jié)構(gòu),如下圖:
Step2:我在Master1(192.168.187.129)表上執(zhí)行一個(gè)insert語(yǔ)句,并進(jìn)行查詢,如下圖:
Step3:在Master2(192.168.187.132)中查詢,可以發(fā)現(xiàn)數(shù)據(jù)已經(jīng)同步過來了,如下圖:
KeepAlived安裝配置
的安裝方法
可參照“高可用的負(fù)載均衡配置方法(Haproxy+KeepAlived)”5.1 中KeepAlived的安裝方法
將keepalived加入服務(wù)
可參照“高可用的負(fù)載均衡配置方法(Haproxy+KeepAlived)”5.2  中將keepalived加入服務(wù)
的配置
安裝好以后,對(duì)其進(jìn)行配置如下:
有兩臺(tái)機(jī)器(MASTER1)所在的192.168.187.129與(Master2)192.168.187.132,用(VIP)192.168.187.61做虛擬IP。
在兩臺(tái)服各器中的/etc/keepalived文件夾中的keepalived.conf下進(jìn)行配置:
Master1的設(shè)置
192.168.187.129
global_defs {
router_id Mysql_HA  #當(dāng)前節(jié)點(diǎn)名
}
vrrp_instance VI_1{
state BACKUP       #兩臺(tái)配置節(jié)點(diǎn)均為BACKUP
interface eth0       #綁定虛擬IP的網(wǎng)絡(luò)接口
virtual_router_id 51 #VRRP組名,兩個(gè)節(jié)點(diǎn)的設(shè)置必須一樣,以指明各個(gè)節(jié)點(diǎn)屬于同一VRRP組
priority 100        #節(jié)點(diǎn)的優(yōu)先級(jí),另一臺(tái)優(yōu)先級(jí)改低一點(diǎn)
acvert_int 1         #組播信息發(fā)送間隔,兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣
nopreempt      #不搶占,只在優(yōu)先級(jí)高的機(jī)器上設(shè)置即可,優(yōu)先級(jí)低的機(jī)器不設(shè)置
authentication{      #設(shè)置驗(yàn)證信息,兩個(gè)節(jié)點(diǎn)必須一致
auth_type  PASS
auth_pass  1111
}
Virtual_ipaddress{   #指定虛擬IP,兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣
192.168.187.61
}
}
virtual_server 192.168.187.61 3306 {   #linux虛擬服務(wù)器(LVS)配置
delay_loop 2     #每個(gè)2秒檢查一次real_server狀態(tài)
lb_algo wrr      #LVS調(diào)度算法,rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR      #LVS集群模式 ,NAT|DR|TUN
persistence_timeout 60    #會(huì)話保持時(shí)間
protocol TCP    #使用的協(xié)議是TCP還是UDP
real_server 192.168.187.129 3306 {
weight 3   #權(quán)重
notify_down  /usr/local/bin/mysql.sh    #檢測(cè)到服務(wù)down后執(zhí)行的腳本
TCP_CHECK {
connect_timeout 10   #連接超時(shí)時(shí)間
nb_get_retry 3      #重連次數(shù)
delay_before_retry 3 #重連間隔時(shí)間
connect_port 3306    #健康檢查端口
}
}
Master2的設(shè)置
192.168.187.132
global_defs {
router_id Mysql_HA  #當(dāng)前節(jié)點(diǎn)名
}
vrrp_instance VI_1{
state BACKUP       #兩臺(tái)配置節(jié)點(diǎn)均為BACKUP
interface eth0       #綁定虛擬IP的網(wǎng)絡(luò)接口
virtual_router_id 51 #VRRP組名,兩個(gè)節(jié)點(diǎn)的設(shè)置必須一樣,以指明各個(gè)節(jié)點(diǎn)屬于同一VRRP組
priority 90        #節(jié)點(diǎn)的優(yōu)先級(jí),另一臺(tái)優(yōu)先級(jí)改低一點(diǎn)
acvert_int 1         #組播信息發(fā)送間隔,兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣
authentication{      #設(shè)置驗(yàn)證信息,兩個(gè)節(jié)點(diǎn)必須一致
auth_type  PASS
auth_pass  1111
}
Virtual_ipaddress{   #指定虛擬IP,兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣
192.168.187.61
}
}
virtual_server 192.168.187.61 3306 {   #linux虛擬服務(wù)器(LVS)配置
delay_loop 2     #每個(gè)2秒檢查一次real_server狀態(tài)
lb_algo wrr      #LVS調(diào)度算法,rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR      #LVS集群模式 ,NAT|DR|TUN
persistence_timeout 60    #會(huì)話保持時(shí)間
protocol TCP    #使用的協(xié)議是TCP還是UDP
real_server 192.168.187.132 3306 {
weight 3   #權(quán)重
notify_down   /usr/local/bin/mysql.sh    #檢測(cè)到服務(wù)down后執(zhí)行的腳本
TCP_CHECK {
connect_timeout 10   #連接超時(shí)時(shí)間
nb_get_retry 3      #重連次數(shù)
delay_before_retry 3 #重連間隔時(shí)間
connect_port 3306    #健康檢查端口
}
}
腳本/usr/local/bin/mysql.sh
#vi  /usr/local/bin/mysql.sh
#!/bin/sh
killall keepalived
測(cè)試
可參照“高可用的負(fù)載均衡配置方法(Haproxy+KeepAlived)”5.4 中KeepAlived測(cè)試
4.Mysql測(cè)試
Step1:打開三個(gè)服務(wù)器進(jìn)行查看,剛開始三個(gè)都為空
Step2:在VIP(192.168.187.61)服務(wù)器中插入一條數(shù)據(jù)
Step3:再查看三個(gè)服務(wù)器中的數(shù)據(jù)都已經(jīng)同步過來了
當(dāng)關(guān)掉做為主機(jī)的192.168.187.129做為宕機(jī)處理,同樣也不會(huì)出問題,虛擬IP由192.168.187.129漂移
到192.168.187.132上面。
5.安裝時(shí)出現(xiàn)的問題及處理方法
NO1: Slave將無法鏈接到 Master情況
錯(cuò)誤:Slave將無法鏈接到 Master
原因:bind-address默認(rèn)是127.0.0.1你必須更改它
解決辦法:修改my.cnf,加上如下圖紅框所示的配置!
NO2: mysql error 1129 錯(cuò)誤
錯(cuò)誤:mysql 1129錯(cuò)誤!如下圖:
原因:是因?yàn)閙ysql將ip連接阻塞了。
解決辦法:登錄到mysql數(shù)據(jù)庫(kù)服務(wù)器端,使用命令:
# mysqladmin -u root -p  flush-hosts;
Enter password:
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
不停止MySQL服務(wù)增加從庫(kù)的兩種方式
mysql主從雙向同步復(fù)制
MySQL主從配置詳解
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服