SQL Server Always On 可用性グループ (Windows, WSFC)
SQL Serverレベル: 上級所要時間: 90–150 分SQL Server 2022 をインストールした Windows サーバーで Always On 可用性グループを構築します。Windows Server フェールオーバー クラスター (WSFC) とクォーラム監視 (file share / cloud witness)、Always On の有効化、ミラーリング エンドポイントと権限、自動シード処理による AG、リスナー、同期/非同期レプリカ、読み取り可能なセカンダリ、フェールオーバー テスト、監視までを扱います。最終的に、アプリケーションがリスナー名で接続し、フェールオーバーを試験済みの AG ができあがります。
先に各ノードを SQL Server Windows インストール で同じバージョン・同じパスにインストールしてください。構築済み AG の日常運用と障害対応 (遅延、強制フェールオーバー、データベース追加) は AG 運用、Linux で Pacemaker を使う AG は Always On AG (Linux) を参照してください。
構成: Windows ノード 2–9 台 (WSFC) + 監視 (witness)
開始前の確認
- 全ノードに SQL Server 2022 が同じバージョンと CU、同じインスタンス名 (…)、同じデータ/ログのドライブ文字とパスでインストールされている (インストール メニューの SQL Server 2022 Windows インストール)。エディション: Enterprise (Standard は Basic AG のみ: レプリカ 2 台、データベース 1 個)。
- 全ノードが同じ Windows Server バージョンで、同じドメイン (…) に参加し、更新プログラム適用済みで、同じサブネットにある。各ノードは固定 IP で、DNS レコードが正しい。
- セットアップを実行するアカウントが全ノードのローカル管理者で、SQL Server の sysadmin である。AD で … と … のコンピューター オブジェクトを作成する権限がある (またはオブジェクトを事前作成し、CNO に Full Control を付与済み)。
- 未使用の IP を 2 つ確保済み: クラスター …、リスナー … (DNS にはまだ登録なし)。
- 監視用共有 … がノードとは別のサーバーにある。共有と NTFS のアクセス許可: …\…$ に Full Control (クラスター作成後に付与しても構いません)。
- Azure Storage アカウント … (Standard, LRS/ZRS) が準備済みで、ノードから .blob.core.windows.net に 443 で接続できる。アクセス キーを手元に用意している。
- …ノード … 台 (奇数): 監視なしでもクォーラムの過半数を確保できますが、監視の使用を推奨します。…ノード … 台 (偶数): 監視がないと、ノード 1 台の喪失でクラスターが停止する可能性があります。監視を選択してください。…
- ノード間で開いているポート: SQL …/TCP、エンドポイント …/TCP、クラスター 3343/TCP-UDP、RPC 135/TCP + 動的 RPC、SMB 445/TCP。
- 各ノードに SqlServer PowerShell モジュールがインストールされている (Enable-SqlAlwaysOn 用)。
- AG に追加するデータベース (………, ……) がノード 1 に存在し、ユーザー データベース (システム データベースではない) である。セカンダリ ノードに同名のデータベースがない。
- サービス アカウント … に対して、各ノードの SPN MSSQLSvc/<node>.…:… が登録されている (エンドポイントとリスナーの接続は Kerberos を使います。リスナー用に MSSQLSvc/….…:… も追加してください)。
- メンテナンス ウィンドウが承認済みで、データベースの最新バックアップとノードのスナップショットがある。
ガイドのフェーズ
- Windows Server フェールオーバー クラスター — フェールオーバー クラスタリング機能をインストールする · クラスターを検証する (Test-Cluster) · クラスターを作成する · クォーラム監視を構成する (ファイル共有) · クォーラム監視を構成する (クラウド監視) · クラスターの状態を確認する
- SQL Server で Always On を有効にする — Always On を有効にする · サービス アカウントのログインを作成する · ミラーリング エンドポイントを作成する · ファイアウォールで SQL とエンドポイントのポートを開放する · エンドポイントへの接続をテストする
- 可用性グループ — データベースを FULL 復旧モデルにして完全バックアップを取得する · AG を作成する (プライマリ) · セカンダリを AG に参加させる · 自動シード処理を監視する · リスナーを作成する · 読み取り専用ルーティングを構成する (読み取り可能なセカンダリ)
- 検証とフェールオーバー テスト — AG の正常性を確認する · リスナー経由の接続をテストする · 計画フェールオーバー テスト: … をプライマリにする · フェールバック: … を再びプライマリにする · クラスター側から確認する
- 構築後の作業と監視 — ログイン、ジョブ、その他のサーバー オブジェクトを同期する · バックアップ戦略を決める · DMV クエリで AG を監視する · ロール変更の Agent 警告を定義する