91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

MySQL高可用之keepalived方案的示例分析

發布時間:2021-11-06 11:03:19 來源:億速云 閱讀:177 作者:小新 欄目:MySQL數據庫

這篇文章主要為大家展示了“MySQL高可用之keepalived方案的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“MySQL高可用之keepalived方案的示例分析”這篇文章吧。


    
實驗環境
    mysql master   : 192.168.111.52
    mysql slave     : 192.168.111.53
    keepalived vip :  192.168.111.60
、搭建過程
    1.  mysql雙主的構建
        ① 互相 change master 即可,此處省略該過程,著重講下keepalived

    2. keepalived相關
        ①  yum -y install keepalived 安裝keepalived
        ② root@192.168.111.52:~# keepalived -v
            Keepalived v1.2.7 (02/21,2013)

        ③ 編輯 /etc/keepalived/keepalived.conf   

點擊(此處)折疊或打開

  1. root@192.168.111.52:keepalived# cat keepalived.conf

  2. ! Configuration File for keepalived


  3. global_defs {##全局配置

  4.    notification_email {

  5.      horand_gc@163.com                    #####郵件接收者

  6.    }

  7.    notification_email_from dba@163.com    #####郵件發送者

  8.    smtp_server smtp.163.com               #####SMTP服務器

  9.    smtp_connect_timeout 30

  10.    router_id haMySQL                      #####routerID 同一組keepalived設置為相同

  11. }


  12. vrrp_script chk_mysql {##健康檢測相關配置

  13.     script "/etc/keepalived/chk_mysql.sh" #####設置腳本 或者直命令  返回 0 則表示成功 >0 則表示失敗, 詳情可以后面的腳本內容

  14.     interval 1                            #####檢測間隔

  15.     weight 2                              #####檢測返回失敗之后優先級會減少 2 (如果 master優先級100 , slave 優先級 99 ,master檢測失敗則優先級為100-2 < 99 ,則slave會提升為主)

  16. }


  17. vrrp_instance VI_1 {

  18.     state MASTER                          ##### 設為master

  19.     interface eth2                        ##### 網卡設定

  20.     virtual_router_id 51                  ##### 針對該 instance的虛擬id  , 同一組 instance設置相同

  21.     priority 100                          ##### 優先級設定

  22.     advert_int 1                          ##### 檢測時間間隔

  23.     authentication {

  24.         auth_type PASS                    ##### 同一組instance之間的認證方式為 PASS ,pass 為7777 ,必須相同(防止 有用戶惡意偽造 vrrp)

  25.         auth_pass 7777

  26.     }

  27.     virtual_ipaddress {

  28.         192.168.111.60                    ##### 設置虛擬ip ,可以設置多個

  29.     }

  30.     

  31.     track_script {

  32.     chk_mysql                             ##### 表示該instance 使用chk_mysql進行相關檢測

  33.     }

  34.   ##### 以下配置 在該實例 轉換為 master,slave,或者出錯的時候執行的腳本(可以設置郵件通知,或者處理一些其他問題)

  35.    # notify_master "/etc/keepalived/change_master.sh"

  36.    # notify_slave "/etc/keepalived/change_slave.sh"

  37.    # notify_fault "/etc/keepalived/change_fault.sh"

  38. }


  39. root@192.168.111.53:keepalived# cat keepalived.conf

  40. ! Configuration File for keepalived


  41. global_defs {

  42.    notification_email {

  43.      horand_gc@163.com

  44.    }

  45.    notification_email_from dba@163.com

  46.    smtp_server smtp.163.com

  47.    smtp_connect_timeout 30

  48.    router_id haMySQL

  49. }


  50. vrrp_script chk_mysql {

  51.         script "/etc/keepalived/chk_mysql.sh"

  52.         interval 1

  53.         weight 2

  54. }


  55. vrrp_instance VI_1 {

  56.     state BACKUP                            ##### 該主機作為備機 BACKUP 

  57.     interface eth2

  58.     virtual_router_id 51

  59.     priority 99                             ##### 優先級設置 小于 master

  60.     advert_int 1

  61.     authentication {

  62.         auth_type PASS

  63.         auth_pass 7777

  64.     }

  65.     virtual_ipaddress {

  66.         192.168.111.60

  67.     }

  68.     

  69.     track_script {

  70.         chk_mysql

  71.     }

  72. }


  73. root@192.168.111.52:keepalived# cat chk_mysql.sh

  74. #!/bin/bash


  75. num=`ps -ef |grep mysqld | grep -v grep | wc -l`        ##### 查看mysqld進程數量 , 正常情況有一個root起的mysqld_safe守護進程,還有一個屬于mysql用戶的mysqld進程

  76. [[ $num -eq 2 ]] && exit 0 || exit 1

    3. 故障模擬
       ① 啟動 keepalived    

點擊(此處)折疊或打開

  1. root@192.168.111.52:keepalived# tail /var/log/messages

  2. Apr 29 13:45:24 localhost Keepalived_healthcheckers[24184]: Registering Kernel netlink command channel

  3. Apr 29 13:45:24 localhost Keepalived_healthcheckers[24184]: Opening file '/etc/keepalived/keepalived.conf'.

  4. Apr 29 13:45:24 localhost Keepalived_healthcheckers[24184]: Configuration is using : 7417 Bytes

  5. Apr 29 13:45:24 localhost Keepalived_vrrp[24185]: Opening file '/etc/keepalived/keepalived.conf'.

  6. Apr 29 13:45:24 localhost Keepalived_vrrp[24185]: Configuration is using : 65552 Bytes

  7. Apr 29 13:45:24 localhost Keepalived_vrrp[24185]: Using LinkWatch kernel netlink reflector...

  8. Apr 29 13:45:24 localhost Keepalived_healthcheckers[24184]: Using LinkWatch kernel netlink reflector...

  9. Apr 29 13:45:25 localhost Keepalived_vrrp[24185]: VRRP_Script(chk_mysql) succeeded

  10. Apr 29 13:45:25 localhost Keepalived_vrrp[24185]: VRRP_Instance(VI_1) Transition to MASTER STATE

  11. Apr 29 13:45:26 localhost Keepalived_vrrp[24185]: VRRP_Instance(VI_1) Entering MASTER STATE


  12. root@192.168.111.53:keepalived# tailf /var/log/messages

  13. Apr 29 13:49:27 localhost Keepalived_healthcheckers[32569]: Registering Kernel netlink reflector

  14. Apr 29 13:49:27 localhost Keepalived_healthcheckers[32569]: Registering Kernel netlink command channel

  15. Apr 29 13:49:27 localhost Keepalived_vrrp[32570]: Opening file '/etc/keepalived/keepalived.conf'.

  16. Apr 29 13:49:27 localhost Keepalived_vrrp[32570]: Configuration is using : 65550 Bytes

  17. Apr 29 13:49:27 localhost Keepalived_vrrp[32570]: Using LinkWatch kernel netlink reflector...

  18. Apr 29 13:49:27 localhost Keepalived_healthcheckers[32569]: Opening file '/etc/keepalived/keepalived.conf'.

  19. Apr 29 13:49:27 localhost Keepalived_healthcheckers[32569]: Configuration is using : 7415 Bytes

  20. Apr 29 13:49:27 localhost Keepalived_vrrp[32570]: VRRP_Instance(VI_1) Entering BACKUP STATE

  21. Apr 29 13:49:27 localhost Keepalived_healthcheckers[32569]: Using LinkWatch kernel netlink reflector...

  22. Apr 29 13:49:27 localhost Keepalived_vrrp[32570]: VRRP_Script(chk_mysql) succeeded

    ip a 可以查看到 vip 192.168.111.60 在 192.168.111.52(master)上
    
    ② 關閉 111.52上面的mysql

點擊(此處)折疊或打開

  1. root@192.168.111.52:keepalived# mysqladmin shutdown

  2. root@192.168.111.52:keepalived# tailf /var/log/messages

  3. Apr 29 14:19:30 localhost Keepalived_vrrp[24862]: VRRP_Script(chk_mysql) failed

  4. Apr 29 14:19:32 localhost Keepalived_vrrp[24862]: VRRP_Instance(VI_1) Received higher prio advert

  5. Apr 29 14:19:32 localhost Keepalived_vrrp[24862]: VRRP_Instance(VI_1) Entering BACKUP STATE


  6. root@192.168.111.53:keepalived# tailf /var/log/messages

  7. Apr 29 14:19:55 localhost Keepalived_vrrp[566]: VRRP_Instance(VI_1) forcing a new MASTER election

  8. Apr 29 14:19:56 localhost Keepalived_vrrp[566]: VRRP_Instance(VI_1) Transition to MASTER STATE

  9. Apr 29 14:19:57 localhost Keepalived_vrrp[566]: VRRP_Instance(VI_1) Entering MASTER STATE

    ip a 可以查看到 vip 192.168.111.60 在 192.168.111.53(master)上

    ③ 啟動111.52上面的mysql

點擊(此處)折疊或打開

  1. root@192.168.111.52:keepalived# mysqld_safe & ; tailf /var/log/messages

  2. Apr 29 14:24:21 localhost Keepalived_vrrp[24862]: VRRP_Script(chk_mysql) succeeded

  3. Apr 29 14:24:22 localhost Keepalived_vrrp[24862]: VRRP_Instance(VI_1) forcing a new MASTER election

  4. Apr 29 14:24:23 localhost Keepalived_vrrp[24862]: VRRP_Instance(VI_1) Transition to MASTER STATE

  5. Apr 29 14:24:24 localhost Keepalived_vrrp[24862]: VRRP_Instance(VI_1) Entering MASTER STATE


  6. root@192.168.111.53:keepalived# tailf /var/log/messages

  7. Apr 29 14:24:45 localhost Keepalived_vrrp[566]: VRRP_Instance(VI_1) Received higher prio advert

  8. Apr 29 14:24:45 localhost Keepalived_vrrp[566]: VRRP_Instance(VI_1) Entering BACKUP STATE

    ip a 可以查看到 vip 192.168.111.60 在 192.168.111.52(master)上,也就是說111.52會持續通過track_script的腳本檢查 ,若成功的話會恢復原來的優先級100 ,便把vip搶過來了(若不希望優先級高的直接上來直接搶占vip的話 需要再instance 里面配置 nopreempt ,backup無需設置)

虛擬server
    以上是實驗是通過 vrrp_script以及trace_script 實現優先級變換來實現故障轉移的,現在看下 通過虛擬server怎么實現mysql的高可用
    ① 配置

點擊(此處)折疊或打開

  1. root@192.168.111.52:keepalived# cat /etc/keepalived/keepalived.conf

  2. ! Configuration File for keepalived


  3. global_defs {

  4.    notification_email {

  5.      tab@taomee.com

  6.    }

  7.    notification_email_from dba@taomee.com

  8.    smtp_server smtp.shidc.taomee.com

  9.    smtp_connect_timeout 30

  10.    router_id haMySQL

  11. }


  12. vrrp_script chk_mysql {

  13.     script "/etc/keepalived/chk_mysql.sh"

  14.     interval 1

  15.     weight 2

  16. }


  17. vrrp_instance VI_1 {

  18.     state MASTER

  19.     interface eth2

  20.     virtual_router_id 51

  21.     priority 100

  22.     nopreempt

  23.     advert_int 1

  24.     authentication {

  25.         auth_type PASS

  26.         auth_pass 7777

  27.     }

  28.     virtual_ipaddress {

  29.         192.168.111.60

  30.     }

  31.     

  32. #    track_script {

  33. #    chk_mysql

  34. #    }

  35. }


  36. virtual_server 192.168.111.60 3306 {

  37.     delay_loop 6

  38.     persistence_timeout 300

  39.     protocol TCP



  40.     real_server 192.168.111.52 3306 {

  41.         weight 1

  42.         notify_down /etc/keepalived/kill_self.sh

  43.         TCP_CHECK {

  44.             tcp_port 3306

  45.             connect_timeout 3

  46.         }

  47.     }


  48. }


  49. root@192.168.111.53:keepalived# cat /etc/keepalived/keepalived.conf

  50. ! Configuration File for keepalived


  51. global_defs {

  52.    notification_email {

  53.      tab@taomee.com

  54.    }

  55.    notification_email_from dba@taomee.com

  56.    smtp_server smtp.shidc.taomee.com

  57.    smtp_connect_timeout 30

  58.    router_id haMySQL

  59. }


  60. vrrp_script chk_mysql {

  61.         script "/etc/keepalived/chk_mysql.sh"

  62.         interval 1

  63.         weight 2

  64. }


  65. vrrp_instance VI_1 {

  66.     state BACKUP

  67.     interface eth2

  68.     virtual_router_id 51

  69.     priority 99

  70.     advert_int 1

  71.     authentication {

  72.         auth_type PASS

  73.         auth_pass 7777

  74.     }

  75.     virtual_ipaddress {

  76.         192.168.111.60

  77.     }

  78.     

  79. #    track_script {    #########這里先注釋掉 通過追蹤腳本的檢查

  80. #        chk_mysql

  81. #    }

  82. }


  83. virtual_server 192.168.111.60 3306 {

  84.     delay_loop 6

  85.     persistence_timeout 300

  86.     protocol TCP



  87.     real_server 192.168.111.53 3306 {### 真實 服務

  88.         weight 1                                    #### 權重,用來多真實服務 均衡使用

  89.         notify_down /etc/keepalived/kill_self.sh    ####在檢查該服務不可用時執行該腳本(用來殺死 keepalived 實現 vip 飄逸)

  90.         TCP_CHECK {

  91.                 tcp_port 3306                       #### 檢查端口 繼承 real_server 192.168.111.53 3306 {### 真實 服務

  92.             connect_timeout 3                       #### tcp超時時間

  93.         }

  94.     }


  95. }


  96. root@192.168.111.53:keepalived# cat /etc/keepalived/kill_self.sh

  97. #!/bin/bash

  98. killall keepalived



    ②啟動keepalived

點擊(此處)折疊或打開

  1. root@192.168.111.52:keepalived# keepalived

  2. root@192.168.111.52:keepalived# tailf /var/log/messages

  3. Apr 29 14:48:22 localhost Keepalived_vrrp[20482]: Opening file '/etc/keepalived/keepalived.conf'.

  4. Apr 29 14:48:22 localhost Keepalived_vrrp[20482]: Configuration is using : 64590 Bytes

  5. Apr 29 14:48:22 localhost Keepalived_vrrp[20482]: Using LinkWatch kernel netlink reflector...

  6. Apr 29 14:48:22 localhost Keepalived_healthcheckers[20481]: IPVS: Scheduler not found

  7. Apr 29 14:48:22 localhost kernel: IPVS: Scheduler module ip_vs_ not found

  8. Apr 29 14:48:22 localhost Keepalived_healthcheckers[20481]: IPVS: Service not defined

  9. Apr 29 14:48:22 localhost Keepalived_healthcheckers[20481]: Using LinkWatch kernel netlink reflector...

  10. Apr 29 14:48:22 localhost Keepalived_healthcheckers[20481]: Activating healthchecker for service [192.168.111.52]:3306

  11. Apr 29 14:48:23 localhost Keepalived_vrrp[20482]: VRRP_Instance(VI_1) Transition to MASTER STATE

  12. Apr 29 14:48:24 localhost Keepalived_vrrp[20482]: VRRP_Instance(VI_1) Entering MASTER STATE


  13. root@192.168.111.53:keepalived# keepalived

  14. root@192.168.111.53:keepalived# tailf /var/log/messages

  15. Apr 29 14:48:51 localhost Keepalived_healthcheckers[25092]: Configuration is using : 11673 Bytes

  16. Apr 29 14:48:51 localhost Keepalived_vrrp[25093]: Opening file '/etc/keepalived/keepalived.conf'.

  17. Apr 29 14:48:51 localhost Keepalived_vrrp[25093]: Configuration is using : 64568 Bytes

  18. Apr 29 14:48:51 localhost Keepalived_vrrp[25093]: Using LinkWatch kernel netlink reflector...

  19. Apr 29 14:48:51 localhost Keepalived_vrrp[25093]: VRRP_Instance(VI_1) Entering BACKUP STATE

  20. Apr 29 14:48:51 localhost kernel: IPVS: Scheduler module ip_vs_ not found

  21. Apr 29 14:48:51 localhost Keepalived_healthcheckers[25092]: IPVS: Scheduler not found

  22. Apr 29 14:48:51 localhost Keepalived_healthcheckers[25092]: IPVS: Service not defined

  23. Apr 29 14:48:51 localhost Keepalived_healthcheckers[25092]: Using LinkWatch kernel netlink reflector...

  24. Apr 29 14:48:51 localhost Keepalived_healthcheckers[25092]: Activating healthchecker for service [192.168.111.53]:3306

    此時 ip a 命令可以查看虛擬ip 111.60 在111.52(master) 上
   
    ③關閉 111.52上的mysql

點擊(此處)折疊或打開

  1. root@192.168.111.52:keepalived# mysqladmin shutdown

  2. 2017-04-29T07:07:38.121123Z mysqld_safe mysqld from pid file /opt/mysql/mysqld.pid ended

  3. [1]+  Done                    mysqld_safe

  4. root@192.168.111.52:keepalived# tailf /var/log/messages

  5. Apr 29 15:07:31 localhost Keepalived_healthcheckers[23405]: TCP connection to [192.168.111.52]:3306 failed !!!

  6. Apr 29 15:07:31 localhost Keepalived_healthcheckers[23405]: Removing service [192.168.111.52]:3306 from VS [192.168.111.60]:3306

  7. Apr 29 15:07:31 localhost Keepalived_healthcheckers[23405]: IPVS: Service not defined

  8. Apr 29 15:07:31 localhost Keepalived_healthcheckers[23405]: Executing [/etc/keepalived/kill_self.sh] for service [192.168.111.52]:3306 in VS [192.168.111.60]:3306

  9. Apr 29 15:07:31 localhost Keepalived_healthcheckers[23405]: Lost quorum 1-0=1 > 0 for VS [192.168.111.60]:3306

  10. Apr 29 15:07:31 localhost Keepalived_healthcheckers[23405]: Remote SMTP server [0.0.0.0]:25 connected.

  11. Apr 29 15:07:31 localhost Keepalived[23404]: Stopping Keepalived v1.2.7 (02/21,2013)

  12. Apr 29 15:07:31 localhost Keepalived_healthcheckers[23405]: IPVS: No such service

  13. Apr 29 15:07:31 localhost Keepalived_vrrp[23406]: VRRP_Instance(VI_1) sending 0 priority


  14. root@192.168.111.53:keepalived# tailf /var/log/messages

  15. Apr 29 15:07:32 localhost Keepalived_vrrp[26815]: VRRP_Instance(VI_1) Transition to MASTER STATE

  16. Apr 29 15:07:33 localhost Keepalived_vrrp[26815]: VRRP_Instance(VI_1) Entering MASTER STATE

    此時 ip a 命令可以看到虛擬ip 111.60在111.53(新master)上

以上是“MySQL高可用之keepalived方案的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

淮南市| 临西县| 德保县| 吕梁市| 鹰潭市| 新安县| 虞城县| 砚山县| 沅陵县| 阜南县| 玉龙| 崇阳县| 安龙县| 湘潭县| 兴山县| 桦甸市| 静乐县| 澄迈县| 东明县| 台东县| 永城市| 临沧市| 阿城市| 永福县| 陆川县| 香格里拉县| 垣曲县| 黑山县| 桦川县| 丹东市| 左权县| 拜泉县| 大连市| 左云县| 临汾市| 兰州市| 公主岭市| 怀来县| 巴楚县| 车致| 璧山县|