使用 SQL Server 複寫設定地理備援
重要
如果您要建立一個 AD FS 陣列並使用 SQL Server 儲存您的設定資料,可以使用 SQL Server 2008 或更新版本。
如果您使用 SQL Server 來作為 AD FS 的設定資料庫,您可以使用 SQL Server 備援來為 AD FS 伺服器陣列設定異地備援。 異地備援會在兩個地理位置遙遠的網站之間複寫資料,讓應用程式可以從一個網站切換到另一個網站。 如此一來,如果一個網站失敗,您仍然可以在第二個網站取得所有設定資料。 如需詳細資訊,請參閱使用 SQL Server 的同盟伺服器陣列中的
必要條件
安裝並設定 SQL 伺服器陣列。 如需詳細資訊,請參閱https://technet.microsoft.com/evalcenter/hh225126.aspx。 在初始 SQL Server 上,確定 SQL Server Agent 服務正在執行,並設定為自動啟動。
建立第二個 (複本) SQL Server 以進行異地備援
安裝 SQL Server (如需詳細資訊,請參閱 https://technet.microsoft.com/evalcenter/hh225126.aspx。 將產生的 CreateDB.sql 和 SetPermissions.sql 指令碼檔案複製到複本 SQL Server。
確定 SQL Server Agent 服務正在執行並設定為自動啟動
在主要 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 的 [複寫] 底下,以滑鼠右鍵按兩下 [本機發行集],然後選擇 [新增發行集...
在 [新增發行集精靈] 畫面上,按 [下一步]。
在 [散發者]頁面上,選擇本機伺服器作為散發者,然後按一下 [下一步]。
在 [快照集] 資料夾頁面中,輸入 \\SQL1\repldata 取代預設資料夾。 (注意:您可能必須自行建立此共用)。
選擇 AdfsConfigurationV3 做為發行集資料庫,然後按一下 [下一步]。
在 [發行集類型]上,選擇 [合併發行集],然後按一下 [下一步]。
在 [訂閱者類型]上,選擇 [sql Server 2008 或更新版本],然後按一下 [下一步]。
在 [ 發行項 ] 頁面上,選取 [數據表 ] 節點以選取所有數據表,然後 取消核取 SyncProperties 數據表(不應複寫此數據表)
在 [文章]頁面上,選取 [使用者定義函數] 節點,以選取 [所有使用者定義函式],然後按一下 [下一步]。
在 [文章問題] 頁面上,按一下 [下一步]。
在 [篩選資料表列] 頁面上,按一下 [下一步 ]。
在 [快照集代理程式] 頁面上,選擇 [即時運算] 和 [14 天] 的預設值,按一下 [下一步]。
您可能需要為 SQL 代理程式建立網域帳戶。 使用為網域帳戶 CONTOSO\sqlagent 設定 SQL 登入 中的步驟,為這個新的 AD 使用者建立 SQL 登入,並指派特定權限。在 [代理程式安全性] 頁面上,按一下 [安全性設定],然後輸入針對 SQL 代理程式建立的網域帳戶使用者名稱/密碼,然後按一下 [確定]。 按一下 [下一步] 。
在 [精靈動作] 頁面上,按一下 [下一步]。
在 [完成精靈] 頁面上,為發行集輸入名稱,然後按一下 [完成]。
建立發行集之後,您應該會看到成功狀態。 按一下關閉。
回到 SQL Server Management Studio,以滑鼠右鍵按一下新的發行集,然後按一下 [啟動複寫監視器]。
在複本 SQL Server 上建立訂用帳戶設定
請確定您在初始 SQL Server 上建立發行者設定,如上所述,然後完成下列程序:
在復本 SQL Server 上,從 [SQL Server Management Studio] 的 [複寫] 底下,以滑鼠右鍵按兩下 [本機訂閱],然後選擇 [新增訂閱...]。
在 [新增訂閱精靈] 頁面上,按一下 [下一步]。
在 [發行集] 頁面上,從下拉式清單中選取發行者。 展開 AdfsConfigurationV3,然後選取上面建立的發行集名稱,然後按一下 [下一步]。
在 [合併代理程式位置] 頁面中,選取 [在訂閱者端執行每個代理程式 (提取訂閱)] (預設),然後按 [下一步]。
這與下方的訂用帳戶類型一起決定衝突解決邏輯。 (如需詳細資訊,請參閱 偵測和解決合併複寫衝突。在 [訂閱者] 頁面上,選取 AdfsConfigurationV3 作為訂閱者資料庫,然後按一下 [下一步]。
在 [合併代理程式安全性] 頁面上,按一下 [...],然後使用省略號方塊輸入為 SQL 代理程式建立的網域帳戶使用者名稱和密碼,然後按一下 [下一步]。
在同步處理排程上,選擇 [持續執行],然後按一下 [下一步]。
在初始化訂閱上,按一下 [下一步]。
在訂用帳戶類型上,選擇 [用戶端],然後按一下 [下一步]。
本文在這裡記載了這一點的影響,還有這裡。 基本上,我們採用簡單的「第一個發行者獲勝」衝突解決,我們不需要重新發佈給其他訂閱者。
在 [精靈動作] 頁面上,確定已核取 [建立訂用帳戶],然後按一下 [下一步]。
在 [完成精靈] 頁面中,按一下 [完成]。
訂用帳戶完成建立程序之後,您應該會看到成功。 按一下關閉。
確認初始化和複寫的程序
在主要 SQL 伺服器上,以滑鼠右鍵按一下 [複寫] 節點,然後按一下 [啟動複寫監視器]。
在複寫監視器中,按一下發行集。
在 [所有訂用帳戶] 索引標籤上,以滑鼠右鍵按一下並 [檢視詳細資料]。
您應該能夠在初始複寫動作底下看到許多項目。
此外,您可以在 SQL Server Agent\Jobs 節點底下查看排程要執行發行集/訂閱的作業。 只會顯示本機作業,因此請務必檢查發行者和訂閱者以進行疑難排解。 以滑鼠右鍵按一下作業,然後選取 [檢視歷程記錄] 以檢視執行歷程記錄和結果。
設定網域帳戶 CONTOSO\sqlagent 的 SQL 登入
在名為 CONTOSO\sqlagent 的主要和複本 SQL Server 上建立新的登入 (在上述程序代理程式安全性頁面上建立和設定的新網域使用者名稱。)
在 SQL Server 中,以滑鼠右鍵按一下您建立的登入,然後選取 [屬性],然後在 [使用者對應] 索引標籤底下,將此登入對應至 AdfsConfiguration 以及具有公用和 db_genevaservice 角色的 AdfsArtifact 資料庫。 同時將此登入對應至散發資料庫,並針對散發和 adfsconfiguration 表格新增 db_owner 角色。 在主要和複本 SQL 伺服器上都適用這項操作。 如需詳細資訊,請參閱 複寫代理程式安全性模型。
為設定為散發者的共用,提供對應網域帳戶讀取和寫入的權限。 請確定您已在共用權限和本機檔案權限上設定讀取和寫入權限。
設定 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。