LoginSignup
3
3

More than 5 years have passed since last update.

MySQL互換のPercona-Serverで準同期レプリケーションを作る

Last updated at Posted at 2015-12-27

自分用のメモなので説明など端折って完全に手順のみです。

準備

パッケージのインストール(マスター、スレーブともに)

$ sudo rpm -Uvh http://www.percona.com/redir/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
$ sudo yum install Percona-Server-server-56 Percona-Server-client-56 Percona-Server-shared-56 Percona-Server-shared-compat percona-toolkit xtrabackup -y

準同期レプリケーション向けmy.cnfの設定

マスター側のmy.cnf設定(抜粋)

[mysqld]
# Replication
server-id=101 # この数値は適当に
plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=500

スレーブ側のmy.cnf設定(抜粋)

[mysqld]
# Replication
server-id=102 # この数値は適当に
plugin-load=rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1

pecona-serverの起動(マスター、スレーブともに)

$ sudo /etc/init.d/mysql start

準同期レプリケーション作成

マスター側操作

レプリケーション専用アカウントを作成、更新をロック、バイナリログ進行位置を取得する。
レプリケーション専用アカウント名はここでは repuser 、パスワードを repuserpassword123 、接続許可ホストを 192.* とする。

# mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO `repuser`@'192.%' IDENTIFIED BY 'repuserpassword123';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS\G;               -- 'File'と'Position'を記録しておく
-- このコンソールはこのままにしておく(*exitしない*)

マスター側の全てのテーブルをdumpしてスレーブにscpする。

$ mysqldump -u root -p --events --all-databases > all_db_dump.sql
$ scp all_db_dump.sql ユーザ名@スレーブ側のIP:

スレーブ側操作

マスターからscpされたall_db_dump.sqlを食わせる。

$ mysql -u root -p < all_db_dump.sql

マスター情報を設定する。binログファイル名はマスター側操作でおこなったSHOW MASTER STATUS;で表示された File の値、 ログファイルのポジションPosition の値を指定する。

# mysql -u root -p
CHANGE MASTER TO  
MASTER_HOST = 'マスター側のIP', 
MASTER_USER = 'repuser', 
MASTER_PASSWORD = 'repuserpassword123' ,
MASTER_PORT = 3306, 
MASTER_LOG_FILE = 'binログファイル名' ,    -- 'File'
MASTER_LOG_POS  = ログファイルのポジション; -- 'Posistion'

レプリケーションを開始する。

START SLAVE;
SHOW SLAVE STATUS\G;
-- 以下の状況になっていればOK
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes

マスター側操作

SHOW MASTER STATUS\G を行ったコンソールで更新のロックを解除する。

UNLOCK TABLES;
FLUSH PRIVILEGES;

SSDに最適化された(と言われている)Percona-Serverを知るためのリソースとか

ioDriveを使ううえで考慮すべき(なのか?)ポイント

  • I/Oのスレッドとか
innodb_read_io_threads=いくつにする?
innodb_write_io_threads=いくつにする?
innodb_adaptive_flushing_method=keep_average
innodb_adaptive_flushing=true
3
3
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
3
3