SQL Server レプリケーションを使用した地理的な冗長性の設定
重要
AD FS ファームを作成し、SQL Server を使用して構成データを保存する場合は、SQL Server 2008 以降のバージョンを使用できます。
SQL Server を AD FS 構成データベースとして使用している場合は、SQL Server レプリケーションを使用して、AD FS ファームの geo 冗長性を設定できます。 Geo 冗長性は、アプリケーションがあるサイトから別のサイトに切り替えることができるように、地理的に離れた 2 つのサイト間でデータをレプリケートします。 これにより、1 つのサイトで障害が発生した場合でも、2 番目のサイトですべての構成データを使用できるようになります。 詳細については、「SQL Server を使用したフェデレーションサーバーファーム」の「地理的冗長性の SQL Server」セクションを参照してください。
前提条件
SQL サーバー ファームのインストールと構成。 詳細については、「https://technet.microsoft.com/evalcenter/hh225126.aspx」を参照してください。 最初の SQL Server で、SQL Server エージェント サービスが実行されていて、[自動開始] に設定されていることを確認します。
geo 冗長性のための 2 番目 (レプリカ) の SQL Server を作成する
SQL Server をインストールします (詳細については、「https://technet.microsoft.com/evalcenter/hh225126.aspx」を参照して ください。 生成された CreateDB.sql および SetPermissions.sql スクリプト ファイルをレプリカ SQL サーバーにコピーします。
SQL Server エージェント サービスが実行中で、自動開始に設定されていることを確認してください
プライマリ AD FS ノードで Export-AdfsDeploymentSQLScript を実行して、CreateDB.sql ファイルと SetPermissions.sql ファイルを作成します。 たとえば、
PS:\>Export-AdfsDeploymentSQLScript -DestinationFolder . –ServiceAccountName CONTOSO\gmsa1$
となります。スクリプトをセカンダリ サーバーにコピーします。 SQL Management Studioで CreateDB.sql スクリプトを開き、[実行] をクリックします。
SQL Management Studioで SetPermissions.sql スクリプトを開き、[実行] をクリックします。
注意
また、コマンドラインから次のコードを使用することもできます。
c:\>sqlcmd –i CreateDB.sql
c:\>sqlcmd –i SetPermissions.sql
初期 SQL Server に発行者設定を作成する
SQL Server Management Studio の Replication で、[ローカル パブリケーション 右クリックし 新しいパブリケーション 選択します。..
[パブリケーションの新規作成ウィザード] 画面で、[次へ.
をクリックします。[ディストリビューター] ページで、ディストリビューターとしてローカルサーバーを選択し、[次へ] をクリックします。
[スナップショット] フォルダー ページで、既定のフォルダーの代わりに「\\SQL1\repldata」と入力します。 (注: この共有は自分で作成する必要がある場合があります)。
パブリケーション データベースとして AdfsConfigurationV3 を選択し、[次へ] をクリックします。
[パブリケーションの種類] で、[パブリケーションをマージ] を選択し、[次へ] をクリックします。
[サブスクライバーの種類] でSQL Server 2008 以降を選択し、[次へ] をクリックします。
Articles ページで Tables ノードを選択してすべてのテーブルを選択し、SyncProperties テーブルを確認します (このテーブルはレプリケートしないでください)
[アーティクル] ページで、[ユーザー定義関数] ノードを選択してすべてのユーザー定義関数を選択し、[次へ] をクリックします。
[アーティクルの問題] ページで、[次へ] をクリックします。
[テーブル行のフィルター選択] ページで、[次へ] をクリックします。
[スナップショット エージェント] ページで、即時と 14 日間の規定値を選択し、[次へ] をクリックします。
SQL エージェントのドメイン アカウントの作成が必要になる場合があります。 「ドメイン アカウント CONTOSO\sqlagent の SQL ログインの構成」の手順に従って、この新しい AD ユーザーの SQL ログインを作成し、特定のアクセス許可を割り当てます。[エージェント セキュリティ] ページで、[セキュリティ設定] をクリックし、SQL エージェント用に作成された (GMSA ではなく) ドメイン アカウントのユーザー名とパスワードを入力して、[OK] をクリックします。 [次へ] をクリックします。
[ウィザードのアクション] ページで、[次へ] をクリックします。
[ウィザードの完了] ページで、パブリケーションの名前を入力し、[完了] をクリックします。
パブリケーションが作成されると、成功の状態が表示されます。 [閉じる] をクリックします。
SQL Server Management Studio に戻り、新しいパブリケーションを右クリックして、[レプリケーション モニターの起動] をクリックします。
レプリカ SQL Server でのサブスクリプション設定を作成する
前に説明したように、初期 SQL Server でパブリッシャー設定を作成したことを確認してから、次の手順を実行します:
レプリカ SQL Server の SQL Server で、SQL Server Management Studio の Replication で Local サブスクリプションを右クリックし新しいサブスクリプション...選択します。
[サブスクリプションの新規作成ウィザード] ページで、[次へ] をクリックします。
[パブリケーション] ページで、ドロップダウンからパブリッシャーを選択します。 [AdfsConfigurationV3] を展開し、上で作成したパブリケーションの名前を選択して、[次へ] をクリックします。
[エージェントの場所をマージ] ページで、[サブスクライバーで各エージェントを実行する (プル サブスクリプション)] を選択し、[次へ] をクリックします。
これは、以下のサブスクリプションの種類と共に、競合解決ロジックを決定します。 (詳細については、「マージ レプリケーションの競合の検出および解決」を参照してください。[サブスクライバー] ページで、サブスクライバー データベースとして [AdfsConfigurationV3] を選択し、[次へ] をクリックします。
[マージ エージェント セキュリティ] ページで、[...] をクリックし、省略記号ボックスを使用して SQL エージェント用に作成された (GMSA ではなく) ドメイン アカウントのユーザー名とパスワードを入力して、[次へ] をクリックします。
[同期スケジュール] で、[連続実行] を選択し、[次へ] をクリックします。
[サブスクリプションの初期化] で、[次へ] をクリックします。
[サブスクリプションの種類] で、[クライアント] を選択し、[次へ] をクリックします。
この点については、こちらとこちらに記載されています。 基本的には、"最初からパブリッシャーへの優先" の競合解決をシンプルに行い、他のサブスクライバーに再パブリッシュする必要はありません。
[ウィザードのアクション] ページで、[サブスクリプションの作成] がオンになっていることを確認し、[次へ] をクリックします。
[ウィザードの完了] ページで、[完了] をクリックします。
サブスクリプションによって作成プロセスが完了すると、「成功」 と表示されます。 [閉じる] をクリックします。
初期化とレプリケーションのプロセスを確認する
プライマリ SQL サーバーで、[レプリケーション] ノードを右クリックし、[レプリケーションモニターの起動] をクリックします。
レプリケーション モニターで、パブリケーションをクリックします。
[すべてのサブスクリプション] タブで、[詳細を表示] を右クリックします。
初期レプリケーションの [アクション] の下に多くのエントリが表示されます。
さらに、[SQL サーバー エージェント\ジョブ] ノードの下で、パブリケーション/サブスクリプションの操作を実行するようにスケジュールされているジョブを確認できます。 ローカル ジョブのみが表示されます。そのため、トラブルシューティングがないか、パブリッシャーとサブスクライバーを確認してください。 ジョブを右クリックし、[履歴の表示] を選択して、実行履歴と結果を表示します。
ドメインアカウント CONTOSO\sqlagent の SQL ログインを構成する
CONTOSO\sqlagent と呼ばれるプライマリおよびレプリカの SQL Server に新しいログインを作成します (前の手順で [エージェント セキュリティ] ページで作成および構成した新しいドメインユーザーの名前)
SQL Server で、作成したログインを右クリックし、[プロパティ] を選択します。次に、[ユーザー マッピング] タブで、このログインを public ロールと db_genevaservice ロールを持つ AdfsConfiguration データベースと AdfsArtifact データベースにマップします。 また、このログインを配布用データベースにマップし、配布テーブルと adfsconfiguration テーブルの両方に db_owner ロールを追加します。 これは、プライマリとレプリカの両方の SQL サーバーで適用されます。 詳細については、「 レプリケーション エージェント セキュリティ モデル」を参照してください。
対応するドメイン アカウントに、ディストリビューターとして構成されている共有に対する読み取りと書き込みのアクセス許可を与えます。 共有のアクセス許可とローカル ファイルのアクセス許可の両方で、読み取りと書き込みのアクセス許可が設定されていることを確認してください。
SQL Server のレプリカ ファームを指すように AD FS ノードを構成します
geo 冗長の設定が完了したので、AD FS 構成ウィザードの UI または Windows PowerShell から標準 AD FS "結合" ファームの機能を使用して、レプリカ SQL Server ファームをポイントするように AD FS ファームノードを構成できます。
AD FS 構成ウィザードの UI を使用する場合は、[フェデレーションサーバー ファームにフェデレーションサーバーを追加する] を選択します。 [フェデレーション サーバー ファーム内に最初のフェデレーション サーバーを作成する] は選択しないでください。
Windows PowerShell を使用する場合は、 Add-AdfsFarmNodeを実行します。 Install-AdfsFarm を実行しないでください。
プロンプトが表示されたら、初期 SQL サーバーではなく、レプリカ SQL Server のホスト名とインスタンス名を指定します。