メインクラスタベースのドッキングウィンドウのビルドのmysqlからコピー

マスタースレーブレプリケーションモード

  1. ログに基づいて(ビンログ)
  2. ベースのGTID(グローバル・トランザクション識別子)
    この記事を第一の方法を使用して

前提条件

  1. マスターとスレーブサーバのオペレーティングシステムのバージョンおよびビットは一貫している必要があります
  2. メインのMySQLバージョンからMySQLのバージョンが一貫している必要があります
  3. マスター・データベースからデータが一貫している必要があります
  4. masterデータベースのオープンバイナリログ、マスター・データベースおよびデータベースからSERVER_IDローカル・エリア・ネットワーク内で一意でなければなりません

プロセス

1まずプルミラーリング

docker pull mysql:5.7.26

2コンテナを作成します。

Master(主)
docker run -p 3340:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=
123456 -d mysql:5.7.26
スレーブ(から)
docker run -p 3341:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=
123456 -d mysql:5.7.26

-nameはコンテナの名前を指定し、これは、MySQL、マスタースレーブのMySQLである
容器3341は、ホスト・ポート3342とポート3306にマッピングされたホストの指定されたポートに-p指定されたコンテナポートマッピング
提供-e環境ここでの変数は、指定されたrootアカウントのパスワードは123456です
-d背景コンテナとコンテナIDを返す
、指定のMySQLバージョン5.7.26:MySQLを

使用するdocker psコンテナが実行されている表示するコマンドを:
ここに画像を挿入説明

3設定マスター(メイン)
によって最初にdocker exec -it mysql-master /bin/bash容器の内部に侵入
後、最初のapt-get update完了後、apt-get install vim
すぐにvim /etc/mysql/my.cnf次の設定を追加

[mysqld]
## 同一局域网内注意要唯一,最好用ip段后缀来区分
server-id= 2
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

設定後、サービスを再起動するMySQLの必要性は、service mysql restartサービスがある限り、ドッキングウィンドウコンテナの停止につながる再起動するdocker start mysql-masterまで、コンテナの開始
次、Masterユーザーと付与権限で新しいスレーブ
CREATE USER 'slave'@'%'IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

  1. (からの)スレーブを設定する
    ステップ、上記同様のMySQLスレーブを入力し、その後、追加のmy.cnfは、以下:
[mysqld]
## 设置server_id,注意要唯一
server-id=3
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin   
## relay_log配置中继日志
relay_log=mysql-relay-bin  

あなたは同じスタートを設定します。

5リンクマスタ(プライマリ)とスレーブ(から)は
マスターのmysqlの実装入っshow master status;
ここに画像を挿入説明
ているファイルやポジション等、使用され、これら二つの使用はライブラリーから対応するバイナリの読み取り情報を見つけることができます
6マスターのアドレスを取得し、独立したIPコンテナを参照するdocker inspect --format='{{.NetworkSettings.IPAddress}}'コンテナ名| IPコンテナIDクエリコンテナ、我々は、使用する必要があります。
ここに画像を挿入説明
7継続は、以下の操作を行い、スレーブでMySQLを入力します。
change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=1299, master_connect_retry=30;

コマンド説明:
MASTER_PORT:マスターのポート番号、ポート番号は、コンテナを指し、

master_user:同期のためのユーザデータ

master_password:ユーザーのパスワードを同期するために使用

MASTER_LOG_FILE:指定スレーブは、上記では、すなわち、ファイルフィールドの値から、ログファイルのデータのコピーを開始

値の読み取りを開始するための位置、即ち、上述したフィールドの位置:MASTER_LOG_POS

MASTER_CONNECT_RETRY:接続に失敗した場合は、再試行間隔、秒単位で、デフォルトは60秒です

スレーブで実行show slave status \G;マスター・レプリケーションの状態からの眺め
ここに画像を挿入説明
ない心配、通常の状況下で円があります開いていないマスター・スレーブレプリケーションので、NOを示し、私はYES表示ここで開かれています。今ちょうどstart slave、再び次の2つのクエリはYESです見ることができます。そして、あなたはそこに立証されていない、データの同期が成功したかどうかをテストすることができます。
8.エラー捜査
あなたSlave_IO_RUNNGINGショーは、接続した場合は、ビューの下に滑ることができますLast_IO_Errorので、エラーの通常の状況下では、:

  • ポートまたはIPアドレスエラーは、ファイアウォールをオンにすることができませんでした、またはあなたもアリクラウドサーバである場合には、事前にオープンセキュリティグループに覚えています。
  • パスワードは、正しいユーザー名とパスワードのマスタースレーブの同期を確認して間違っています。
  • FILE POSと間違って、その後、このチェック
  • マスタースレーブのmy.cnf設定ファイルが間違って構成されていてもよい、もう一度確認してください。

9.書き込みシェルスクリプト
nagiosそれらのいずれかがNOの場合は2つ(Slave_IOとSlave_SQLプロセス)の監視モニターYESスレーブは、そこからの主な問題は、その後、テキストメッセージのアラートを送信していることを示していません!

公開された48元の記事 ウォン称賛56 ビュー20000 +

おすすめ

転載: blog.csdn.net/zhetmdoubeizhanyong/article/details/98799041