共用方式為


使用 SQL Server 複寫設定地理備援

Important

如果您要建立一個 AD FS 陣列並使用 SQL Server 儲存您的設定資料,可以使用 SQL Server 2008 或更新版本。

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

Prerequisites

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

建立第二個 (複本) SQL Server 以進行異地備援

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

  2. 確定 SQL Server Agent 服務正在執行並設定為自動啟動

  3. 在主要 AD FS 節點上執行 Export-AdfsDeploymentSQLScript 以建立CreateDB.sql和SetPermissions.sql檔案。 例如:PS:\>Export-AdfsDeploymentSQLScript -DestinationFolder . –ServiceAccountName CONTOSO\gmsa1$顯示如何在主要 AD FS 節點上執行 Export-AdfsDeploymentSQLScript 的螢幕快照。

  4. 將指令碼複製到次要伺服器。 在 SQL Management Studio 中開啟 CreateDB.sql 指令碼,然後按一下 [執行]顯示開啟 SQL Management Studio 中CreateDB.sql腳本的螢幕快照。

  5. SQL Management Studio 中開啟 SetPermissions.sql 指令碼,然後按一下 [執行]顯示開啟 SQL Management Studio 中SetPermissions.sql腳本的螢幕快照。

Note

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

c:\>sqlcmd –i CreateDB.sql

c:\>sqlcmd –i SetPermissions.sql

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

  1. 在 SQL Server 管理工作室的 [複寫] 底下,以滑鼠右鍵按一下 [本機發行集 ],然後選擇 [新增發行集...]顯示 [新增出版物] 功能表選項的螢幕擷取畫面。

  2. 在 [新增發行集精靈] 畫面上,按一下 [ 下一步]。
    顯示 [新增發行集精靈] 畫面的螢幕擷取畫面。

  3. Distributor 頁面上,選擇本地伺服器作為 Distributor,然後按一下 Next顯示選擇本地伺服器作為散發者位置的螢幕快照。

  4. Snapshot 資料夾頁面上,輸入 \\SQL1\repldata 來取代預設資料夾。 (注意:您可能必須自行建立此共用)。 此螢幕快照顯示輸入預設快照集資料夾路徑的位置。

  5. 選擇 AdfsConfigurationV3 作為發行集資料庫,然後按一下 [下一步]。 此螢幕快照顯示選擇 AdfsConfigurationV3 做為發行集資料庫的位置。

  6. [發佈類型] 上,選擇 [合併發佈] ,然後按一下 [ 下一步]。 顯示位置的螢幕快照

  7. [訂閱者類型] 上,選擇 SQL Server 2008 或更新版本 ,然後按一下 [ 下一步]。 顯示選擇 SQL Server 2008 或更新版本位置的螢幕快照。

  8. [文章] 頁面上,選取 [資料表] 節點以選取所有資料表,然後 取消核取 [SyncProperties 資料表] (不應複寫此資料表)
    螢幕擷取畫面,顯示清除 SyncProperties (IdentityServerPolicy) 核取方塊的位置。

  9. [文章] 頁面上,選取 [使用者定義函數] 節點以選取所有 [使用者定義函數],然後按一下 [下一步]。 顯示 [使用者定義函式] 複選框位置的螢幕快照。

  10. 文章問題 頁面上,按一下 下一步顯示文章問題畫面的截圖。

  11. 在 [篩選資料表列] 頁面上,按一下 [下一步 ]顯示 [篩選表格行] 畫面的截圖。

  12. Snapshot Agent 頁面上,選擇預設值 Immediate (立即) 和 14 天,然後按一下 Next (下一步)。 顯示 快照集代理程式 畫面的螢幕快照。
    您可能需要為 SQL 代理程式建立網域帳戶。 使用為網域帳戶 CONTOSO\sqlagent 設定 SQL 登入 中的步驟,為這個新的 AD 使用者建立 SQL 登入,並指派特定權限。

  13. [代理程式安全性 ] 頁面上,按一下 [安全性設定 ],然後輸入為 SQL 代理程式建立的網域帳戶 (不是 GMSA) 的使用者名稱/密碼,然後按一下 確定。 按一下 [下一步] 。 顯示輸入網域帳戶用戶名稱和密碼的位置螢幕快照。

  14. [精靈動作] 頁面上,按一下 [下一步]。 顯示精靈動作畫面的螢幕快照。

  15. 在 [完成精靈] 頁面上,輸入您的出版物名稱,然後按一下 [完成]顯示您輸入出版物名稱之位置的螢幕快照。

  16. 建立出版物後,您應該會看到成功的狀態。 按一下關閉。 顯示發布成功完成的螢幕快照。

  17. 回到 SQL Server Management Studio,以滑鼠右鍵按一下新的發行集,然後按一下 [啟動複寫監視器]顯示 [啟動復寫監視器] 選單選項的螢幕快照。

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

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

  1. 在複本 SQL Server 上,從 SQL Server Management Studio 的 [複寫] 底下,以滑鼠右鍵按一下 [本機訂用帳戶] ,然後選擇 [新增訂用帳戶...]。螢幕 擷取畫面,顯示選取 [新增訂用帳戶] 的位置。

  2. 在 [新增訂閱精靈] 頁面上,按一下 [下一步]顯示 [新增訂閱精靈] 畫面的螢幕快照。

  3. [ 發佈 ] 頁面上,從下拉式清單中選取發佈者。 展開 AdfsConfigurationV3 ,然後選取上面建立的發行集名稱,然後按一下 [ 下一步]。 此螢幕快照顯示展開 AdfsConfigurationV3 的位置,並選取您所建立之發行集名稱的名稱。

  4. 在 [合併代理程式位置] 頁面中,選取 [在訂閱者端執行每個代理程式 (提取訂閱)] (預設),然後按 [下一步]顯示 [在訂閱者端運行每個代理程式(拉式訂閱)] 選項的螢幕快照。
    這與下方的訂閱類型決定衝突解決邏輯。 (如需詳細資訊,請參閱 偵測和解決合併複寫衝突

  5. 在 [ 訂閱者 ] 頁面上,選取 AdfsConfigurationV3 作為訂閱者資料庫,然後按一下 [下一步]。 顯示訂閱者畫面的螢幕快照。

  6. 在 [合併代理程式安全性] 頁面上,按一下省略號,然後在省略號方塊中輸入為 SQL 代理程式建立的網域帳戶(而不是 GMSA)的使用者名稱和密碼,然後按一下 [下一步]顯示 [合併代理程式 安全性] 畫面的螢幕快照。

  7. 同步排程上,選擇 持續執行, 然後按一下 下一步。 請查看螢幕快照以瞭解如何選取 [持續執行]。

  8. [初始化訂閱] 上,按一下 [下一步]。 顯示 [初始化訂閱] 畫面的螢幕快照。

  9. [訂閱類型] 上,選擇 [用戶端] ,然後按一下 [下一步]。

    其影響記錄在 此處此處。 基本上,我們採用簡單的「第一個發行者獲勝」衝突解決,我們不需要重新發佈給其他訂閱者。 顯示 [訂用帳戶類型] 畫面的螢幕快照。

  10. [精靈動作 ] 頁面上,確定已核取 [建立訂閱 ],然後按一下 [下一步]。 顯示用於驗證已選擇 [建立訂閱] 選項的螢幕快照。

  11. 完成精靈頁面上,按一下完成顯示 [完成精靈] 畫面的螢幕快照。

  12. 訂用帳戶完成建立程序之後,您應該會看到成功。 按一下關閉。 設定地理備援

確認初始化和複寫的程序

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

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

  3. [所有訂閱] 索引標籤上,按一下滑鼠右鍵,然後 [檢視詳細資料]。

    您應該能夠在初始複寫的 動作下 看到許多項目。

  4. 此外,您可以在 SQL Server Agent\Jobs 節點下查看已排程執行發行/訂閱操作的作業。 只會顯示本地任務,因此請務必檢查發行者和訂閱者以便解決問題。 以滑鼠右鍵按一下工作,然後選取 檢視歷程記錄, 以檢視執行歷程記錄和結果。

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

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

  2. 在 SQL Server 中,以滑鼠右鍵按一下您建立的登入,然後選取 [屬性],然後在 [ 使用者對應 ] 索引標籤下,將此登入對應至具有公用和db_genevaservice角色的 AdfsConfigurationAdfsArtifact 資料庫。 同時將此登入對應至發佈資料庫,並針對發佈和 adfsconfiguration 資料表新增資料庫擁有者角色。 在主要和複本 SQL 伺服器上都適用這項操作。 如需詳細資訊,請參閱 複寫代理程式安全性模型

  3. 為配置為分發者的共用資源,給予對應的網域帳戶讀取和寫入的權限。 請確定您已在共用權限和本機檔案權限上設定讀取和寫入權限。

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

既然您已設定異地備援,AD FS 伺服器陣列的節點就可以設定為使用標準 AD FS 「聯結」伺服器陣列功能,指向您的複本 SQL Server 伺服器陣列,無論是透過 AD FS 設定精靈 UI 還是使用 Windows PowerShell。

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

如果您使用 Windows PowerShell,請執行 Add-AdfsFarmNode請勿 執行 Install-AdfsFarm

出現提示時,請提供複本 SQL Server 的主機和執行個體名稱, 而不是 初始 SQL Server。