天天看點

Centos7+Keepalived實作Mariadb(MYSQL)的高可用(HA)

我們前面幾篇文章中有介紹了Keepalived的功能--HA,關于MySQL-HA,目前有多種解決方案,比如heartbeat、drbd、mmm、共享存儲,但是它們各有優缺點。heartbeat、drbd配置較為複雜,需要自己寫腳本才能實作MySQL自動切換,對于不會腳本語言的人來說,這無疑是一種腦裂問題;對于mmm,生産環境中很少有人用,且mmm 管理端需要單獨運作一台伺服器上,要是想實作高可用,就得對mmm管理端做HA,這樣無疑又增加了硬體開支;對于共享存儲,個人覺得MySQL資料還是放在本地較為安全,儲存設備畢竟存在單點隐患。使用MySQL雙master+keepalived是一種非常好的解決方案,今天我們介紹利用keepalived建構高可用MySQL-HA,保證兩台MySQL資料的一緻性,然後用keepalived實作虛拟IP,通過keepalived自帶的服務監控功能來實作MySQL故障時自動切換。

大概的思路是将兩台MYSQL伺服器配置雙向複制,然後通過配置Keepalived指定realserver指向本地的Mysql伺服器,實作高可用的切換。具體見下:

<a href="http://s3.51cto.com/wyfs02/M01/8C/4A/wKiom1hoyFCQbsZoAADbTAAzZHQ100.png" target="_blank"></a>

Hostname:DB01

IP:192.168.5.53

Role:Mariadb+Keepalived

Hostname:DB012

IP:192.168.5.54

Virtual IP:192.168.5.88

從Centos7下mysql已經被遺棄了,變為Mariadb了,當然功能及配置是一樣的。因為我們是Centos7,是以需要指定安裝源,為後面yum安裝服務提供支援需要執行以下指令:

1

2

3

4

5

<code>cd</code> <code>/etc/yum</code><code>.repo</code>

<code>vim epel.repo</code>

<code>添加以下内容</code>

<code>[epel]   name=aliyun epel    baseurl=http:</code><code>//mirrors</code><code>.aliyun.com</code><code>/epel/7Server/x86_64/</code>

<code>gpgcheck=0</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyFDytMTJAAAYeR5lMkM210.png" target="_blank"></a>

我們檢視定義的源

<a href="http://s3.51cto.com/wyfs02/M00/8C/4A/wKiom1hoyFHT_mgvAABoJ9J10bc925.png" target="_blank"></a>

運作yum install MariaDB-server MariaDB-client指令安裝 MariaDB

<code>yum </code><code>install</code> <code>mariadb-server mariadb-client mysql</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyFOTSRRoAALqO8nz8D4062.png" target="_blank"></a>

安裝完成後, 我們通過rpm檢視安裝的相關資訊

<code>rpm -qa | </code><code>grep</code> <code>mariadb</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyFTyp_CiAAAbj7hyDZQ114.png" target="_blank"></a>

然後啟動資料庫

<code>systemctl start mariadb</code>

<code>systemctl </code><code>enable</code> <code>mariadb</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyFWC6vugAAG0eZ61za4055.png" target="_blank"></a>

接着運作 mysql_secure_installation配置MariaDB

<code>mysql_secure_installation</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyFjzXKlzAAPVYHwoZTE282.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4A/wKiom1hoyFrD78D1AAF2PrqX9NA488.png" target="_blank"></a>

配置完成後,我們進入資料庫

<code>mysql –uroot –p</code>

<code>show databases;</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyFyiOfk9AAGJqsYwBnM294.png" target="_blank"></a>

接下來我們建立一個資料庫及表單資訊

<code>create databases DB1;</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4A/wKiom1hoyF6A-r8rAAAwk8xR-P8779.png" target="_blank"></a>

<code>use DB1;</code>

<code>show tables;</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyF_DC3ZJAAAZVB6IK4s130.png" target="_blank"></a>

<code>建立一個表</code>

<code>CREATE TABLE info(</code><code>id</code> <code>int(30)NOT NULL,name varchar(30) NOT NULL,sex varchar(30) NOT NULL,mail VARCHAR(255) NOT NULL,PRIMARY KEY(</code><code>id</code><code>));</code>

<code>insert into info (name,sex,mail) values(</code><code>'ls'</code><code>,</code><code>'boy'</code><code>,</code><code>'[email protected]'</code><code>);</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/4A/wKiom1hoyF-jkBjyAAChucgpE3o954.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4A/wKiom1hoyGDSuQ51AACqwJZtxF0122.png" target="_blank"></a>

我們可以根據自己的配置設定運作那些主機及使用者進行mysql的連接配接;

如果我們需要配置任何主機都可以連接配接的話,可以使用一下指令

<code>GRANT ALL PRIVILEGES ON *.* TO </code><code>'root'</code><code>@</code><code>'%'</code> <code>IDENTIFIED BY </code><code>'123456'</code> <code>WITH GRANT OPTION;</code>

<code>flush privileges;</code>

<code>如果任何主機連接配接不需要密碼的話可以下面</code>

<code>GRANT ALL PRIVILEGES ON *.* TO </code><code>'root'</code><code>@</code><code>'%'</code> <code>IDENTIFIED BY </code><code>''</code> <code>WITH GRANT OPTION;</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4A/wKiom1hoyGTxAN7mAADC9BLF4VY688.png" target="_blank"></a>

接下來我們修改預設的mysql配置檔案

6

7

8

<code>vim </code><code>/etc/my</code><code>.cnf</code>

<code>server-</code><code>id</code> <code>= 1                    </code><code>#backup這台設定2</code>

<code>log-bin = mysql-bin</code>

<code>binlog-</code><code>do</code><code>-db=DB  </code><code>#需要同步的資料庫名,如果有多個資料庫,可重複此參數,每個資料庫一行</code>

<code>binlog-ignore-db = mysql,information_schema       </code><code>#忽略寫入binlog日志的庫</code>

<code>auto-increment-increment = 2             </code><code>#字段變化增量值</code>

<code>auto-increment-offset = 1              </code><code>#初始字段ID為1</code>

<code>slave-skip-errors = all                       </code><code>#忽略所有複制産生的錯誤</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyGXC7m2mAACacpVBvfI021.png" target="_blank"></a>

儲存退出;先檢視下log bin日志和pos值位置

注意:這裡記住File的值:mysql-bin.000001和Position的值:245,後面會用到。

<code>show master status;</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4A/wKiom1hoyGaBGw3SAAAmvkq0B3g521.png" target="_blank"></a>

<code>change master to master_host=</code><code>'主伺服器'</code><code>,master_user=</code><code>'mysql使用者名'</code><code>,master_password=</code><code>'mysql服務密碼'</code><code>,master_log_file=</code><code>'File值'</code> <code>,master_log_pos=Postion值;</code>

<code>我們需要些對方的伺服器IP位址192.168.5.54</code>

<code>change master to master_host=</code><code>'192.168.5.54'</code><code>,master_user=</code><code>'root'</code><code>,master_password=</code><code>'123456'</code><code>,master_log_file=</code><code>'mysql-bin.000001'</code> <code>,master_log_pos=245;</code>

<code>裡面填寫的資訊是是在主伺服器上執行show master status;的資訊</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/4A/wKiom1hoyGjAT9ECAABnIqZEfNU916.png" target="_blank"></a>

添加防火牆端口

<code>firewall-cmd --add-port=</code><code>'3306/tcp'</code> <code>--permanent</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4A/wKiom1hoyGiBJgJqAAAYp8iK1iA878.png" target="_blank"></a>

<code>啟動slave</code>

<code>slave start;</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4A/wKiom1hoyGrx5o5CAAATJzRvcxw758.png" target="_blank"></a>

主主同步配置完畢,檢視同步狀态Slave_IO和Slave_SQL是YES說明主主同步成功。

<code>show slave status\G;</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyGyiSV9VAALvtE5RGL8349.png" target="_blank"></a>

我們也需要同時在第二台伺服器上執行上面的所有操作。

我們在第二台伺服器上也安裝完成

<a href="http://s3.51cto.com/wyfs02/M00/8C/4A/wKiom1hoyG_gv5PdAANARupf3M8905.png" target="_blank"></a>

我們同樣檢視版本

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyHChtJaUAAAcvBgD-FY952.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyHLR2jgmAAF_2l9KfT4582.png" target="_blank"></a>

<code>接着運作 mysql_secure_installation配置MariaDB</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyHXhUTXiAAQeP47DRWA513.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/8C/4A/wKiom1hoyHfT4glqAAFltVTf6F8981.png" target="_blank"></a>

接下來我們同樣登陸到mysql服務

<code>mysql -uroot -p123456</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyHiC8gvSAABSCuetHOE510.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyHmywckVAAAwk8xR-P8422.png" target="_blank"></a>

<code>use DB;</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyHryQdQXAAAZVB6IK4s201.png" target="_blank"></a>

建立一個表及插入資料

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyHvid38FAAChucgpE3o464.png" target="_blank"></a>

<code>select</code> <code>* from info</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4B/wKiom1hoyHzT66teAACqwJZtxF0356.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/8C/4B/wKiom1hoyH3iCNeCAADJRn0Mbdk147.png" target="_blank"></a>

<code>server-</code><code>id</code> <code>= 2                    </code><code>#backup這台設定2</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyH-CrCFfAALWReGGyPw240.png" target="_blank"></a>

儲存退出:  我們需要些對方的ip位址192.168.5.53

<code>change master to master_host=</code><code>'192.168.5.53'</code><code>,master_user=</code><code>'root'</code><code>,master_password=</code><code>'123456'</code><code>,master_log_file=</code><code>'mysql-bin.000001'</code> <code>,master_log_pos=245;</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4B/wKiom1hoyIDwc0UWAABiTGHWxV0073.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4B/wKiom1hoyIGS4FtYAAAXRFrmpe4145.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyIHyVi5hAAATJzRvcxw245.png" target="_blank"></a>

<code>Slave_IO_Running: Yes</code>

<code>Slave_SQL_Running: Yes</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyIPBSge-AALyjmNvfoE854.png" target="_blank"></a>

接下來我們測試一下

我們在第一台Mariadb的資料庫表中插入一條資料,然後在第二台伺服器上進行檢視,是否會同步;

因為我們在配置的時候指定了DB這個資料庫才會同步,是以我們需要在DB資料庫中插入資料

我們目前資料庫表中的資料隻有一條

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyISCgkTrAAHKxh_2QVc127.png" target="_blank"></a>

接下來我們插入一條資料;

<code>insert into info(</code><code>id</code><code>,name,sex,mail) values(</code><code>'1'</code><code>,</code><code>'ll'</code><code>,</code><code>'girl'</code><code>,</code><code>'[email protected]'</code><code>);</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyIXRhvLAAAA0qZSoE0o835.png" target="_blank"></a>

插入完成後,我們在第二台伺服器上進行檢視;

我們檢視到資料是已經同步了;

<a href="http://s3.51cto.com/wyfs02/M02/8C/4B/wKiom1hoyIbCna1bAABPP8Ezr1U889.png" target="_blank"></a>

我們接下來在第二台伺服器上進行插入一條資料,看看第一台伺服器是否會同步;

<code>insert into info(</code><code>id</code><code>,name,sex,mail) values(</code><code>'2'</code><code>,</code><code>'zs'</code><code>,</code><code>'boy'</code><code>,</code><code>'[email protected]'</code><code>);</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyIjgNJDrAAA8GACwvOQ494.png" target="_blank"></a>

接着我們在第一台伺服器上進行檢視

資料已經同步過來了

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyInR92RRAAArO5w_f8A293.png" target="_blank"></a>

配置keepalived實作熱備

我們首先在第一台伺服器上進行安裝

<code>yum </code><code>install</code> <code>-y keepalived</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4B/wKiom1hoyIuwzphpAAJrhY3YE3U192.png" target="_blank"></a>

我們首先備份一下預設的配置檔案;

<code>cp</code> <code>/etc/keepalived/keepalived</code><code>.conf </code><code>/etc/keepalived/keepalived</code><code>.conf.bak</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/4B/wKiom1hoyIyQeVkPAAAaoP8rMG0095.png" target="_blank"></a>

我們檢視預設配置

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

<code>[root@db01 keepalived]</code><code># vim keepalived.conf</code>

<code>! Configuration File </code><code>for</code> <code>keepalived</code>

<code>global_defs {</code>

<code>   </code><code>notification_email {</code>

<code>     </code><code>[email protected]</code>

<code>     </code><code>[email protected]</code>

<code>     </code><code>[email protected]</code>

<code>   </code><code>}</code>

<code>   </code><code>notification_email_from [email protected]</code>

<code>   </code><code>smtp_server 192.168.200.1</code>

<code>   </code><code>smtp_connect_timeout 30</code>

<code>   </code><code>router_id LVS_DEVEL</code>

<code>}</code>

<code>vrrp_instance VI_1 {</code>

<code>    </code><code>state MASTER</code>

<code>    </code><code>interface eth0</code>

<code>    </code><code>virtual_router_id 51</code>

<code>    </code><code>priority 100</code>

<code>    </code><code>advert_int 1</code>

<code>    </code><code>authentication {</code>

<code>        </code><code>auth_type PASS</code>

<code>        </code><code>auth_pass 1111</code>

<code>    </code><code>}</code>

<code>    </code><code>virtual_ipaddress {</code>

<code>        </code><code>192.168.200.16</code>

<code>        </code><code>192.168.200.17</code>

<code>        </code><code>192.168.200.18</code>

<code>virtual_server 192.168.200.100 443 {</code>

<code>    </code><code>delay_loop 6</code>

<code>    </code><code>lb_algo rr</code>

<code>    </code><code>lb_kind NAT</code>

<code>    </code><code>nat_mask 255.255.255.0</code>

<code>    </code><code>persistence_timeout 50</code>

<code>    </code><code>protocol TCP</code>

<code>    </code><code>real_server 192.168.201.100 443 {</code>

<code>        </code><code>weight 1</code>

<code>        </code><code>SSL_GET {</code>

<code>            </code><code>url {</code>

<code>              </code><code>path /</code>

<code>              </code><code>digest ff20ad2481f97b1754ef3e12ecd3a9cc</code>

<code>            </code><code>}</code>

<code>              </code><code>path </code><code>/mrtg/</code>

<code>              </code><code>digest 9b3a0c85a887a256d6939da88aabd8cd</code>

<code>            </code><code>connect_timeout 3</code>

<code>            </code><code>nb_get_retry 3</code>

<code>            </code><code>delay_before_retry 3</code>

<code>        </code><code>}</code>

<code>virtual_server 10.10.10.2 1358 {</code>

<code>    </code><code>sorry_server 192.168.200.200 1358</code>

<code>    </code><code>real_server 192.168.200.2 1358 {</code>

<code>        </code><code>HTTP_GET {</code>

<code>              </code><code>path </code><code>/testurl/test</code><code>.jsp</code>

<code>              </code><code>digest 640205b7b0fc66c1ea91c463fac6334d</code>

<code>              </code><code>path </code><code>/testurl2/test</code><code>.jsp</code>

<code>              </code><code>path </code><code>/testurl3/test</code><code>.jsp</code>

<code>    </code><code>real_server 192.168.200.3 1358 {</code>

<code>              </code><code>digest 640205b7b0fc66c1ea91c463fac6334c</code>

<code>virtual_server 10.10.10.3 1358 {</code>

<code>    </code><code>delay_loop 3</code>

<code>    </code><code>real_server 192.168.200.4 1358 {</code>

<code>    </code><code>real_server 192.168.200.5 1358 {</code>

通過修改後,我們将将預設的檔案清空,然後粘貼下面内容

<code>echo</code> <code>&gt; </code><code>/etc/keepalived/keepalived</code><code>.conf</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyIySulBWAAAQ2nBNeAw932.png" target="_blank"></a>

然後粘貼以下内容

<code>       </code><code>[email protected]             </code><code># 定義通知郵箱,有多個可以換行添加</code>

<code>   </code><code>notification_email_from [email protected]</code><code># 定義發送郵件的郵箱</code>

<code>   </code><code>smtp_server mail.ixmsoft.com             </code><code># 定義發件伺服器</code>

<code>   </code><code>smtp_connect_timeout 30                  </code><code># 定義連接配接smtp伺服器逾時時間</code>

<code>   </code><code>router_id Mysql-HA</code>

<code>state BACKUP           </code><code>#兩台都設定BACKUP</code>

<code>interface ens160</code>

<code>virtual_router_id 51       </code><code>#主備相同</code>

<code>priority 100           </code><code>#優先級,backup設定90</code>

<code>advert_int 1</code>

<code>nopreempt             </code><code>#不主動搶占資源,隻在master這台優先級高的設定,backup不設定</code>

<code>authentication {</code>

<code>auth_type PASS</code>

<code>auth_pass 1111</code>

<code>virtual_ipaddress {</code>

<code>192.168.5.88</code>

<code>virtual_server 192.168.5.88 3306 {</code>

<code>delay_loop 2</code>

<code>lb_algo rr              </code><code>#LVS算法,用不到,我們就關閉了</code>

<code>lb_kind DR              </code><code>#LVS模式,如果不關閉,備用伺服器不能通過VIP連接配接主MySQL</code>

<code>persistence_timeout 50  </code><code>#同一IP的連接配接60秒内被配置設定到同一台真實伺服器</code>

<code>protocol TCP</code>

<code>real_server 192.168.5.53 3306 {   </code><code>#檢測本地mysql,backup也要寫檢測本地mysql</code>

<code>weight 3</code>

<code>notify_down </code><code>/DATA/shell/mysql</code><code>.sh    </code><code>#當mysq服down時,執行此腳本,殺死keepalived實作切換</code>

<code>TCP_CHECK {</code>

<code>connect_timeout 3    </code><code>#連接配接逾時</code>

<code>nb_get_retry 3       </code><code>#重試次數</code>

<code>delay_before_retry 3 </code><code>#重試間隔時間</code>

<code>  </code><code>}</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyI_zyRVkAAPd6Ne57ZQ155.png" target="_blank"></a>

我們啟動keepalived服務

<code>systemctl start keepalived</code>

<code>systemctl </code><code>enable</code> <code>keepalived</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyJDzEycGAAAXSVs1X7c233.png" target="_blank"></a>

接下來我們在DATA目錄下建立shell目錄添加mysql.sh腳本

<code>cd</code> <code>/DATA</code>

<code>mkdir</code> <code>shell</code>

<code>vim mysql.sh</code>

<code>pkill keepalived</code>

<code>chmod</code> <code>a+x mysql.sh</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyJHBbnR-AAAy-4IMnjg156.png" target="_blank"></a>

接着我們檢視keepalived的網卡監聽狀态,虛拟IP已經監聽

<a href="http://s3.51cto.com/wyfs02/M01/8C/4B/wKiom1hoyJKwre_sAABj4iGYxPs504.png" target="_blank"></a>

我們同樣在第二台伺服器上也安裝keepalived

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyJOAKja5AAB242BOVq0792.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyJSzv59YAAAaldlPAHU205.png" target="_blank"></a>

然後将第一台伺服器上的keepalived拷貝到第二台伺服器上的keepalived路勁下替換keepalived.conf檔案

<code>scp</code> <code>/etc/keepalived/keepalived</code><code>.conf [email protected]:</code><code>/etc/keepalived/</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyJXBggmpAAFQZf1DUnQ698.png" target="_blank"></a>

然後我們将第一台伺服器下的mysql.sh拷貝到第二台對應的路勁

<code>scp</code> <code>/DATA/shell/mysql</code><code>.sh [email protected]:</code><code>/DATA/shell/</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyJah0zxTAABTRgnj0QQ951.png" target="_blank"></a>

然後,我們要修改第二台伺服器的keepalived.conf檔案,因為剛才拷貝過來的資料需要修改

<code>vim </code><code>/etc/keepalived/keepalived</code><code>.conf</code>

我們需要修改realserver的位址,指向本地192.168.5.54,然後修改weight權重值,我們備伺服器修改成50

<code>priority 50           </code><code>#優先級,backup設定90</code>

<code>#nopreempt             #不主動搶占資源,隻在master這台優先級高的設定,backup不設定</code>

<code>real_server 192.168.5.54 3306 {   </code><code>#檢測本地mysql,backup也要寫檢測本地mysql</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyJigIToEAAOwrbpIowk116.png" target="_blank"></a>

儲存退出後,我們啟動keepalived服務

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyJmALkLAAAAXXy-XMM4671.png" target="_blank"></a>

我們第二台伺服器的網卡監聽狀态,虛拟位址都 已經監聽了

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyJrj04GGAABj2tHlFZ4801.png" target="_blank"></a>

接下來我們需要在兩台伺服器上ping一下虛拟ip位址是否通

<code>ping</code> <code>192.168.5.88</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyJyQk-K2AABLmr1sDP0957.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyJ2i4o3XAAAzoO7ZI3s336.png" target="_blank"></a>

我們找了一台windows機器進行測試

<a href="http://s3.51cto.com/wyfs02/M02/8C/4B/wKiom1hoyJ7SahlXAABKo1xEHY4614.png" target="_blank"></a>

然後使用myslq連接配接工具進行測試,測試通過

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyJ_gFz4RAACU55sV0NY680.png" target="_blank"></a>

我們檢視連接配接後所有的資料資訊都可以看見

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyKGggxkRAACwo-yagFE123.png" target="_blank"></a>

接下來我們将第一台伺服器服務停止。

<code>systemctl stop keepalived</code>

<code>systemctl stop mariadb</code>

<a href="http://s3.51cto.com/wyfs02/M02/8C/4B/wKiom1hoyKKSeuddAAATZ3okk9k335.png" target="_blank"></a>

用戶端還是可以繼續使用。

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyKODRCBpAACbyhCchJU079.png" target="_blank"></a>

接下來我們使用用戶端插入一條資料

<code>insert into inf (</code><code>id</code><code>,name,sex,mail) values (</code><code>'3'</code><code>,</code><code>'gavin'</code><code>,</code><code>'boy'</code><code>,</code><code>'[email protected]'</code><code>)</code>

<a href="http://s3.51cto.com/wyfs02/M01/8C/47/wKioL1hoyKWh2t5lAAC5NSgammA083.png" target="_blank"></a>

我們檢視插入的資料

<a href="http://s3.51cto.com/wyfs02/M00/8C/47/wKioL1hoyKeQqT-5AADH9YxmbCM367.png" target="_blank"></a>

我們在第二台伺服器上檢視資料

<a href="http://s3.51cto.com/wyfs02/M02/8C/47/wKioL1hoyKiQjUFxAAB3-l9yp_Q094.png" target="_blank"></a>

接下來我們将第一台伺服器的mariadb和keepalived服務啟動起來,然後再檢視資料

<a href="http://s3.51cto.com/wyfs02/M02/8C/4B/wKiom1hoyKnxG3bEAAAUSU2VZ54901.png" target="_blank"></a>

檢視第一台的資料也會自動同步

<code>select</code> <code>* from info;</code>

<a href="http://s3.51cto.com/wyfs02/M00/8C/4B/wKiom1hoyKqhdIs8AABq-foN_kI791.png" target="_blank"></a>

本文轉自 高文龍 51CTO部落格,原文連結:http://blog.51cto.com/gaowenlong/1888036,如需轉載請自行聯系原作者