Mysql 主从复制+MHA搭建
Mysql半雙工主從復制
https://blog.csdn.net/qq_35349982/article/details/108558868
繼續(xù)主從復制之后的MHA搭建
master-1 192.168.182.128
slave-1 192.168.182.132
slave-2 192.168.182.130
mha-1 192.168.182.133
準備工作
關閉防火墻
1.機器都要做關閉防火墻:
systemctl stop firewalld.servicesystemctl disable firewalld.servicesystemctl status firewalld.service2. ssh互通環(huán)境
實現(xiàn)遠程控制及數(shù)據(jù)管理功能:
在Manager節(jié)點生成密鑰對兒,并設置其可遠程連接本地主機后, 將私鑰文件及authorized_keys文件復制給余下的所有節(jié)點即可。
#master (在root目錄下創(chuàng)建密鑰,不需要輸密鑰,一路回車鍵) ssh-keygen -t rsa #一定要用root用戶執(zhí)行,否則權限不夠 #復制給其他節(jié)點的時候,還要再輸入服務器的密碼 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.132 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.130 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.133 ##復制給其他節(jié)點 #salve1 ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.130 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.128 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.133 #salve2 ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.132 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.128 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.133 #mh1 ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.132 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.128 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.182.130補充
#查看生成公鑰 cat ~/.ssh/id_rsa.pub參考:
https://www.jianshu.com/p/4d3888e116b2
MHA搭建
前提:ssh互通環(huán)境
1. MHA安裝之前需要先安裝這兩個查詢依賴,不然可能會安裝失敗
yum install perl-ExtUtils-MakeMaker yum install perl-Test-Simple2. 四個節(jié)點都需安裝node(mha服務額外安裝一個mannger服務)
yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpmmaster節(jié)點與連兩個slave節(jié)點需要安裝perl包(三個節(jié)點都執(zhí)行)
#(進入mysql授權命令)MHA的管理賬號 grant all privileges on *.* to 'mhamanger'@'%' identified by 'mhamanger'; flush privileges;3. 在MHA節(jié)點上安裝(二選一)
有兩個安裝方法:選一個就行,我是用的方案二,安裝的特別慢
- 安裝MHA方案一:
安裝本地的mha4mysql-manager-0.58-0.el7.centos.noarch.rpm的文件
yum install perl-DBD-MySQL -y rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm yum install -y epel-release #安裝perl包依賴的時候,可能會報錯,執(zhí)?以下命令即可: sed -i 's#https://#http://#g' /etc/yum.repos.d/epel*repo yum install -y perl-Config-Tiny perl-Log-Dispatch perl-ParallelForkManager perl-Time-HiRes rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm- 安裝MHA方案二:
去官網(wǎng)下載,tar的安裝包,初始化安裝
yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes # 去下載manger的版本 https://github.com/yoshinorim/mha4mysql-manager/releases ##mha4mysql-manager-0.58.tar.gz cd /usr/local/src ##解壓 tar xf mha4mysql-node-0.57.tar.gz #進目錄 cd mha4mysql-node-0.57 ##下面這步可能會失敗,要安裝一個 perl perl Makefile.PL ##初始化 make && make install4. 創(chuàng)建配置文件
#配置?件?錄 mkdir -p /etc/mha #日志目錄 mkdir -p /var/log/mha/app1 #創(chuàng)建配置文件 vi /etc/mha/app1.cnf [server default] manager_log=/var/log/mha/app1/manager manager_workdir=/var/log/mha/app1 master_binlog_dir=/var/lib/mysql password=root ping_interval=2 repl_password=root repl_user=root ssh_user=root user=root [server1] hostname=192.168.182.128 port=3306 [server2] hostname=192.168.182.132 port=3306 [server3] hostname=192.168.182.130 port=33065.對節(jié)點進行檢測( 驗證SSH通信)
masterha_check_ssh --conf=/etc/mha/app1.cnf如果最后一行顯示為[info]All SSH connection tests passed successfully.則表示成功
5.檢查管理的MySQL復制集群的連接配置參數(shù)是否OK
masterha_check_repl --conf=/etc/mha/app1.cnf6.開啟MHA Manager監(jiān)控
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null> /var/log/mha/app1/manager.log 2>&1 &–remove_dead_master_conf //該參數(shù)代表當發(fā)生主從切換后,老的主庫的ip將會從配置文件中移除。
–manger_log //日志存放位置
- 關閉監(jiān)控
7.查看master節(jié)點狀態(tài)
masterha_check_status -conf=/etc/mha/app1.cnf查看日志(報錯的話,方便查日志)
```shell tail -200 /etc/mha_master/manager.log ```8.模擬宕機狀態(tài)
##在master節(jié)點上運行 systemctl stop mysqld ## 觀察mhamanger節(jié)點?志: tail -f /var/log/mha/app1/manager9. 主機修復后,需要在mha中從新添加服務器節(jié)點
## master節(jié)點 systemctl start mysqld ##mha的配置文件,從新添加修復后的服務器節(jié)點,然后重新啟動MHA服務器 [server1] hostname=192.168.182.128 port=3306完整的配置
- MHA的配置
- master節(jié)點的配置
- slave1的配置
- slave2的配置
參考
https://blog.csdn.net/qq_23830637/article/details/106968615####mha官網(wǎng) https://github.com/yoshinorim/mha4mysql-manager/releases #####mha安裝前rpm https://www.cnblogs.com/ding2016/p/9102052.html問題:
https://blog.csdn.net/superbfly/article/details/75287741
Failed to issue method call: Unit ssh.service failed to load: No such file or directory.
systemctl enable sshd.servicesystemctl start sshd.servicesystemctl status sshd.servicehttps://blog.csdn.net/mengjiangtao/article/details/24195523
manager_log=/var/log/mha/app1/manager manager_workdir=/var/log/mha/app1 master_binlog_dir=/var/lib/mysql password=root ping_interval=2 repl_password=root repl_user=root ssh_user=root user=root [server1] hostname=192.168.182.128 port=3306 [server2] hostname=192.168.182.132 port=3306 [server3] hostname=192.168.182.130 port=3306 #將來可不可以成為master候選節(jié)點/主節(jié)點 #candidate_master=1 # master候選人,master掛掉后,這個節(jié)點成為master # condidate_master=1################以下的了解即可 #設置master 保存binlog的位置,以便MHA可以找到master的日志 master_binlog_dir=/opt/mysql_data manager_workdir=/var/log/mha_master/app1.log #設置master 保存binlog的位置,以便MHA可以找到master的日志,我這里的也就是mysql的數(shù)據(jù)目錄 manager_log=/var/log/mha_master/manager.log #設置自動failover時候的切換腳本 master_ip_failover_script="/etc/mha_master/scripts/master_ip_failover" #設置手動切換時候的切換腳本 master_ip_online_change_script="/etc/mha_master/scripts/master_ip_online_change" #//設置發(fā)生切換后發(fā)送的報警的腳本 report_script="/etc/mha_master/scripts/send_report" #設置遠端mysql在發(fā)生切換時binlog的保存位置 remote_workdir=/tmp ##實現(xiàn)多路由監(jiān)測Master的可用性 secondary_check_script= /usr/local/bin/masterha_secondary_check -s 10.0.20.201 -s 10.0.20.202 -s 10.0.20.203 -s 10.0.20.204 shutdown_script="" ################以下的了解即可參考
https://blog.csdn.net/qq_23830637/article/details/106968615
https://www.cnblogs.com/panwenbin-logs/p/8306906.html#autoid-0-0-0
http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/
https://www.cnblogs.com/shengdimaya/p/6949882.html
https://blog.csdn.net/qq_23830637/article/details/106968615
https://www.cnblogs.com/panwenbin-logs/p/8306906.html#autoid-0-0-0
http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/
https://www.cnblogs.com/shengdimaya/p/6949882.html
總結
以上是生活随笔為你收集整理的Mysql 主从复制+MHA搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql半双工主从复制
- 下一篇: 调用DM FLDR JNI导出数据库文件