MHA高可用性サービスの構築

1.この実験では、4つの仮想マシンが使用され、そのうち3つは事前にマスタースレーブレプリケーションでした。
192.168.9.8 mha mha-manager、mha-node
192.168.9.9 master mha-node、mysql
192.168.9.10 slave1 mha-node、mysql
192.168.9.11 slave2 mha-node、mysql

2.すべてのノードの配置

[root@mha ~]# vim /etc/hosts

追加

192.168.9.8		mha
192.168.9.9		master
192.168.9.10	    slave1
192.168.9.11	    slave2
[root@mha ~]#  yum -y install perl-DBD-MySQL
[root@mha tools]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

ここに画像の説明を挿入します

3.3つのmysqlデータベースにデプロイします

3つの構成ファイルは同じです

vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
 
[mysqld]
server-id = 2
port = 3306
log-bin=/usr/local/mysql/data/bin-log
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
relay_log_purge=0
[root@slave3 ~]# mysql -uroot -p123123
mysql> grant all privileges on *.* to mha@'192.168.9.%' identified by 'mha';
mysql> select user,host from mysql.user;

ここに画像の説明を挿入します

4.すべてのノードのソフトウェアソフトリンクを作成します

[root@mha tools]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
[root@slave3 ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

5.mha管理ノードを構成します
ここに画像の説明を挿入します

[root@mha rools]# yum -y localinstall perl-*
[root@mha tools]# rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm 

6.mha構成ファイルの編集

[root@mha tools]#  mkdir -p /etc/mha
[root@mha tools]#  mkdir -p /var/log/mha/app1
[root@mha tools]# mkdir -p /var/data/binlog
[root@mha tools]# vim /etc/mha/app1.cnf
[server default]
manager_log=/var/log/mha/app1/manager
manager_workdir=/var/log/mha/app1
master_binlog_dir=/usr/local/mysql/data/
password=mha
ping_interval=2
repl_password=123123
repl_user=repl
ssh_user=root
user=mha

[server 1]
hostname=192.168.9.9
port=3306

[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.9.10
port=3306

[server3]
hostname=192.168.9.11
port=3306

7.2つのスレーブデータベース展開データベースの承認

[root@slave3 ~]# mysql -uroot -p123123
mysql> grant replication slave on *.* to ‘repl’@'192.168.9.%' identified by  '123123';

8.すべてのノードにssh信頼をデプロイします

[root@mha ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa >/dev/null 2>&1
[root@mha ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
[root@mha ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
[root@mha ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
[root@mha ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

[root@mha ~]# vim /etc/ssh/sshd_config
43 PubkeyAuthentication yes
44 RSAAuthentication yes
47 AuthorizedKeysFile  .ssh/authorized_keys
[root@mha ~]# systemctl restart sshd

9.テストを開始します

[root@mha ~]# masterha_check_ssh --conf=/etc/mha/app1.cnf

[root@mha ~]# masterha_check_repl --conf=/etc/mha/app1.cnf

ここに画像の説明を挿入します

ここに画像の説明を挿入します

10.MHAを開始します

[root@mha ~]# 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 &

ここに画像の説明を挿入します

[root@mha ~]#  masterha_check_status --conf=/etc/mha/app1.cnf

ここに画像の説明を挿入します

11.
メインライブラリが停止していることをテストします

[root@master ~]# /etc/init.d/mysqld stop

ライブラリからログイン1

[root@slave1 ~]# mysql -uroot -p123123
mysql> show slave status\G;

ここに画像の説明を挿入します

ライブラリからログイン2

[root@slave2 ~]# mysql -uroot -p123123    
mysql> show slave status\G;  

(テストに成功しました)
ここに画像の説明を挿入します

メインライブラリを復元した後、新しいメインライブラリを指すように、メインライブラリをスレーブライブラリとして再承認します。

新しいメインライブラリは192.168.9.10を承認します

ここに画像の説明を挿入します

復元された以前のメインライブラリの認証とビュー192.168.9.9
ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_39109226/article/details/111592202