Mais conteúdo relacionado
Semelhante a MySQL Casual Talks in Fukuoka vol.2 (20)
MySQL Casual Talks in Fukuoka vol.2
- 2. 自己紹介
名前: 松崎 学
所属: 株式会社キャム http://www.cam-net.co.jp/
(自社オリジナルの統合基幹業務システムをSaaSで提供中)
Twitter: matsumana
最近のお仕事:Javaプログラマ(Rubyもほんの少し)、 インフラ
最近の興味: Ruby, Python, Groovy, Scala
Fluentd, Hadoop, Asakusa Framework
- 8. スレーブ側で
CHANGE MASTERしてみます。
GTIDを使ってレプリケーションするには、
MASTER_LOG_FILE, MASTER_LOG_POSの代わりに
MASTER_AUTO_POSITION = 1を指定します。
(MySQL Utilitiesに含まれるmysqlreplicateでも出来るみたいです)
- 12. 試してわかった事 その3
START SLAVEでエラーが出て、
レプリケーション出来ない。
mysql_install_dbとmysql_secure_installation を実行
した時のbinlogも実行されているっぽい。
Last_Error: Error 'Updates to non-transactional tables are forbidden when
DISABLE_GTID_UNSAFE_STATEMENTS = 1.' on query. Default database: ''.
Query: 'UPDATE mysql.user SET Password=PASSWORD('hoge') WHERE
User='root' and plugin = 'mysql_old_password''
とりあえず、my.cnfに以下を指定(いいのかな・・・?)
replicate-ignore-db=information_schema,performance_schema,mysql
- 15. フェールオーバー テストの内容
以下の構成でレプリケーション構築済。
マスタ → debian00
スレーブ → debian01, debian02
debian01はDelayed Replicationしておく
(反映までの残り時間はSHOW SLAVE STATUSGして
SQL_Remaining_Delayで確認できる)
CHANGE MASTER TO MASTER_HOST='debian00',
MASTER_USER='repl', MASTER_PASSWORD='repl',
MASTER_AUTO_POSITION=1, MASTER_DELAY=30;
- 18. mysqlfailoverのログ
Failover starting in 'auto' mode...
# Checking eligibility of slave debian01:3306 for candidate.
# GTID_MODE=ON ... Ok
# Replication user exists ... Ok
# Candidate slave debian01:3306 will become the new master.
# Preparing candidate for failover.
# LOCK STRING: FLUSH TABLES WITH READ LOCK
# Connecting candidate to debian02:3306 as a master to retrieve unprocessed GTIDs.
# Change master command for debian01:3306
# CHANGE MASTER TO MASTER_HOST = 'debian02', MASTER_USER = 'repl', MASTER_PASSWORD = '3306',
MASTER_PORT = 3306, MASTER_AUTO_POSITION=1
# UNLOCK STRING: UNLOCK TABLES
# Waiting for candidate to catch up to slave debian02:3306.
# Slave debian01:3306:
# QUERY = SELECT SQL_THREAD_WAIT_AFTER_GTIDS('1EABB17C-52B6-483C-82F7-7292D4AB0373:1-91', 3)
# Return Code = 0
# Slave debian01:3306:
# QUERY = SELECT SQL_THREAD_WAIT_AFTER_GTIDS('E16A96E0-1787-11E2-96F7-000C299AE524:1-6', 3)
# Return Code = -1
# Creating replication user if it does not exist.
# Stopping slaves.
# Performing STOP on all slaves.
# Executing stop on slave debian01:3306 Ok
# Executing stop on slave debian02:3306 Ok
# Switching slaves to new master.
# Change master command for debian01:3306
# CHANGE MASTER TO MASTER_HOST = 'debian01', MASTER_USER = 'repl', MASTER_PASSWORD = '3306',
MASTER_PORT = 3306, MASTER_AUTO_POSITION=1
# Change master command for debian02:3306
# CHANGE MASTER TO MASTER_HOST = 'debian01', MASTER_USER = 'repl', MASTER_PASSWORD = '3306',
MASTER_PORT = 3306, MASTER_AUTO_POSITION=1
# Starting slaves.
# Performing START on all slaves.
# Executing start on slave debian02:3306 Ok
# Checking slaves for errors.
# debian02:3306 status: Ok
# Failover complete.