• RPMインストール
# rpm -ivh --nopost MySQL-server-advanced-gpl-5.1.30-0.rhel4.x86_64.rpm
# rpm -ivh MySQL-client-advanced-gpl-5.1.30-0.rhel4.x86_64.rpm

  • my.cnf修正
通常のmy.cnfに加えて以下を追加で記載
# vi /var/lib/mysql/my.cnf
server-id = 2 ←更新系とは違うIDを指定
#for slave server
read_only
slave_net_timeout = 60
log-slave-updates
master-retry-count = 86400
relay-log = /var/lib/mysql/relaylog/mysql-relay

  • 初期DB作成
# su - mysql -c "/usr/bin/mysql_install_db --datadir=/var/lib/mysql/data"

  • スレーブサーバを起動する。
# /etc/init.d/mysql start

  • マスターサーバでレプリケーションユーザ作成
mysql> GRANT REPLICATION SLAVE ,REPLICATION CLIENT,SELECT,RELOAD,EVENT,SHOW VIEW,LOCK TABLES,TRIGGER ON *.* TO 'repl'@'192.168.11.0/255.255.255.0' IDENTIFIED BY 'password';

※ホストの指定方法
'repl'@'%' すべてのホストからアクセスを許可
'repl'@'192.168.11.1' 192.168.11.1のみアクセスを許可
'repl'@'192.168.11.0/255.255.255.0' セグメントからのアクセスを許可(2進数表現は不可)
'repl'@'localhost' ローカルからのみアクセスを許可

  • マスターサーバのデータをダンプする。
# mysqldump -h192.168.11.1 -urepl -ppassword --all-databases\
 --master-data=2 --single-transaction > /var/lib/mysql/dumpfile.sql

  • 取得したダンプファイルをスレーブへリストアする。
# mysql -uユーザ名 -pパスワード < dumpfile.sql

  • スレーブ上でレプリケーションの設定を行う。
CHANGE MASTERコマンドを使ってレプリケーションの設定を行う。
ダンプファイルの先頭に、マスター上のバイナリログファイル名と開始位置が
記述されているので、次のコマンドで抜き出す。
# head -100 dumpfile.sql | grep CHANGE
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106;

ここで表示されたCHANGE MSTER TOコマンドに対してマスターのホスト名や利用する
アカウント情報などを追加することにより、CHANGE MASTER TOコマンドを完成させて
実行しましょう。完成形のコマンドは次のようになるでしょう。

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.11.1',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=106,
MASTER_CONNECT_RETRY=60;

  • レプリケーションを開始
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
~省略~
            Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
~省略~
※上記表示が両方ともYesであれば、レプリケーションは正常

タグ:

+ タグ編集
  • タグ:
最終更新:2010年08月11日 15:00