MySQL高可用解決方案---MHA

來源:互聯網
上載者:User

標籤:linux、mysql

一主兩從一管理,一共四台裝置

MHA的作用是做master的高可用,當主節點MySQL故障時,會將和主節點資料最接近的一個從節點提升為主節點,同時如果其他從節點有更新的資料也會同步到此“准主節點”上。如果在主節點有資料已經提交但是所有的從節點還未完成複製,則從節點提升為主節點後只能將此資料回退,沒有別的辦法。


準備事項:

1、同步時間

ntpdate 172.18.0.1

2、配置主機網域名稱,在主節點即node1上操作

vim /etc/hosts192.168.1.101 node1  #主節點192.168.1.106 node2  #從節點192.168.1.107 node3  #從節點192.168.1.100 node4  #managerscp /etc/hosts  node2:/etc/hostsscp /etc/hosts  node3:/etc/hostsscp /etc/hosts  node4:/etc/hosts

3、MHA需要ssh無密鑰驗證

ssh-keygen -t rsa -P ‘‘cd  /root/.ssh/ssh-copy-id -i ./id_rsa.pub  [email protected]scp id_rsa{,.pub} authorized_keys  node2:/root/.sshscp id_rsa{,.pub} authorized_keys  node3:/root/.sshscp id_rsa{,.pub} authorized_keys  node4:/root/.ssh


下面開始具體步驟:

1、配置主從複製叢集

node1:vim /etc/my.cnf.d/server.cnf   [server]  skip_name_resolve=ON  innodb_file_per_table=ON  server_id = 1  log_bin = master-log  relay_log = relay-log  #主節點也要配置中繼日誌,因為主節點故障再恢複時就會稱為從節點
node2:vim /etc/my.cnf.d/server.cnf  [server]  skip_name_resolve=ON  innodb_file_per_table=ON  server_id = 2  relay_log = relay-log  log_bin = master-log  relay_log_purge = OFF  read_only = ON    node3:vim /etc/my.cnf.d/server.cnf  [server]  skip_name_resolve=ON  innodb_file_per_table=ON  server_id = 3  relay_log = relay-log  log_bin = master-log  relay_log_purge = OFF  read_only = ON

開啟服務

systemctl  start mariadb.service


2、在主節點授權複製帳號

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘repluser‘@‘192.168.1.%‘ IDENTIFIED BY ‘centos‘;

主節點授權管理裝置的管理帳號

GRANT ALL ON *.* TO ‘mhaadmin‘@‘192.168.1.%‘ IDENTIFIED BY ‘centos‘;

寫入磁碟

FLUSH PRIVILEGES;


3、在從節點配置

CHANGE  MASTER TO MASTER_HOST=‘192.168.1.101‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘centos‘,MASTER_LOG_FILE=‘master-log.000003‘,MASTER_LOG_POS=245;START SLAVE ;SHOW SLAVE STATUS\G;SELECT USER FROM mysql.user;#能看到複製授權賬戶和管理賬戶已經同步


4、安裝MHA軟體包

在manager節點安裝manager和node包

yum -y install mha4mysql-manager-0.56-0.el6.noarch.rpmyum -y install mha4mysql-node-0.56-0.el6.noarch.rpm


5、在node上安裝node包

yum -y install  mha4mysql-node-0.56-0.el6.noarch.rpm


6、在manager上配置

mkdir /etc/masterhavim /etc/masterha/app1.cnf[server default]user=mhaadminpassword=centosmanager_workdir=/data/masterha/app1manager_log=/data/masterha/app1/manager.logremote_workdir=/data/masterha/app1ssh_user=rootrepl_user=repluserrepl_password=centosping_interval=1[server1]hostname=192.168.1.101ssh_port=22candidate_master=1[server2]hostname=192.168.1.106ssh_port=22candidate_master=1[server3]hostname=192.168.1.107ssh_port=22candidate_master=1


7、檢查配置並啟動服務

檢查masterha_check_ssh --conf=/etc/masterha/app1.cnfmasterha_check_repl --conf=/etc/masterha/app1.cnf 啟動manager伺服器masterha_manager  --conf=/etc/masterha/app1.cnf


8、測試

此時類比主節點故障

SHOW MASTER STATUS; SHOW SLAVE STATUS;#在從節點查看從節點資訊,此時有一個從節點已經升級為主節點


9、修複原主節點

vim /etc/my.cnf.d/server.cnf    #添加兩行relay_log_purge = OFFread_only = ON再次開啟服務上線systemctl  start mariadb.serviceCHANGE  MASTER TO MASTER_HOST=‘192.168.1.106‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘centos‘,MASTER_LOG_FILE=‘master-log.000003‘,MASTER_LOG_POS=320; START SLAVE;SHOW SLAVE STATUS\G;#此時的主節點就是替代的原從節點


10、在manager上檢查複製功能

masterha_check_repl --conf=/etc/masterha/app1.cnf出現如下字樣就說明主從已經切換了,而且原主節點此時也變成了從節點192.168.1.106(192.168.1.106:3306) (current master) +--192.168.1.101(192.168.1.101:3306) +--192.168.1.107(192.168.1.107:3306)


11、再次啟動MHA

nohup masterha_manager  --conf=/etc/masterha/app1.cnf &> /data/masterha/app1/manager.log &#在後台執行,並剝離與當前終端的關係#當主節點再次down掉,此程式會自動結束同時主從節點自動切換。然後我們還要再次手動開啟MHA


至此實驗結束

本文出自 “a_pan” 部落格,謝絕轉載!

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.