2026年11月10日

2026年11月10日

MySQLのGTIDレプリケーションを設定する方法

はじめに

MySQLのGTID(Global Transaction ID)レプリケーションは、データベースの冗長性と可用性を向上させる重要な機能です。GTIDを使用することで、自動的にトランザクションの一貫性を保証し、手動での管理作業を最小限に抑えられます。

症状・背景

なぜMySQLのGTIDレプリケーションが必要なのか?

  • マイグレーションやエラーリカバリのためにデータベース間で自動的に同期を行う必要がある場合
  • 高可用性クラスタリングを構築する際に、トランザクションレベルでの一貫性を保つ必要がある場合
  • 保守作業が簡素化され、管理コストが削減できる場合

手順・設定方法

ステップ1: GTIDモードの有効化

# GTIDを有効にする
mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'STRICT_TRANS_TABLES',''));
mysql> SET GLOBAL log_bin=1;
mysql> SET GLOBAL binlog_format='ROW';
mysql> FLUSH TABLES WITH READ LOCK;
mysql> STOP SLAVE;
mysql> UNLOCK TABLES;

# GTIDを初期化
mysql> RESET MASTER;

ステップ2: レプリケーターの設定

# レプリケーターのMySQLサーバーでGTIDモードを有効にする
mysql> CHANGE MASTER TO master_info_repository='TABLE', master_use_gtid=slave_pos;

# 一貫性のあるレプリケーション開始
mysql> START SLAVE;

ステップ3: GTIDを使用したバックアップとリカバリ

# バックアップ時にGTID情報を保存
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

# ここで得られたファイル名と位置を記録し、復元先のMySQLサーバーに適用する

ステップ4: 実践/トラブルシュート/監視

# GTIDレプリケーション状態の確認
mysql> SHOW SLAVE STATUS\G;

# 一貫性チェック
mysql> SELECT * FROM mysql.gtid_executed;

注意事項

  • セキュリティ上の注意: GTID情報を不正に取得されると、データベースへのアクセスが可能になるため、ネットワークのセキュリティを強化すること。
  • パフォーマンス/運用上の注意: トランザクションの遅延やI/O負荷増加がある場合があるため、適切な監視を行うこと。

まとめ

1. GTIDの有効化: GTIDモードを有効にし、レプリケーション設定を行います。

2. レプリケーターの設定: レプリケーター側でGTIDモードを有効にして、一貫性のあるレプリケーションを開始します。

3. バックアップとリカバリ: GTID情報を保存して、必要な時に復元先のMySQLサーバーに適用します。

4. 状態確認: GTIDレプリケーションの状態を定期的に確認し、問題が発生した場合は適切なトラブルシュートを行います。

関連記事:

  • [MySQLのバックアップとリカバリ手法]
  • [データベースの高可用性クラスタリング実現方法]
  • [ネットワークセキュリティ強化手順]

お気軽にご相談ください

お見積りへ お問い合わせへ
▲