DATABASE
MySQL 分類

MySQLの双方向レプリケーションを利用した冗長化監視サーバーの構築【2】

投稿者情報

  • 運営局 投稿
  • 投稿日

コンテンツ情報

本文内容

MySQL Replication(レプリケーション)-双方向レプリケーション

 

11TaO9z.jpg

 

前回はレプリケーション(Replication)について解説しました。

レプリケーション(Replication)でMasterサーバ - > Slaveサーバのみを解説しましたが、

今回は Slaveサーバ - > Masterサーバも実装して両方向にReplicationが可能になるのを解説します。

 

MySQL Replication(レプリケーション)を双方向構成する

 

1. MySQL Replicationの片方向の構成

 

2e1OUJO.png

 

前回は片方向に構成したので、MasterサーバからInsert / Update / Deleteクエリを、SlaveサーバーではSelectクエリでやってみました。

 

2. MySQL Replication(レプリケーション)双方向構成

 

gNILutE.png

 

今回は、双方向で構成して、上記図のようにSlaveサーバーでもInsert / Update / Deleteを使用してもMasterサーバーで反映されるように設定してみましょう。

 

MySQL Replication設定 - (Slaveサーバ)

 

今回はSlaveサーバから設定します。

双方向の同期をするためにはSlaveサーバーでレプリケーションアカウントを作成しなければなりません。

mysql設定ファイルでlog-binを設定するようにします。

 

[Replicationアカウント情報]

IPアドレス:192.168.143.1 - (Slave)

ID:repli_user2

PW:test456

- MasterサーバーのデータをSlaveサーバに複製するためにはMySQLのアカウントが必要です。

- MySQL rootアカウントを使用することは、セキュリティ上の良くないため、レプリケーションアカウントを作成することをお勧めします。

 

1.レプリケーションアカウントの作成

 

mysql> grant replication slave on *.* to 'repli_user2'@'%' identified by 'test456';

 

2. MySQL設定 - my.cnf

 

vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin

 

Slaveサーバーでも、log-bin = mysql-binを追加します。

 

3. MySQLの再起動

#service mysqld restart

 

4. Slaveサーバの情報を確認

mysql> show master status;
+ ------------------ + ---------- + -------------- + ---- -------------- +
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------ + ---------- + -------------- + ---- -------------- +
| mysql-bin.000014 | 4186 | | |
+ ------------------ + ---------- + -------------- + ---- -------------- +
1 row in set(0.00 sec)

 

*  File:  MySQLのログファイル

*  Position: ログファイル内読み取る位置

*  Binlog_Do_DB: バイナリ(Binary)ログファイル(変更されたイベント情報が保存されるファイル)

*  Binlog_Ignore_DB: 複製を除く情報

 

MySQL Replicationを設定する - (Masterサーバ)

 

Masterサーバーを設定してみます。

 

1. MySQL設定 - my.cnf

 

#vi /etc/my.cnf
 
[mysqld]
replicate-do-db = 'repl_db'

 

2. MySQL復元

 

Master DBMSで複製するデータベースをdumpして復元します。

 

3. Slaveサーバに接続するための設定

 

mysql> change master to
master_host = '192.168.143.1'、
master_user = 'repli_user2'、
master_password = 'test456'、
master_log_file = 'mysql-bin.000014'、
master_log_pos = 4186;

MASTER_HOST  :SlaveサーバのIPを入力

MASTER_USER  :レプリケーションID

MASTER_PASSWORD  :レプリケーションPW

MASTER_LOG_FILE  :Slave STATUSログファイル名

MASTER_LOG_POS  :Slave STATUSでposition値
 

4. MySQLの再起動

 

#service mysqld restart

 

レプリケーション(Replication)双方向を完了した後にMaster、SlaveサーバのSlave状態でSlave_IO_Running、Slave_SQL_RunningがYESになっているかどうかを必ず確認してください。
 

関連資料

新着投稿


  • 投稿がありません。

新着書込み


  • 書込みがありません。
アラート 0