日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql ——MHA

發布時間:2025/3/19 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql ——MHA 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、實驗環境:

  • rhel6.5 selinux關閉,防火墻關閉
  • server1:172.25.54.4 mha-manager
  • server2:172.25.54.1 master mysql-5.7.17 mha-node
  • server3:172.25.54.2 master slave mysql-5.7.17 mha-node
  • server4:172.25.54.3 master slave mysql-5.7.17 mha-node

若以前做過數據庫實驗,需要清理數據庫數據

//清理以前數據庫的數據/etc/init.d/mysqld startrm -rf /var/lib/mysql/*> /var/log/mysqld.log/etc/init.d/mysqld restart

在配置MHA之前,我們需要實現基于GTID的主從復制

Server1為主庫,server2、3為從庫

修改配置文件 /etc/my.cnf
vim /etc/my.cnf

啟動mysql流程:
[root@server2 ~]# /etc/init.d/mysqld restart [root@server2 ~]# cat /var/log/mysqld.log | grep password 2018-08-08T08:51:19.321424Z 1 [Note] A temporary password is generated for root@localhost: u/Klif/g3sFi [root@server2 ~]# mysql_secure_installation //初始化設置

二、Master配置:

[root@server2 ~]# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 //授予slaves replication權限 mysql> grant replication slave on *.* to 'tutu'@'172.25.54.%' identified by '5820hhXM!@#';

三、Slave配置

[root@server3 ~]# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12mysql> change master to master_host='172.25.54.1',master_user='tutu',master_password='5820hhXM!@#', MASTER_AUTO_POSITION=1;mysql> start slave;mysql> show slave status\G;Slave_IO_Running: Yes ##表示mysql連接成功Slave_SQL_Running: Yes

若出現Slave_SQL_Running為No的情況(即master與slave的數據不同步)


解決如下

三、MHA manager配置

需要的安裝包:

mha4mysql-manager-0.56-0.el6.noarch.rpm
mha4mysql-node-0.56-0.el6.noarch.rpm
perl-Config-Tiny-2.12-7.1.el6.noarch.rpm
perl-Email-Date-Format-1.002-5.el6.noarch.rpm
perl-Log-Dispatch-2.27-1.el6.noarch.rpm
perl-Mail-Sender-0.8.16-3.el6.noarch.rpm
perl-Mail-Sendmail-0.79-12.el6.noarch.rpm
perl-MIME-Lite-3.027-2.el6.noarch.rpm
perl-MIME-Types-1.28-2.el6.noarch.rpm
perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm

[root@server4 ~]# yum install *.rpm -y
mha高可用文件配置
[root@server4 ~]# mkdir /etc/masterha [root@server4 ~]#vim /etc/masterha/mah.conf ------------------------------------------------ [server default] manager_workdir=/etc/masterha //設置manager的工作目錄 manager_log=/etc/masterha/mha.log //設置manager的日志 master_binlog_dir=/var/lib/mysql //設置master 保存binlog的位置,以便MHA可以找到master的日志 user=root //監控用戶 password="5820Hh!@#" //設置mysql中root用戶的密碼,這個密碼是前文中創建監控用戶的那個密碼 ping_interval=1 //設置監控主庫,發送ping包的時間間隔,默認是3秒,嘗試三次沒有回應的時候自動進行railover remote_workdir=/tmp //設置遠端mysql在發生切換時binlog的保存位置 repl_user=tutu //設置復制環境中的復制用戶名 repl_password="5820Hh!@#" //設置復制用戶的密碼 ssh_user=root //設置ssh的登錄用戶名[server1] hostname=172.25.54.1 port=3306[server2] hostname=172.25.54.2 port=3306 candidate_master=1 //設置為候選master check_repl_delay=0 //默認情況下如果一個slave落后master 100M的relay logs的話,MHA將不會選擇該slave作為一個新的master[server3] hostname=172.25.54.3 port=3306 #no_master=1

配置ssh免密連接

各個節點都是基于SSH互信通信; 把MHA管理節點上生成的私鑰文件分別復制到其它三個節點上,確保可無需驗證登錄。

[root@server4 ~]# ssh-keygen -t rsa

[root@server4 ~]# ssh-copy-id server4 [root@server4 ~]# ssh-copy-id 172.25.54.4 [root@server4 ~]# ssh-copy-id 172.25.54.3 [root@server4 ~]# ssh-copy-id 172.25.54.2 [root@server4 ~]# ssh-copy-id 172.25.54.1 [root@server1 ~]# scp ~/.ssh/* server1:~/.ssh/ [root@server1 ~]# scp ~/.ssh/* server1:~/.ssh/ [root@server1 ~]# scp ~/.ssh/* server3:~/.ssh/
主節點授權:
mysql> grant all on *.* to root@'172.25.18.%' identified by '5820hhXM!@#'; //監控用戶授權

四、測試:

//檢測各節點間 ssh 互信通信 [root@server4 ~]# masterha_check_ssh --conf=/etc/masterha/mah.conf ... All SSH connection tests passed successfully. //表示ssh配置成功//檢查管理MySQL復制集群的連接 [root@server4 ~]# masterha_check_repl --conf=/etc/masterha/mah.conf ... MySQL Replication Health is OK. //表示正常通過檢測
高可用檢測:

MHA manager

//啟動 MHA [root@server4 ~]# nohup masterha_manager --conf=/etc/masterha/mah.conf --ignore_last_failover 2>&1

中止主節點server1上mysql服務前,各slave的狀態:
server2和server3狀態一樣:

中止主節點server1上mysql服務 [root@server2 ~]# /etc/init.d/mysqld stop

server2作為備份節點,主節點故障后會迅速替代其進行工作。

server2: mysql> show slave status\G; Empty set (0.00 sec)

server3:

mysql> show slave status\G;Master_Host: 172.25.54.2

手動完成在線主從節點切換:

[root@server1 ~]# masterha_master_switch --conf=/etc/master/mah.conf--master_state=alive --new_master_host=172.25.54.2 --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=1000

故障切換:

[root@server1 ~]#masterha_master_switch --conf=/etc/master/mah.conf--master_state=dead --dead_master_host=172.25.54.1 --dead_master_port=3306 --new_master_host=172.25.54.2 --new_master_port=3306 --ignore_last_failover

總結

以上是生活随笔為你收集整理的mysql ——MHA的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。