MySQLをチューニング,そしてスケールアップ/スケールアウトへ

第8回 MySQLのレプリケーション構成

この記事を読むのに必要な時間:およそ 3.5 分

MySQL 5.7のレプリケーション新機能

2015年5月現在開発中のMySQL 5.7でもレプリケーション関連の改善が数多く行われています。マスターからスレーブにログを送受信するスレッドを並列処理可能にしてスループットの向上を図っているほか,パフォーマンススキーマでのレプリケーション関連性能統計情報を追加してより詳細な稼働状況のチェックを可能にしています。

より効率的な運用を可能にするため,MySQLサーバを再起動することなくレプリケーションのフィルタリング設定を動的に変更可能にしています。MySQL 5.6でGTIDを有効にするためにはレプリケーション構成全体を一時的に停止する必要があり,既存環境への導入の障壁となっていましたが,MySQL 5.7ではサーバを停止することなく動的に設定可能になっています。

スレーブの遅延を最小化するためにMySQL 5.6でマルチスレッドスレーブが導入されました。ただし並列処理されるのは変更対象のテーブルが別々のスキーマの場合のみでした。MySQL 5.7では同一スキーマ内のテーブルに対する変更も並列で実行されるようになったため,従来と比較して5倍以上のスループットが出ているベンチマークもあります。

マルチソースレプリケーション

従来のMySQLのレプリケーションは,スレーブは1台のマスターしか利用することができませんでした。1台のマスターから複数台のスレーブにデータを展開することはできても,その逆に1台のスレーブに複数のマスターに分割されたデータの変更点を集約することはツールを利用する必要がありました。ツールの例としては,do_akiさんによる開発のSwitchMasterやMySQL Utilitiesの中のmysqlrplmsなどがあります。いずれも一定間隔でスレーブの接続するマスターを切り替えていく仕組みになっています。

参考URL

SwitchMaster - master n : slave 1 replication for mysql

5.19. mysqlrplms — Set Up and Start Replication Among a Slave and Multiple Masters

MySQL 5.7ではスレーブからマスターへの接続にチャンネルという機能を追加し,1台のスレーブから複数のマスターに接続して変更点を集約する,マルチソースレプリケーション機能が追加となりました。

図3 マルチソースレプリケーション注5

図3 マルチソースレプリケーション(注5)

注5)
出典:Andrew Morgan on MySQL HA: MySQL 5.7.2 DMR and Labs

次回は

次回は高い可用性と更新処理性能の拡張性を両立したMySQL Clusterのアーキテクチャを解説いたします。

著者プロフィール

梶山隆輔

MySQL Sales Consulting Senior Manager。

日本オラクル(株)において,MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なMySQL部門にて,オーストラリア,インド,台湾などに在籍するチームメンバーを束ね,アジア太平洋地域の25以上の国や地域でのMySQL普及やビジネスの拡大をミッションとする。