Submit Search
ゆるふわMySQLフェイルオーバー
•
4 likes
•
5,040 views
Kimitoshi Takahashi
Follow
マルチマスターレプリケーション+VRRPでMySQLサーバを冗長化させます。MySQL Casual Talk 2015/11/20
Read less
Read more
1 of 27
Download now
Download to read offline
More Related Content
ゆるふわMySQLフェイルオーバー
1.
ゆるふわMySQLフェイルオーバー クラスターコンピューティング株式会社 高橋 公俊 2015/11/20 MySQL
Casual Talks vol.8
2.
自己紹介 サーバ販売 インフラ構築/コンサルティング 冗長化、負荷分散クラスタ IT勉強会初登壇 ( ;゚Д゚)ガクブル 仲間募集中 twitter: @ktaka http://ccmp.jp
3.
本日の内容 ● 今回のフェイルオーバー構成 ○ VRRPって何? ○
レプリケーション ○ デモ ● バックアップ、リカバリー ○ デモ ● まとめ
4.
フェイルオーバー構成
5.
フェイルオーバー構成 keepalived mysqld(5.6) keepalived mysqld(5.6) VRRP Rep. クライアント db1 db2VIP readonly=1 ヘルスチェック readonly=0
6.
フェイルオーバー構成 keepalived mysqld(5.6) keepalived mysqld(5.6) VRRP Rep. クライアント db1 db2VIP ヘルスチェック X readonly=0readonly=1
7.
VRRP
8.
VRRP2 (RFC3768) Master Backup Advertise Master
Backup -> Master Advertise X keepalived 1.2.17以降はVRRPv3(RFC5798)対応
9.
ヘルスチェック vrrp.conf vrrp_script mysqlchk { script
"/etc/keepalived/vrrp/mysqlchk.sh" interval 1 ← 1秒ごとにチェック fall 2 ← 2回失敗したらFAULT rise 2 ← 2回成功でBACKUP or MASTER } mysqlchk.sh mysql -S $SOCK --connect-timeout=$TIMEOUT -e "show variables like 'server_id';"
10.
VRRP切り替え時間 mysqldのみ死んだら ● ヘルスチェック失敗しMasterステップダウン。2秒。 ● 即座にVIPが移動する。 Masterがサーバごと突然死 ●
(3 * Advertisement_Interval) + ( (256 - Priority) / 256 ) ● が1なら最長で4秒でVIP移動
11.
レプリケーション
12.
レプリケーション(おさらい) Master Client binlog Slave Network relaylog binlog
13.
レプリケーション(やばい) Master Client binlog Slave Network relaylog binlog X
14.
DBの状態チェック ‘show slave status’の一部と、UUID表示 UUID=
8c3905b3-8de2-11e5-b06d-525400110001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 0 Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Retrieved_Gtid_Set: 8bfdfa5e-8de2-11e5-b068-525400110002:1 Executed_Gtid_Set: 8bfdfa5e-8de2-11e5-b068-525400110002:1,8c3905b3- 8de2-11e5-b06d-525400110001:1-58442
15.
フェイルオーバーデモ
16.
フェイルオーバー構成 keepalived mysqld(5.6) keepalived mysqld(5.6) VRRP Rep. クライアント v001 v002VIP readonly=1 ヘルスチェック readonly=1readonly=0
17.
フェイルオーバー構成 keepalived mysqld(5.6) keepalived mysqld(5.6) VRRP Rep. クライアント v001 v002VIP ヘルスチェック X readonly=0readonly=1
18.
デモ環境が小規模 https://github.com/ktaka-ccmp/mysql-casual-20151220/tree/mysql56 Intel Pentium N3700 (2M
Cache, up to 2.40 GHz, Quad Core) 8GB mem, 120GB SSD Debian Jessie , kvm
19.
フェイルオーバーデモ
20.
バックアップ・リカバリー
21.
Percona Xtrabackup ほぼオンラインバックアップ可能らしい* ● InnoDBだけを先にバックアップ ●
‘FLUSH TABLES WITH READ LOCK’ -> MyISAMをバックアップ mysqldumpより全然速い *http://d.hatena.ne.jp/interdb/20140922/1411378571
22.
Percona Xtrabackup デイリーバックアップ ● innobackupexでxtrabackup.{日時}.tgzに保存 リカバリー ●
data_dirを退避 ● innobackupexでバックアップから新しいdata_dir ● skip-slave-start でmysqld起動 ● レプリケーション設定 ● "start slave;"
23.
バックアップデモ
24.
おさらい いいところ ● ほぼ瞬時にフェイルオーバー ● バックアップ、リカバリー速い 課題 ●
マルチマスターなので不整合に気をつける ● repが遅いとなかなか昇格できない ● バックアップファイルの正しさチェックどうする?
25.
ご清聴ありがとうございましたm(__)m
26.
DBのMaster確認 mysql --host $VIP
-e 'select @@report_host, @@report_port, @@read_only¥G;' *************************** 1. row ******************* @@report_host: v001 @@report_port: 3306 @@read_only: 0
27.
GTIDって何? Global Transaction ID トランザクションに一意のID binlog内のどこまでが適用されたかがわかる。 5721623-be74-11e4-a21c-40a8f0333378:2681128 UUID
シーケンス番号
Download