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

歡迎訪問 生活随笔!

生活随笔

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

数据库

Mysql 主从复制+MHA搭建

發(fā)布時間:2024/4/19 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql 主从复制+MHA搭建 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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.service

2. 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-Simple

2. 四個節(jié)點都需安裝node(mha服務額外安裝一個mannger服務)

yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm

master節(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 install

4. 創(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=3306

5.對節(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.cnf

6.開啟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)控
masterha_stop -conf=/etc/mha/app1.cnf

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/manager

9. 主機修復后,需要在mha中從新添加服務器節(jié)點

## master節(jié)點 systemctl start mysqld ##mha的配置文件,從新添加修復后的服務器節(jié)點,然后重新啟動MHA服務器 [server1] hostname=192.168.182.128 port=3306

完整的配置

  • MHA的配置
[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=3306
  • master節(jié)點的配置
[mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin log_bin=mysql-bin server-id=1 sync-binlog=1 binlog-ignore-db=preformance_schema binlog-ignore-db=information_schema binlog-ignore-db=sys rpl_semi_sync_master_enabled=1 # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
  • slave1的配置
[mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backup log_bin=mysql-bin server-id=2 relay_log=mysql-replay-bin read_only=1 relay_log_purge=0 binlog-ignore-db=preformance_schema binlog-ignore-db=information_schema binlog-ignore-db=sys rpl_semi_sync_slave_enabled=1# Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
  • slave2的配置
[mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. log_bin=mysql-bin server-id=3 relay_log=mysql-replay-bin read_only=1 relay_log_purge=0 binlog-ignore-db=preformance_schema binlog-ignore-db=information_schema binlog-ignore-db=sys rpl_semi_sync_slave_enabled=1 # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid

參考

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

問題:

  • 解決Enter passphrase for key
  • #ssh-agent是用于管理密鑰,ssh-add用于將密鑰加入到ssh-agent中,SSH可以和ssh-agent通信獲取密鑰, eval `ssh-agent` ssh-add

    https://blog.csdn.net/superbfly/article/details/75287741

  • ssh重啟失敗
  • 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.service

    https://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搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

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