まず、環境の説明:
1.1,3台湾VM仮想マシン環境のシステムが導入さ:
三VMシステム:
[root@mgr01 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
VM CentOSの3つのシステムは、閉じたiptablesの、SELinuxの近接している
:3仮想時刻同期システム
のntpdate ntp1.aliyun.com
それぞれ3つのオーケストレータのMySQL VM VMに取り付けられ
orchestrator版本为:orchestrator-3.1.4-linux-amd64.tar.gz
下载地址:
https://github.com/github/orchestrator/releases
MySQLバージョンは、バイナリバージョンmysql5.7.24 GAインストールされています
3台のマシンは、IP:
10.0.0.130 172.16.0.130
10.0.0.131 172.16.0.131
10.0.0.132 172.16.0.132
ホスト名を結合三VM:
[root@mgr01 bin]# cat /etc/hosts
172.16.0.130 mgr01
172.16.0.131 mgr03
172.16.0.132 mgr02
[root@mgr02 ~]# cat /etc/hosts
172.16.0.132 mgr02
172.16.0.131 mgr03
172.16.0.130 mgr01
[root@mgr03 bin]# cat /etc/hosts
172.16.0.132 mgr02
172.16.0.131 mgr03
172.16.0.130 mgr01
ヒント: Orchestratorは、あなたがIPを指定した場合、マスタ・スレーブスイッチまたはフェールオーバーの問題につながる可能性があり、そのようMASTER_HOSTに変更マスタとしてのMySQLインスタンスを管理する代わりに、IPのマシン名を使用することをお勧めします
、それがバインドするホストに最善であるので、ホストを設定します名前
1.2、3つのVMのインストール手順のmysql
MySQLの実装工程を省略し、MySQLのよう定期的にインストールされます。
図2は先にGTID基づいて、メインフィルタの構成のMySQLからコピー
172.16.0.131 master
172.16.0.130 slave
172.16.0.132 slave
:三つのVMインスタンスmysqlの設定ファイルは、以下のパラメータ開く必要があります
説明:オープンGTIDを、単なるテストライブラリのtest001下の表をコピーし、他のデータベースは無視されます
[root@mgr01 orchestrator]# egrep -i 'gtid|replicate_wild' /data/mysql/mysql3306/my3306.cnf
####: for gtid
#gtid_executed_compression_period =1000 # 1000
gtid_mode =on # off
enforce_gtid_consistency =on # off
replicate_wild_do_table=test001.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=orchestrator.%
172.16.0.131:マスタ動作:
mysql -uroot -p'123456' -e "reset mater;"
mysql -e "grant replication slave on *.* to repuser@'172.16.0.%' identified by 'JuwoSdk21TbUser'; flush privileges;"
mysqldump -uroot -p'123456' -B -A -F --set-gtid-purged=OFF --master-data=2 --single-transaction --events|gzip >/opt/test_$(date +%F).sql.gz
172.16.0.130:slave操作:
mysql < /test_$(date +%F).sql.gz
mysql -e "CHANGE MASTER TO MASTER_HOST='mgr03',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='JuwoSdk21TbUser',MASTER_AUTO_POSITION = 1;start slave;show slave status\G" |grep -i "yes"
172.16.0.132スレーブ動作:
mysql < /test_$(date +%F).sql.gz
mysql -e "CHANGE MASTER TO MASTER_HOST='mgr03',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='JuwoSdk21TbUser',MASTER_AUTO_POSITION = 1;start slave;show slave status\G" |grep -i "yes"
Orchestratorの二、三のVMにインストールされています
ヒント!!!!: {{{この ポストは、Orchestratorのマシンが単一のノードにインストールして使用説明}}}
2.1、マシン役割の説明:
オーケストマシン:172.16.0.130 172.16.0.131 172.16.0.132
オーケストレーターの元バックエンドデータベースのMySQL:172.16.0.131
監視ターゲット・データベース:172.16.0.130 172.16.0.131 172.16.0.132
2.2、各VMマシンが次のコマンドを実行
インストールオーケストレーター:
インストールパッケージをダウンロードオーケストレーター、オーケストレーター-3.1.4-Linuxの-amd64.tar.gz
https://github.com/github/orchestrator/releases
Orchestratorのインストールパッケージを抽出:
オーケストレーター-3.1.4-Linuxの-amd64.tar.gz -xfタールは
よりUSRなり、etcディレクトリ2を下回る:
[mgr01ルートを@〜]#-lrt LS /ルート/
drwxr-X-XR 4096 01月ルート26は、22時05分3 USRルートである
drwxr-X 3 XR-4096月26ルートがルートである22時05分など
USR /ローカル/オーケストレーター/オーケストレーター-sample.conf.json移動するには/ etc、と名付けorchestrator.conf.json
cp /root/usr/local/orchestrator/orchestrator-sample.conf.json /etc/orchestrator.conf.json
インストールが完了した後に使用するライブラリとユーザーオーケストレーターの必要性を作成します。
CREATE DATABASE orchestrator;
CREATE USER 'orchestrator'@'127.0.0.1' IDENTIFIED BY 'orchestrator';
GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orchestrator'@'127.0.0.1';
这里元数据库MySQL和orchestrator在同一台机器上,所以创建账号的时候用的'127.0.0.1',
如果不在同一台机器上,将IP换成orchestrator所在机器ip。
ターゲット・データベース認証を監視します:
在需要监控的目标数据库上进行授权
CREATE USER 'orchestrator'@'172.16.0.%' IDENTIFIED BY 'orchestrator';
GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'172.16.0.%';
GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'172.16.0.%';
提示:
MySQLTopologyUser 账号的权限应该设置为super,process,reload,select,replicatiopn slave,
官网文档中缺少了select权限,orchestrator切换过程中需要通过读取从库的mysql.slave_master_info表,获取复制账号和密码,如果没有select权限,将导致读取失败,并且不会有任何错误信息报出来。
2.3、各VMは、コンフィギュレーションファイルのオーケストレーターを変更します
次のように/etc/orchestrator.conf.json変更します。
####元のコンフィギュレーションオーケストレーターバックエンドのデータベース情報
"MySQLOrchestratorHost": "127.0.0.1",
"MySQLOrchestratorPort": 3306,
"MySQLOrchestratorDatabase": "orchestrator",
"MySQLOrchestratorUser": "orchestrator",
"MySQLOrchestratorPassword": "orchestrator",
###構成オーケストレータターゲットデータベース情報の監視
"MySQLTopologyUser": "orchestrator",
"MySQLTopologyPassword": "orchestrator",
2.4、だけ別のサービスオーケストレーターを開始
スタートオーケスト172.16.0.131マシン上の別のサービスは、デフォルトのリスニングポートは3000です
起動コマンド:
cd /root/usr/local/orchestrator && ./orchestrator --config=/etc/orchestrator.conf.json http &
[root@mgr01 ~]# ps -ef|grep orc
root 3478 3477 6 23:47 pts/3 00:00:02 ./orchestrator --config=/etc/orchestrator.conf.json http
root 3489 2648 0 23:48 pts/2 00:00:00 grep --color=auto orc
[root@mgr01 ~]# ss -lntup|grep orc
tcp LISTEN 0 128 :::3000 :::* users:(("orchestrator",pid=3478,fd=5))
そこエラーログ:
2020-02-20 23:47:40 ERROR ReadTopologyInstance(mgr01:3306) show slave hosts: ReadTopologyInstance(mgr01:3306) 'show slave hosts' returned row with <host,port>: <,3306>
2020-02-20 23:47:41 DEBUG Waiting for 15 seconds to pass before running failure detection/recovery
2020-02-20 23:47:41 ERROR ReadTopologyInstance(mgr02:3306) show slave hosts: ReadTopologyInstance(mgr02:3306) 'show slave hosts' returned row with <host,port>: <,3306>
エラーの解決策:
MySQLの設定ファイルmy.cnfのパラメータ、中report_host
report_host読み取り専用パラメータ、あなたが効果的になるためにmysqlのサービスを再起動する必要があり
、サーバー自体のreport_host = XXXX // IP IP
ヒント:mysqlの程度パラメータの説明のレポート-シリーズ次のように:
#レポート-レポートシリーズシリーズは、ライブラリ、レポート-からなる四つのパラメータから提供された[ホスト|ポート|ユーザー|パスワード]。
ときライブラリーからのmy.cnfセットレポートのホスト、実行開始スレーブ時にレポート・ホスト、およびハッシュがグローバル変数slave_listでマスターデータベースに発行された(デフォルト3306)、マスター・データベースのレコード構造ポートを報告します
report_host MySQL用の60バイトの最大長に制限されていることもを指摘され、コピーするときにMySQLサーバのホスト名が60個の未満の文字であるか、または他のショットを呼び出す必要がありますので、また60非漢字、スレーブは文句を言うでしょう
参照:https://www.jianshu.com/p/9a5b7d30b0ae
理由: report_hostなしmy.cnfの設定ファイル、オーケストレータープログラムショーのスレーブホストがホストを表示しません、それはプログラムのエラーにつながる
か偽/etc/orchestrator.conf.jsonコンフィギュレーションファイルのパラメータDiscoverByShowSlaveHostsを変更するには、サービスを再起動オーケストレーター、これはreport_hostを設定する必要がなくなります
2.5、ウェブページビューはじめに
http://10.0.0.130:3000/web/status
まず、以下のように、あなたは、ディスカバリ・インスタンスを発見クリックする必要がMySQL Clusterのクラスタ名を見ることができないWebページを開きます。
クラスタ別名とインスタンスを生じさせる、もう一度クラスタをクリックします。
自宅でステータスを選択し、あなたは、ノードの現在の健康状態を見ることができます:
詳細なレプリケーショントポロジを表示します。
失敗するレプリケーションのビュー分析:
故障診断のコピーについて:
コピーされた詳細情報を表示します。
オンラインレプリケーション関係がマスターコピーカスケード2から変更された調整します。
その後、2からメインカスケード複製は次のようになります。
これらは、一緒に学習の交換を歓迎し、単一ノードクラスタブートマネージャのMySQLのレプリケーションアプリケーションの簡単なWebページの紹介のサービスのオーケストレーターです