環境の準備
ホスト名 |
IP |
システム/ MySQLのバージョン |
役割 |
ノード3 |
192.168.210.132 |
CentOS7.3 / 5.5.60 |
マスター |
ノード2 |
192.168.210.130 |
CentOS7.3 / 5.5.60 |
奴隷 |
、マスターノード
1、同期するデータベースを作成します
MySQLの> データベース亜鉛を作成します。 MySQLは > 亜鉛を使用します。 MySQLの >表のZn(登録IDの INT、名前VARCHAR(20))。
2.データベース・サービスを停止します
systemctlストップmariadb.service
3、編集my.cnfファイル
[mysqldを]
ログ・ビン= bin-はmysql- マスター#はバイナリログの有効化 サーバーを - ID = 1。 #ネイティブデータベースIDフラグ ビンログ - DO -db = ライブラリが#は、サーバからコピーすることができZN、データベース名はバイナリ同期する必要があり ビンログを -ignore-DB = mysqlの#サーバーのライブラリーからコピーすることはできません
4、データベースサービスを再起動します
systemctl再起動mariadb.service
5.同時ユーザーを作成し、認可
MariaDB *の[(なし)]>グラントレプリケーションスレーブ*によって識別'%' @スレーブに。" 123 " 。 MariaDB [(なし)]>マスター状態を示す図です。
+ ------------------------- + ---------- + ------------ - + ------------------ +
| ファイル| 位置| Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------------- + ---------- + ------------ - + ------------------ +
| mysqlのビン-master.000001 | 384 | ZN | mysqlの|
+ ------------------------- + ---------- + ------------ - + ------------------ +
MariaDB [(なし)]>
MariaDB [(なし)]>
MariaDB [(なし)]> \ Gバイナリログイベントを示し
************************ *** 1行***************************
LOG_NAME:MySQLのビン-master.000001
順位:4
EVENT_TYPE:Format_desc
SERVER_ID: 1
End_log_pos:245
情報:版5.5.60-MariaDB、バイナリログ:版サーバ4
*************************** 2行* **************************
LOG_NAME:mysqlのビン・master.000001の
順位:245
EVENT_TYPE:クエリ
SERVER_ID:1
End_log_pos:384
インフォメーション:助成金*上のレプリケーションスレーブ。*「%」@スレーブに「123」で識別される
セットで2行(0.00秒)
図6は、バイナリファイルを見ます
[ルート@のノード3のmy.cnf.d]#のCDの/ var / libに/ mysqlの/ [ルート@ノード3のmysql]#のLS [ルート@ノード3のmysql]#LSの
aria_log.00000001 ibdata1とib_logfile1 のmysql-ビンmaster.000001 にmysql.sockテスト
aria_log_control ib_logfile0のmysql のmysql-ビンmaster.indexの performance_schemaの亜鉛
図7は、データベースのエクスポートを同期化、およびスレーブノードに送信されるデータベースの一貫性のある同期を確実にするためにコピーする前に
mysqldumpを-uroot -p123亜鉛> zn.sql#データベースをエクスポートすることができ
、SCP zn.sql 192.168.210.130:/root
二、スレーブノード
1、2台のデータベース・サーバの一貫性を保つためのMySQLのバージョン
MariaDB [(なし)]>のような変数を示し' %バージョン%を' ; + ------------------------- + ---------------------- + | 変数名| バリュー| + ------------------------- + ---------------------- + | innodb_version | 5.5。59 -MariaDB- 38.11 | | PROTOCOL_VERSION | 10 | | slave_type_conversions | | | バージョン| 5.5。60 -MariaDB | | version_comment | MariaDBサーバー| | version_compile_machine | x86_64版| | version_compile_os | Linuxの| + ------------------------- + ---------------------- + 7行にセット(0.00 秒) MariaDB [(なし)] >
2は、プライマリサーバへの接続が成功した、あるテストコピーする権利のみ、他のライブラリを参照することはできません
[ルート@ノード2〜]#mysqlの-uslave -p123 -h 192.168。210.132 MariaDB [(なし)] > MariaDB [(なし)] > MariaDB [(なし)] > ショーデータベース; + -------------------- + | データベース| + -------------------- + | INFORMATION_SCHEMA | | テスト| + -------------------- + 2行にセット(0.00 秒) MariaDB [(なし)] >
図3に示すように、通常のデータベースに、プライマリ・データベース・サーバと一致
[ルート@ノード2〜]#mysqlの- uのルート MariaDB [(なし)] > [ データベース亜鉛を作成します。 クエリOK、1つの影響を受けた行(0.00 秒) MariaDB [(なし)]>出口 [ルート@ NODE2〜]#のMySQL -urootのZn <zn.sql
図4は、サーバから開くことが必要ではない、ビン・ログログをサーバから設定ファイルを変更します。
[ルート@ NODE2〜】STOP#1 systemctlのmariadb.service [ルート@ NODE2〜]#のVimの/ etc / my.cnfの [mysqldを] サーバー - ID = 2 サーバのID番号から#、及び主IDと同じではない、複数の場合サーバから、各サーバから一意のサーバー-id値を持つ必要があり、サーバーはならず、同じマスターサーバーから他。サーバIDの値はIPアドレスと同様と考えることができる:ID値が一意にサーバクラスタの各複製サーバインスタンスを識別する。
5、スレーブは、サービスを停止し、マスターノードのIP、master_userの同期ユーザ名とパスワードを設定します
[ルート@のノード2〜]#mysqlの- uのルート MariaDB [(なし)] > スレーブを停止しません。 クエリOK、0影響を受ける行(0.00 秒) MariaDB [(なし)] > MariaDB [(なし)] = MASTER_HOSTする>変更マスタ' 192.168.210.132を'、master_userは= ' スレーブ'、master_password = ' 123 ' 。 クエリOK、0影響を受ける行(0.00 秒) MariaDB [(なし)] > MariaDB [(なし)] > スレーブ開始。 クエリOK、0行が影響を受けました(0.00 秒) MariaDB [(なし)] > MariaDB [(なし)]>スレーブステータスを表示\ G
*************************** 1 。行***************************
Slave_IO_State:イベント送信するマスターを待っ
MASTER_HOSTを:192.168.210.132
Master_User:スレーブ
MASTER_PORT:3306
Connect_Retry: 60
MASTER_LOG_FILE:mysqlのビン・master.000001の
Read_Master_Log_Pos:384
RELAY_LOG_FILE:mariadb-リレー-bin.000002
RELAY_LOG_POS:675
のRelay_Master_Log_File:mysqlのビン・master.000001の
Slave_IO_Running:はい #负责与主机的 IO通信
Slave_SQL_Running:はい #负责自己的スレーブのmysql进程
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
LAST_ERROR:
Skip_Counter:0
Exec_Master_Log_Pos:384
Relay_Log_Space:971
Until_Condition:なし
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:いいえ
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert:いいえ
Last_IO_Errno:0
Last_IO_Error:
Last_SQL_Errno:0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:1
セット内の1行(0.00秒)
MariaDB [(なし)]>
三、ザ・マスターノード
そして、プライマリサーバの状態を確認してください。
[ルート@ノード3のMySQL]#MySQLの-uルート
MariaDB [(なし)]> PROCESSLIST \ G示さない *************************** 1。行*************************** イド:11 ユーザー:スレーブ ホスト:ノード2:37878 のdb:NULL コマンド:BINLOGダンプ 時間:343 州:マスターはスレーブに全てのバイナリログを送信しました。待っているためビンログが更新される 情報:NULL 進捗状況:0.000
第四に、あなたが発生した場合、メイン非同期の修理
(1)マスタノードにおいて、ルックからマスタビンログの位置を、次に同期
MariaDB [(なし)]>マスター状態を示す図です。
+ ------------------------- + ---------- + ------------ - + ------------------ +
| ファイル| 位置| Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------------- + ---------- + ------------ - + ------------------ +
| mysqlのビン-master.000001 | 384 | ZN | mysqlの|
+ ------------------------- + ---------- + ------------ - + ------------------ +
セットにおける1行(0.00秒)
MariaDB [(なし)]>表示するバイナリログイベント\ G
******** ******************* 1行***************************
LOG_NAME :MySQLのビン-master.000001
順位:4
EVENT_TYPE:Format_desc
SERVER_ID:1
End_log_pos:245
INFO:サーバー版:版5.5.60-MariaDB、バイナリログ:4
*************************** 2行***** **********************
LOG_NAME:mysqlのビン・master.000001の
順位:245
EVENT_TYPE:クエリ
SERVER_ID:1
End_log_pos:384
インフォメーション:*上の助成金のレプリケーションスレーブ。* '%' @スレーブに"123"によって識別される
セット内の2行(0.00秒)
MariaDB [(なし)]>
(2)スレーブノードが実行する MySQLのコマンドで:
MariaDB [(なし)]> STOPスレーブ; OKを照会し、0影響を受ける行(0.01 秒) MariaDB [(なし)] > MariaDB [(なし)] = MASTER_LOG_FILEする>変更マスター' のMySQL-ビンmaster.000002を'、MASTER_LOG_POS = 245 ; 、OKをクエリ0影響を受けた行(0.01 秒) #結果が効果同期するために、バイナリデータベースサーバリターンを記録する、一次サーバー上にマスターステータスを表示 MariaDB [(なし)] > MariaDB [(なし) ]> スレーブスタート、 OKを照会し、0行が影響を受けた(0.00 秒) MariaDB [(なし)] > [ 表示スレーブステータス\ G Slave_IO_Running:はい#は、我々はすべてのであれば、はい、それは同期で、すでに意味 Slave_SQL_Running:はい