国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mysql主主+keepalived高可用

IT那活兒 / 1740人閱讀
mysql主主+keepalived高可用

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!

01

MySQL雙主(主主)架構方案思路

  • 兩臺mysql都可讀寫,互為主備,默認只使用一臺(masterA)負責數據的寫入,另一臺(masterB)備用;

  • masterA是masterB的主庫,masterB又是masterA的主庫,它們互為主從;

  • 兩臺主庫之間做高可用,可以采用keepalived等方案(使用VIP對外提供服務);

  • 建議采用高可用策略的時候,masterA或masterB均不因宕機恢復后而搶占VIP(非搶占模式)。

這樣做可以在一定程度上保證主庫的高可用,在一臺主庫down掉之后,可以在極短的時間內切換到另一臺主庫上(盡可能減少主庫宕機對業務造成的影響),減少了主從同步給線上主庫帶來的壓力。

1)環境

兩臺安裝好mysql的服務器(yum安裝比較快且方便),關閉防火墻,關閉selinux。

  • systemctl stop firewalld(臨時關閉)

  • setenforce 0(臨時關閉)

2)我的主機地址

  • mysql1:192.168.44.131

  • mysql2:192.168.44.133

  • 虛擬ip:192.168.44.199

02

mysql1配置

在/etc/my.cnf新增以下內容:

[mysqld]

#作為主從復制的唯一標識,集群中,不能重復

server-id = 1

#開啟二進制日志

log-bin = master-log

#開啟中繼日志

relay-log = slave-log

auto_increment_offset = 1

auto_increment_increment = 2

注:auto_increment_offset確定AUTO_INCREMENT列值的起點,也就是初始值。

auto_increment_increment控制列中的值的增量值,也就是步長。

mysql中有自增長字段,在做數據庫的主主同步時需要設置自增長的兩個相關配置:auto_increment_offset和auto_increment_increment。

在主主同步配置時,需要將兩臺服務器的auto_increment_increment增長量都配置為2,而要把auto_increment_offset分別配置為1和2。

03

mysql2配置

[mysqld]

#作為主從復制的唯一標識,集群中,不能重復

server-id = 2

#開啟二進制日志

log-bin = master-log

#開啟中繼日志

relay-log = slave-log

auto_increment_offset = 2

auto_increment_increment = 2

04

重啟mysql服務

systemctl restart mysqld


05

mysql1為主,mysql為從配置

進入mysql1數據庫創建同步賬號并賦予權限:

mysql> create user zjf@192.168.44.% identified by 123456;

mysql> grant replication slave on *.* to zjf@192.168.44.%;

mysql> show master status;

進入mysql2數據庫執行以下語句:

#log_file和log_pos的數據是mariad1上show master status得到的數據。

mysql> change master to master_host=192.168.44.131, 
master_user=zjf, master_password=123456,
master_log_file=master-log.000001, master_log_pos=441;

開啟主從:

mysql> start slave;

mysql> show slave statusG;

06

mysql2為主,mysql1為從配置

進入mysql2數據庫創建同步賬號并賦予權限:

mysql> create user zjf@192.168.44.% identified by 123456;

mysql> grant replication slave on *.* to zjf@192.168.44.%;

show master status;

進入mysql2數據庫執行以下語句:

#log_file和log_pos的數據是mariad1上show master status得到的數據。

mysql> change master to master_host=192.168.44.131, 
master_user=zjf, master_password=123456,
master_log_file=master-log.000004, master_log_pos=441;

開啟主從:

mysql> start slave;

mysql> show slave statusG;

至此, 主主同步復制配置完成!!!

07

在mysql1創建一個庫test1:

Create database test1

mysql1和mysql2都有。

Show databases

在mysql2創建一個庫test2:

Create database test2

Mysql1和msql2都有。

Show databases

主主同步復制配置便測試成功。

08

keepalived高可用

8.1 Mysql1和MySQL2都安裝keepalived

yum -y install keepalived

8.2 mysql1的/etc/keepalived/keepalived.conf配置

! configuration File for keepalived

global_defs {

router_id mysql-01 #主機標示符,不一定要用主機名,默認值取主機名

}

vrrp_instance VI_1 {

state BACKUP #非搶占模式兩臺服務器都為BACKUP

interface ens33 #根據機器的ifconfig來定,vip要綁定的網卡

virtual_router_id 50 #虛擬路由ID,倆節點保持一致 #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同

priority 100 #主節點的優先級(1-254),備用節點必須比主節點優先級低

advert_int 1 #組播信息發送間隔,兩個節點設置必須一樣

nopreempt #不搶占vip資源,防止故障節點恢復后因為優先級高導致vip再次飄移

authentication { #設置驗證信息,兩個節點必須一樣

auth_type PASS

auth_pass 1111

}

virtual_ipaddress { #指定虛擬ip,兩個節點必須一致

192.168.44.199

}

}

#虛擬主機是可選部分,主要用來配置負載均衡。這里可以綁定端口

virtual_server 192.168.44.199 3306 { #綁定端口為3306,0代表所有端口

delay_loop 2

lb_algo rr ##負載均衡輪訓算法,詳見官方文檔

lb_kind DR #路由模式,同網段DR,不同網段NAT

persistence_timeout 50

protocol TCP

real_server 192.168.44.131 3306 {

weight 3

notify_down /etc/keepalived/bin/killkeepalived.sh

notify_down /etc/keepalived/bin/mysql_check.sh

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

8.3 mysql2的/etc/keepalived/keepalived.conf配置

! configuration File for keepalived

global_defs {

router_id mysql-02 #主機標示符,不一定要用主機名,默認值取主機名

}

vrrp_instance VI_1 {

state BACKUP #非搶占模式兩臺服務器都為BACKUP

interface ens33 #根據機器的ifconfig來定,vip要綁定的網卡

virtual_router_id 50 #虛擬路由ID,倆節點保持一致 #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同

priority 50 #主節點的優先級(1-254),備用節點必須比主節點優先級低

advert_int 1 #組播信息發送間隔,兩個節點設置必須一樣

nopreempt #不搶占vip資源,防止故障節點恢復后因為優先級高導致vip再次飄移

authentication { #設置驗證信息,兩個節點必須一樣

auth_type PASS

auth_pass 1111

}

virtual_ipaddress { #指定虛擬ip,兩個節點必須一致

192.168.44.199

}

}

#虛擬主機是可選部分,主要用來配置負載均衡。這里可以綁定端口

virtual_server 192.168.44.199 3306 { #綁定端口為3306,0代表所有端口

delay_loop 2

lb_algo rr ##負載均衡輪訓算法,詳見官方文檔

lb_kind DR #路由模式,同網段DR,不同網段NAT

persistence_timeout 50

protocol TCP

real_server 192.168.44.133 3306 {

weight 3

notify_down /etc/keepalived/bin/killkeepalived.sh

notify_down /etc/keepalived/bin/mysql_check.sh

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

8.4 腳本

在兩臺服務器上編寫兩個腳本,就在keepalived配置文件指定的地方創建notify_down,當Mysql和keepalived 出現問題的時候會觸發此腳本,用于關掉本機的keepalived進程,之后才能進行切換到另外一個節點上去,并且授予執行權限+x。

#!/bin/bash

counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)

if [ "${counter}" -eq 0 ]; then

systemctl stop keepalived

fi

8.5 結果

啟動兩臺服務器的keepalived,可以看到一臺服務器有虛擬ip,另一臺沒有。

8.6 測試

停掉有虛擬ip的那臺主機的keepalived,虛擬ip會跑到另一臺主機上,且配置了不搶占規則,即使恢復服務,ip也不會漂移回去。


END



本文作者:朱景鋒

本文來源:IT那活兒(上海新炬王翦團隊)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129469.html

相關文章

  • MySQL集群搭建(6)-雙主+keepalived可用

    摘要:雙主是一個比較簡單的高可用架構,適用于中小集群,今天就說說怎么用做的高可用。缺點也比較明顯,就是增加從節點的情況下,從節點不會主動切換同步對象,而且腳本需要自己實現,有一定風險。 雙主 + keepalived 是一個比較簡單的 MySQL 高可用架構,適用于中小 MySQL 集群,今天就說說怎么用 keepalived 做 MySQL 的高可用。 1 概述 1.1 keepalive...

    CarlBenjamin 評論0 收藏0
  • MySQL集群搭建(6)-雙主+keepalived可用

    摘要:雙主是一個比較簡單的高可用架構,適用于中小集群,今天就說說怎么用做的高可用。缺點也比較明顯,就是增加從節點的情況下,從節點不會主動切換同步對象,而且腳本需要自己實現,有一定風險。 雙主 + keepalived 是一個比較簡單的 MySQL 高可用架構,適用于中小 MySQL 集群,今天就說說怎么用 keepalived 做 MySQL 的高可用。 1 概述 1.1 keepalive...

    lily_wang 評論0 收藏0
  • MySQL可用方案測試

    MySQL高可用方案測試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margin...

    IT那活兒 評論0 收藏2496

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<