MySQL高可用部署MHA

來源:互聯網
上載者:User

標籤:許可權列表   任務   nlog   master   mysql高可用   install   replica   複製   建議   

MHA簡介
  • MHA 由兩部分組成: MHA Manager(管理節點)和 MHA Node(資料節點)。 MHA Manager可以單獨部署在一台獨立的機器上管理多個 master-slave 叢集,也可以部署在一台 slave 節點上。
  • MHA Node 運行在每台 MySQL 伺服器上, MHA Manager 會定時探測叢集中的 master節點,當 master 出現故障時,它可以自動將最新資料的 slave 提升為新的 master,然後將所有其他的 slave 重新指向新的 master。整個容錯移轉過程對應用程式完全透明。
環境準備
伺服器(安裝MHA):172.20.29.201主伺服器:172.20.29.202從伺服器A:172.20.29.203從伺服器B:172.20.29.204
1. 同步時間
#定義計劃任務crontab -e         */5 * * * *     /usr/sbin/ntpdate 172.20.0.1 &> /dev/null   #每5分鐘自動同步時間至伺服器
2. 關閉防火牆,SELINUX
iptables -vnL                   #查看防火牆狀態systemctl stop firewall         #關閉防火牆getenforce                      #查看SELinux狀態setenforce 0                    #關閉SElinux
3. 配置SSH公開金鑰(基於key驗證)
ssh-keygen -t rsa -P ‘‘ -f "/root/.ssh/id_rsa"  #產生私密金鑰ssh-copy-id 172.20.29.201       #複製公開金鑰至本機#四台主機共用一把鑰匙    scp -pr /root/.ssh 172.20.29.202:/root/ scp -pr /root/.ssh 172.20.29.203:/root/scp -pr /root/.ssh 172.20.29.204:/root/
4. 所有伺服器上安裝MHA-node包
yum install mha4mysql-node-0.56-0.el6.noarchmysql5.5
MHA伺服器配置
#MHA伺服器上安裝MHA包(注意安裝依賴epel源)yum install mha4mysql-manager-0.56-0.el6.noarch#建立並修改MHA設定檔mkdir /etc/mha/ -pvim /etc/mha/app1.cnf    [server default]    user=MHAuser            #串連每一台資料庫的使用者    password=centos         #串連每一台資料庫的密碼    manager_workdir=/data/mastermha/app1/    manager_log=/data/mastermha/app1/manager.log    remote_workdir=/data/mastermha/app1/    master_binlog_dir=/data/binlogs/    #指定管理的二進位檔案目錄    ssh_user=root           #使用什麼帳號來串連每台主機    repl_user=MHAuser       #ssh協議串連的使用者    repl_password=centos    #ssh協議串連的密碼    ping_interval=1     #多長時間去探測每個節點    [server1]    hostname=172.20.29.202  #主伺服器地址    candidate_master=1      #設定為主伺服器    [server2]    hostname=172.20.29.203  #從伺服器位址    candidate_master=1      #設定主伺服器宕機立刻升級為主伺服器    [server3]    hostname=172.20.29.204  #從伺服器位址#檢查每一台主機ssh協議是否生效masterha_check_ssh --conf=/etc/mha/app1.cnf #檢查每一台主機複製是否正常masterha_check_repl --conf=/etc/mha/app1.cnf#開啟MHA叢集(注意此處前台執行,長期前台執行,建議在主機上運行)masterha_manager --conf=/etc/mha/app1.cnf
主伺服器配置.
#建立檔案夾用於存放二進位記錄檔(注意檔案夾許可權)mkdir /data/binlogschown mysql.mysql /data/binlogs/chmod 770 /data/binlogs/#修改mysql設定檔vim /etc/my.cnf        server_id= 11           #主伺服器ID標識        log_bin=/data/binlogs/master-bin    #設定檔裡指定二進位記錄檔存放目錄        binlog_format=row       #以行模式複製資料        skip_name_resolve=1       #做名字解析        rpl_semi_sync_master_enabled=ON  #開啟半同步外掛程式#授權從伺服器登入本機資料庫grant replication slave,replication client on *.* to ‘jian‘@‘172.20.29.%‘ identified by ‘centos‘;#授權所有許可權給MHA管理所有伺服器grant all on *.* to [email protected]‘172.20.29.%‘ identified by ‘centos‘;#重新整理系統許可權列表flush privileges;
從伺服器A配置
#建立檔案夾用於存放二進位記錄檔(注意檔案夾許可權)mkdir /data/binlogschown mysql.mysql /data/binlogs/chmod 770 /data/binlogs/#修改mysql設定檔vim /etc/my.cnf     server-id = 12                      #從伺服器ID標識log-bin=/data/binlogs/master-bin    #設定檔裡指定二進位記錄檔存放目錄read_only=on                        #配置從伺服器唯讀relay_log_purge=0                   #中繼日誌不清除skip_name_resolve=1                 #做名字解析rpl_semi_sync_slave_enabled=ON;     #開啟半同步外掛程式#從庫建立與主庫的串連change master to MASTER_HOST=‘172.20.29.202‘,MASTER_USER =‘jian‘,MASTER_PASSWORD =‘centos‘,MASTER_LOG_FILE =‘master-bin.000001‘,MASTER_LOG_POS =245;start slave;        #開啟IO線程show slave status\G #查看IO線程    Slave_IO_Running: Yes   #這兩項全部為yes,成功;否則失敗.      Slave_SQL_Running: Yes
從伺服器B配置
#建立檔案夾用於存放二進位記錄檔(注意檔案夾許可權)mkdir /data/binlogschown mysql.mysql /data/binlogs/chmod 770 /data/binlogs/#修改mysql設定檔vim /etc/my.cnf     server-id = 13                      #從伺服器ID標識    log-bin=/data/binlogs/master-bin    #設定檔裡指定二進位記錄檔存放目錄    read_only=on                        #配置從伺服器唯讀    relay_log_purge=0                   #中繼日誌不清除    skip_name_resolve=1                 #做名字解析#建立串連之前建議清理線程緩衝    stop slave;         reset slave;#從庫建立與主庫的串連change master to MASTER_HOST=‘172.20.29.202‘,MASTER_USER =‘jian‘,MASTER_PASSWORD =‘centos‘,MASTER_LOG_FILE =‘master-bin.000001‘,MASTER_LOG_POS =245;start slave;        #開啟IO線程show slave status\G #查看IO線程    Slave_IO_Running: Yes   #這兩項全部為yes,成功;否則失敗.      Slave_SQL_Running: Yes
測試
  • 假設主伺服器宕機
  • MHA程式將自動將從伺服器A切換為主伺服器,並停下MHA程式

    • 後續啟用叢集管理
  • 備忘:本文只簡單記錄了mha的環境部署過程.

MySQL高可用部署MHA

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.