使用 SQL Server 複寫設定地理位置冗余

重要

如果您想要建立 AD FS 伺服器陣列,並使用 SQL Server 來儲存設定資料,您可以使用 SQL Server 2008 或更高版本。

如果您使用 SQL Server 作為 AD FS 的設定資料庫,您可以使用 SQL Server 複寫來設定 AD FS 伺服器陣列的地理位置冗余。 異地複寫會在兩個地理位置遙遠的網站之間複寫資料,讓應用程式可以從一個網站切換到另一個網站。 如此一來,如果有一個網站失敗,您仍然可以在第二個網站上使用所有設定資料。 如需詳細資訊,請參閱使用 SQL Server 之同盟伺服器陣列中的「SQL Server 地理位置冗余」一節。

必要條件

安裝和設定 SQL server 伺服器陣列。 如需詳細資訊,請參閱https://technet.microsoft.com/evalcenter/hh225126.aspx。 在初始 SQL Server 上,確定 SQL Server 代理程式服務正在執行,並設定為自動啟動。

針對異地複寫建立第二個 (複本) SQL Server

  1. 安裝 SQL Server (如需詳細資訊,請參閱 https://technet.microsoft.com/evalcenter/hh225126.aspx 。 將產生的 CreateDB .sql 和 SetPermissions .sql 腳本檔案複製到 SQL 伺服器的複本。

  2. 確定 SQL Server 代理程式服務正在執行,並設定為自動啟動

  3. 在主要 AD FS 節點上執行 AdfsDeploymentSQLScript ,以建立 CreateDB .Sql 和 SetPermissions .sql 檔案。 例如: PS:\>Export-AdfsDeploymentSQLScript -DestinationFolder . –ServiceAccountName CONTOSO\gmsa1$Screenshot that shows how to run the Export-AdfsDeploymentSQLScript on the primary AD FS node.

  4. 將腳本複製到次要伺服器。 在SQL Management Studio中開啟 CreateDB .sql 腳本,然後按一下 [執行]。 Screenshot that shows the open the CreateDB.sql script in SQL Management Studio.

  5. SQL Management Studio中開啟 SetPermissions .sql 腳本,然後按一下 [執行]。 Screenshot that shows the open the SetPermissions.sql script in SQL Management Studio.

注意

您也可以從命令列使用下列命令。

c:\>sqlcmd –i CreateDB.sql

c:\>sqlcmd –i SetPermissions.sql

在初始 SQL Server 上建立發行者設定

  1. 從 SQL Server Management studio 的 [複寫] 下,以滑鼠按右鍵 [本機發行集] ,然後選擇 [新增發行集 ...]。Screenshot that shows the New Publication menu option.

  2. 在 [新增發行集] 頁面上,按 [下一步]。Screenshot that shows the New Publication Wizard screen.Screenshot that shows the New Publication Wizard screen.

  3. [ 散發者] 頁面上,選擇 [本機伺服器為散發者 ],然後按一下 Screenshot that that shows where to choose the local server as distributor.Screenshot that that shows where to choose the local server as distributor.

  4. 在 [ 快照 集資料夾] 頁面上,輸入 \\SQL1\repldata 取代預設資料夾。 (注意:您可能必須自行建立此共用) 。 Screenshot that shows where to enter the path to the default Snapshot folder.Screenshot that shows where to enter the path to the default Snapshot folder.

  5. 選擇 AdfsConfigurationV3 做為發行集資料庫,然後按 [下一步]Screenshot that shows where to choose AdfsConfigurationV3 as the publication database.Screenshot that shows where to choose AdfsConfigurationV3 as the publication database.

  6. 在 [發行集類型] 中,選擇 [合併式發行集],然後按[ Screenshot that shows where Screenshot that shows where

  7. 訂閱者類型上,選擇SQL Server 2008 或更新版本,然後按[下一步]Screenshot that shows where to choose SQL Server 2008 or later.Screenshot that shows where to choose SQL Server 2008 or later.

  8. 在 [發行項] 頁面上,選取 [資料表]節點來選取所有資料表,然後取消核取 [SyncProperties 資料表] (不應複寫此資料表) Screenshot that shows where to clear the SyncProperties (IdentityServerPolicy) check box.

  9. 在 [發行項] 頁面上,選取 [使用者定義函數] 節點以選取所有使用者定義函數,然後按一下[下一步]Screenshot that shows where to select the User Defined Functions check box.Screenshot that shows where to select the User Defined Functions check box.

  10. 在 [ 發行項問題 ] 頁面上按 [下一步]Screnshot that shows the Article Issues screen.Screnshot that shows the Article Issues screen.

  11. 在 [篩選資料表的資料列] 頁面上,按一下 [下一步]Screenshot that shows the Filter Table Rows screen.Screenshot that shows the Filter Table Rows screen.

  12. 在 [快照集代理程式] 頁面上,選擇 [立即] 和 [14 天] 的預設值,按[下一步 Screenshot that shows the Snapshot Agent screen.Screenshot that shows the Snapshot Agent screen.您可能需要為 SQL 代理程式建立網域帳戶。 使用[設定網域帳戶的 SQL 登入 CONTOSO\sqlagent ] 中的步驟,為這個新的 AD 使用者建立 SQL 登入,並指派特定的許可權。

  13. 在 [代理程式安全性] 頁面上,按一下 [安全性設定並輸入網域帳戶的使用者名稱/密碼 (不是針對 SQL 代理程式建立的 GMSA) ,然後按一下[確定]。 按一下 [下一步] 。 Screenshot that shows where to enter the username and password for the domain account.Screenshot that shows where to enter the username and password for the domain account.

  14. 在 [ 嚮導動作] 頁面上,按 [下一步]Screenshot that shows the Wizard Actions screen.Screenshot that shows the Wizard Actions screen.

  15. 在 [ 完成嚮導] 頁面上,輸入您的發行集名稱,然後按一下 [完成]Screenshot that shows where you enter a name for your publication.Screenshot that shows where you enter a name for your publication.

  16. 建立發行集之後,您應該會看到成功的狀態。 按一下 [關閉]。 Screenshot that shows the successful completion of the publication.Screenshot that shows the successful completion of the publication.

  17. 回到 SQL Server Management Studio 中,以滑鼠右鍵按一下新的發行集,然後按一下 [啟動複寫監視器]。 Screenshot that shows the Launch Replication Monitor menu option.Screenshot that shows the Launch Replication Monitor menu option.

在複本 SQL Server 上建立訂用帳戶設定

請確定您已在初始 SQL Server 上建立發行者設定,如上所述,然後完成下列程式:

  1. 在 [複本 SQL Server,從 SQL Server Management studio] 的 [複寫] 下,以滑鼠右鍵按一下 [本機訂閱],然後選擇 [新增訂閱]。Screenshot that shows where to select New Subscription.

  2. 在 [ 新增訂閱嚮導] 頁面上,按 [下一步]。 Screenshot that shows the New Subscription Wizard screen.Screenshot that shows the New Subscription Wizard screen.

  3. 在 [ 發行 集] 頁面上,從下拉式清單中選取 [發行者]。 展開 [ AdfsConfigurationV3 ],並選取上面建立的發行集名稱,然後按 [下一步]Screenshot that shows where to expand AdfsConfigurationV3 and select the name of the name of the publication that you created.Screenshot that shows where to expand AdfsConfigurationV3 and select the name of the name of the publication that you created.

  4. 在 [ 合併代理程式位置 ] 頁面上,選取 [ 在訂閱者端執行每個代理程式 (提取訂閱]) (預設) 然後按 [下一步]Screenshot that shows the Run each agent at its Subscriber (pull subscriptions) option.Screenshot that shows the Run each agent at its Subscriber (pull subscriptions) option. 這和下面的訂用帳戶類型會決定衝突解決邏輯。 (如需詳細資訊,請參閱偵測 和解決合併式複寫衝突。

  5. 在 [ 訂閱者 ] 頁面上,選取 AdfsConfigurationV3 作為訂閱者資料庫,然後按 [下一步]Screenshot that shows the Subscribers screen.Screenshot that shows the Subscribers screen.

  6. 在 [合併代理程式安全性] 頁面上,按一下 [ ... ] 並輸入網域帳戶的使用者名稱和密碼, (不是使用省略號方塊為 SQL 代理程式建立的 GMSA) ,然後按一下[下一步]Screenshot that shows the Merge Agent Security screen.Screenshot that shows the Merge Agent Security screen.

  7. [同步處理排程] 上,選擇 [連續執行],然後按[下一 Screenshot that shows where to select Run continuously.Screenshot that shows where to select Run continuously.

  8. 在 [ 初始化訂閱] 上,按 [下一步]Screenshot that shows the Initialize Subscriptions screen.Screenshot that shows the Initialize Subscriptions screen.

  9. 用帳戶類型上,選擇 [ 用戶端],然後按

    這種情況的含意記載于此處。 基本上,我們會採用簡單的「第一次到發行者獲勝」衝突解決方式,而不需要重新發佈給其他訂閱者。 Screenshot that shows the Subscription Type screen.Screenshot that shows the Subscription Type screen.

  10. 在 [ 嚮導動作] 頁面上,確定已核取 [建立訂閱 ],然後按一下 [下一步]Screenshot that shows where verify that the Create the subscription option is selected.Screenshot that shows where verify that the Create the subscription option is selected.

  11. 在 [ 完成嚮導] 頁面上,按一下 [完成]。 Screenshot that shows the Complete the Wizard screen.Screenshot that shows the Complete the Wizard screen.

  12. 訂用帳戶完成建立程式之後,您應該會看到成功。 按一下 [關閉]。 Set up Geographic RedundancySet up Geographic Redundancy

確認初始化和複寫的處理常式

  1. 在主要 SQL 伺服器上,以滑鼠右鍵按一下 [複寫] 節點,然後按一下 [啟動複寫監視器]。

  2. 在 [複寫 監視器] 中,按一下該發行集。

  3. 在 [ 所有訂閱 ] 索引標籤上,以滑鼠右鍵按一下並 查看詳細資料

    您應該能夠在 [ 動作 ] 底下看到初始複寫的許多專案。

  4. 此外,您可以在 [ SQL Server Agent\Jobs ] 節點下查看 () 排程執行發行集/訂閱作業的工作。 只會顯示本機作業,因此請務必檢查發行者和訂閱者以進行疑難排解。 以滑鼠右鍵按一下作業,然後選取 [ View history ] 以查看執行歷程記錄和結果。

設定網域帳戶的 SQL 登入 CONTOSO\sqlagent

  1. 在主要和複本 SQL Server 上建立新的登入,稱為 CONTOSO\sqlagent (在上述程式的 [代理程式安全性] 頁面上建立和設定的新網域使用者名稱。 )

  2. 在 SQL Server 中,以滑鼠右鍵按一下您所建立的登入,然後選取 [屬性],然後在 [使用者對應] 索引標籤下,將此登入對應至AdfsConfiguration ,並以 public 和 db_genevaservice 角色AdfsArtifact資料庫。 也請將此登入對應到散發資料庫,並為散發和 adfsconfiguration 資料表新增 db_owner 角色。 請盡可能在主要和複本 SQL 伺服器上這麼做。 如需詳細資訊,請參閱 複寫代理程式安全性模型

  3. 將設定為「散發者」之共用的讀取和寫入權限授與對應的網域帳戶。 請確定您已在 [共用許可權] 和 [本機檔案] 許可權上設定 [讀取] 和 [寫入] 許可權。

設定 AD FS 節點 (s) 指向 SQL Server 複本伺服器陣列

現在您已設定地理區域冗余,AD FS 伺服器陣列節點可以設定為使用標準 AD FS "join" 伺服器陣列功能(從 AD FS 的設定 Wizard UI 或使用 Windows PowerShell)指向您的複本 SQL Server 服務器陣列。

如果您使用 AD FS 設定向導 UI,請選取 [ 將同盟伺服器新增至同盟伺服器陣列]。 請勿 選取 [在同盟伺服器陣列中建立第一部同盟伺服器]。

如果您使用 Windows PowerShell,請執行add-adfsfarmnode請勿 執行 Install-AdfsFarm

出現提示時,請提供複本 SQL Server 的主機和實例名稱,而是初始 SQL 伺服器。