5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQLレプリケーション設定メモ

Posted at

5.6にて

Slaveを1から作成する場合

事前準備

Masterでbinログが出力されるようになっていること
MasterとSlave候補でそれぞれ異なるserver-idが設定されていること

my.cnf
[mysqld]
log_bin = /path/to/mysql-bin
server-id = <server-id>

Master作業

-- レプリケーション用ユーザーの作成
GRANT REPLICATION SLAVE ON *.* TO repl@192.168.33.102 IDENTIFIED BY 'replpass';

-- 更新ロック
FLUSH TABLES WITH READ LOCK;

-- FLUSH TABLES WITH READ LOCKが実行されたことを確認
SHOW PROCESSLIST;

-- Key_blocks_not_flushedが0であることを確認
SHOW STATUS LIKE 'Key_blocks_not_flushed';

-- InnoDBの場合、Log sequence numberがLog flushed up toと等しいことを確認
SHOW ENGINE INNODB STATUS\G

データベースのコピーを取る

cd /var/lib/mysql

# InnoDBの場合ibdata1も含む
tar cvf targetdb.tar targetdb ibdata1

# scp等でtarをSlave候補に送る
-- binログのファイル名と、Positionを控える
SHOW MASTER STATUS\G

-- ロック解除
UNLOCK TABLES;

Slave候補作業

# tarを展開。パーミッション要チェック
cd /var/lib/mysql
mv /path/to/targetdb.tar .
tar xfv targetdb.tar

mysqld再起動して、

CHANGE MASTER TO
  MASTER_HOST='192.168.33.101',
  MASTER_USER='repl',    
  MASTER_PASSWORD='replpass',
  MASTER_LOG_FILE='mysql-bin.000009', -- 控えたbinログファイル名
  MASTER_LOG_POS=540; -- 控えたPosition

START SLAVE;

-- 問題なくレプリケーションしているか確認
SHOW SLAVE STATUS;

既存Slaveから新たにSlaveを作成する場合

「Slaveを1から作成する場合」と同じく事前準備をする

Master作業

-- レプリケーション用ユーザーの作成
GRANT REPLICATION SLAVE ON *.* TO repl@192.168.33.103 IDENTIFIED BY 'replpass';

既存Slaveでの作業

-- IO_THREADを停止する
STOP SLAVE IO_THREAD;

-- Read_Master_Log_PosとExec_Master_Log_Posが同一になるまで待つ
-- Master_Log_File、Read_Master_Log_Posの値を控えておく
SHOW SLAVE STATUS\G

-- Key_blocks_not_flushedが0であることを確認
SHOW STATUS LIKE 'Key_blocks_not_flushed';

-- InnoDBの場合、Log sequence numberがLog flushed up toと等しいことを確認
SHOW ENGINE INNODB STATUS\G

データベースのコピーを取る

cd /var/lib/mysql

# InnoDBの場合ibdata1も含む
tar cvf targetdb.tar targetdb ibdata1

# scp等でtarをSlave候補に送る
-- レプリを再開する
START SLAVE;

-- 問題なくレプリケーションしているか確認
SHOW SLAVE STATUS;

Slave候補作業

# tarを展開。パーミッション要チェック
cd /var/lib/mysql
mv /path/to/targetdb.tar .
tar xfv targetdb.tar

mysqld再起動して、

CHANGE MASTER TO
  MASTER_HOST='192.168.33.101',
  MASTER_USER='repl',    
  MASTER_PASSWORD='replpass',
  MASTER_LOG_FILE='mysql-bin.000009', -- 控えたbinログファイル名
  MASTER_LOG_POS=787; -- 控えたPosition

START SLAVE;

-- 問題なくレプリケーションしているか確認
SHOW SLAVE STATUS;
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?