DBAtlas · データベース運用アトラス

MySQL GTID レプリケーション (非同期 / 準同期)

MySQLレベル: 中級所要時間: 45–90 分

インストール済みの MySQL サーバーで、1 ソース + N レプリカの GTID ベースのレプリケーションを構築します。レプリケーションユーザー、clone プラグインまたは mysqldump による既存データの転送、SOURCE_AUTO_POSITION、TLS、任意の準同期 (semi-sync)、super_read_only のレプリカ、遅延の監視、手動フェイルオーバー手順を扱います。最終的に、書き込みをソースで、読み取りをレプリカで処理でき、監視された構成が得られます。自動フェイルオーバーが必要な場合は InnoDB Cluster を、構築済みレプリケーションの日常運用と障害対応にはレプリケーション運用ガイドを参照してください。

構成: ソース 1 台 + レプリカ 1..5 台

開始前の確認

  • すべてのサーバーに MySQL … が同じマイナーバージョンでインストールされて稼働している (DBAtlas のMySQL シングルサーバーインストールガイド)。バイナリログと GTID が有効。OS の root が mysql でパスワードなしで接続できる。
  • server_id と server_uuid が各サーバーで異なる。(サーバーをコピー/クローンして作成した場合、datadir の auto.cnf が同一になっている可能性があります。削除してサービスを再起動してください。)
  • サーバー同士が … ポートで到達できる (…)。
  • 時刻が同期されている (chrony)。遅延の測定と PITR はタイムスタンプに依存します。
  • レプリカにソースのデータサイズ分の空き容量がある…。さらにダンプファイル用の領域もある…。
  • ソースのデータサイズとネットワーク速度を把握している (転送時間の見積もりのため)。
  • レプリケーションユーザー…と一時的な clone ユーザー…用の強力なパスワードを用意している (8 文字以上、大文字/小文字、数字、特殊文字。' と \ を含めない)。パスワードは各手順で画面に表示せずに入力を求められます。
  • アプリケーションが書き込みをソースにのみ送り、読み取りを (任意で) レプリカに送ることが分かっている。レプリカは super_read_only になります。

ガイドのフェーズ

  • 事前準備 (すべてのサーバー) — サーバーの識別子を確認する · ファイアウォールで他のノードを許可する · レプリケーション設定を追加する (ソース) · レプリケーション設定を追加する (…) · MySQL を再起動する
  • ソースの準備 — レプリケーションユーザーを作成する · 準同期プラグインをインストールする · ソースで準同期を有効にする
  • レプリカへのデータ転送 (clone) — clone プラグインをインストールする · 一時的な clone ユーザーを作成する · ソースをクローンする (…)
  • レプリカへのデータ転送 (mysqldump) — ソースから整合性のあるダンプを取得する · ダンプをレプリカにコピーする · ダンプをロードする (…)
  • レプリケーションを開始する — レプリカを読み取り専用にする (…) · ソースを設定してレプリケーションを開始する (…)
  • 検証 — ソースで接続中のレプリカを確認する · テスト書き込み (ソース) · レプリカでテスト書き込みを読み取る (…) · テストデータベースを削除する
  • 遅延と状態の監視 — レプリケーションの状態と遅延 (…)
  • 後片付け — clone ユーザーを削除する · ダンプファイルを削除する
  • 手動フェイルオーバー (ソースの喪失) — フェイルオーバー: 候補の状態を確認する · フェイルオーバー: 候補の状態を確認する · フェイルオーバー: 候補をソースに昇格する · フェイルオーバー: 候補をソースに昇格する · フェイルオーバー: 他のレプリカを新しいソースに接続する (…) · フェイルオーバー: 他のレプリカを新しいソースに接続する (…) …
環境に合わせた手順プランを開く →