powerdee.com
Google
 
このサイト内 Web
 
カウンタ

レプリケーション

インデックスへ戻る

レプリケーションのセットアップ

手順としては、マスターの設定をしてから、スレーブの設定を行う。


マスターの設定

  1. 初期化パラメータファイル(my.cnf)の設定
    主にserver-id、log-bin、sync_binlog=1を追加すればよい。 参考:MySQLのインストール

  1. インスタンスの再起動
# service mysql restart
Shutting down MySQL.....                                   [  OK  ]
Starting MySQL                                             [  OK  ]

  1. スレーブからの接続用アカウントの作成
mysql> GRANT REPLICATION SLAVE ON *.* TO replication@192.168.0.2 IDENTIFIED BY 'password';

  1. バックアップを取得
    以下は、コールドバックアップだが、オンラインバックアップでもよい。 参考:バックアップ/リカバリ
# service mysql stop
Shutting down MySQL....                                    [  OK  ]

# cd /var/lib/mysql
# tar zcvf /var/lib/mysql/backup/mysql_data.tar.gz data

# service mysql start
Starting MySQL                                             [  OK  ]

  1. バイナリログのステータスを確認
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000022 |       98 |              |                  |
+------------------+----------+--------------+------------------+

スレーブの設定

  1. 初期化パラメータファイル(my.cnf)の設定
    主にserver-id、default-character-set、read_onlyを追加すればよい。
    server-idはマスタと異なる番号を設定する。また、文字コードをマスタと同じにしておくこと。
    基本方針としてスレーブでは更新させない為、read_onlyを設定してSUPER権限を持たないユーザーからの更新を制限する。

  1. リストア
    先ほどマスターでバックアップしたファイルをスレーブ側にコピーし、リストアを行う
# cd /var/lib/mysql
# rm -rf data
# tar zxvf mysql_data.tar.gz

  1. インスタンスの起動
# service mysql start
Starting MySQL                                             [  OK  ]

  1. マスターへの接続設定
    MASTER_LOG_FILEの値は、SHOW MASTER STATUSで確認したバイナリログファイル名を指定する。
mysql> CHANGE MASTER TO
mysql> MASTER_HOST = '192.168.0.201',
mysql> MASTER_PORT = 3306,
mysql> MASTER_USER = 'replication',
mysql> MASTER_PASSWORD = 'password',
mysql> MASTER_LOG_FILE = 'mysql-bin.000022';
mysql> flush privileges;

  1. レプリケーションの開始
    次のSQL文を実行するか、スレーブのインスタンスを再起動すれば自動的にマスターへ接続しレプリケーションが開始される。
mysql> START SLAVE;

動作確認

方法としては、マスターでテーブルを作成してスレーブで確認するのが手っ取り早いが、show processlistでも確認できる。

mysql> show processlist;

マスター側の確認

Userの値が、スレーブから接続するユーザー名(今回の設定では、replication)であること。
Commandの値が、 Binlog Dump スレッドが存在すること。
参考:MySQLリファレンス(Binlog Dumpスレッド)


スレーブ側の確認

Userの値が、"system user"であること。
Stateの値が、I/Oスレッド、SQLスレッドが存在すること。
参考:MySQLリファレンス(I/Oスレッド)
参考:MySQLリファレンス(SQLスレッド)

スレーブの動作が異常の場合には、show slave status文で原因を確認する。

mysql> show slave status;

参考

MySQL 5.1 Reference Manual Chapter 6. Replication


インデックスへ戻る



おすすめ書籍


現場で使える MySQL (DB Magazine SELECTION)

著者:松信 嘉範
出版社:翔泳社(2006-03-17)
価格:¥2,730(税込)
MySQL 徹底入門 第2版

著者:遠藤 俊裕、坂井 恵、館山 聖司、鶴長 鎮一、とみた まさひろ、班石 悦夫、松信 嘉範
出版社:翔泳社(2006-01-24)
価格:¥3,654(税込)


ページTopへ / ▲Homeへ