GeoSync
在這個部分中:
關於 GeoSync
GeoSync 提供一種方法可在個人化伺服器 SQL 伺服器資料庫之間進行使用者資料和「環境管理員」個人化組態同步。如此可讓使用者在多個地點存取他們的資料與設定,讓他們無論在任何地方登入,都能獲得一致的體驗。他們所做的任何變更將得到同步,並且在下次同步時恢復已發佈狀態。
GeoSync 需要兩個或多個個人化伺服器資料庫 - 一個作為發行者,其他作為訂閱者。已安裝「環境管理員」時,發行者和訂閱者會使用提供的 PowerShell cmdlet 進行關聯。接下來會將訂閱者指定至「環境管理員」控制台中的個人化群組,以確定哪些資料庫已經同步。
對於「使用者資料」所做的任何變更會在發行者與訂閱者之間同步,以確保獲得最新的變更。「使用者資料」發行為「雙向」同步,「組態」為發行者至訂閱者的單向同步。它提供了集中組態管理,管理員在「發行者資料庫」所進行的任何組態更新,會在下次排定同步時複製到「訂閱者」。
例如,某間公司在全球各個據點設有辦事處,每個辦事處都有他們自己的個人化資料庫。經常在各個辦事處之間移動的員工將會受到 GeoSync 設定為每日同步的個人化群組的管理。他們的資料會保持最新狀態,每次在登入之後都可以使用這些資料。
可以執行僅設定同步。這對於在多個資料庫維護單一組態的公司而言非常有用。您可以選擇僅同步組態。如果某間公司在多個資料庫中僅使用一個組態,則該公司可以使用僅設定同步。對於組態的每項變更能夠快速地同步至所有必要的訂閱者,而不會影響使用者資料。
在已連接至訂閱者的「環境管理員」控制台中檢視時,發行者中同步的組態項目會以紫色反白顯示。同步的項目無法在訂閱者中編輯。
對於個人化伺服器資料庫的高可用性和災害復原,我們建議您查看我們最新的「最佳做法」指南: DOC-46245
根據客戶環境的差異,可能需要不同的設定步驟。以下是 GeoSync 所支援的三種狀況:
新的訂閱者資料庫
對於新的訂閱者資料庫,請遵照下面區段中的步驟。如果您希望在新的訂閱者上設定僅限本機個人化群組 (不會受發行者上的 GeoSync 管理的訂閱者的個人化群組),必須等到已經成功設定 GeoSync 同時訂閱者已經與發行者同步之後,才能建立個人化群組。
現有訂閱者資料庫
如果您打算在訂閱者上設定 GeoSync,而訂閱者中已經包含個人化組態和資料,則組態和資料必須已經存在於訂閱者 - 訂閱者為發行者的備份,或者資料庫先前已經透過 SQL Server 合併式複寫進行同步。
在上述案例中需要以下其他步驟。
注意 在現有訂閱者中設定 GeoSync 時,如果訂閱者中包含不存在於發行者中的組態或資料,將會導致資料遺失,同時這個版本中不支援此功能。如果您想要在遠端訂閱者上使用僅限本機個人化群組,則必須等到 GeoSync 完成組態之後才能設定這些個人化群組。
- 依照關聯發行者與訂閱者中的描述關聯發行者與訂閱者。
- 在發行者的個人化控制台中,為您的個人化群組設定 GeoSync。
-
從控制台執行初始同步。
如果在訂閱者中發現重複的 Windows 設定群組 (WSG),請繼續步驟 5。
如果沒有發現重複,表示組態完成 - 列出的 WSG 將使得 GeoSync 無法同步。
- 記錄目前的 ProfileCleanUpDelayDays 進階設定並且在訂閱者中變更為 -1。如此可確保倘若「背景服務」執行其每日工作,將不會在 GeoSync 設定期間嘗試清理孤立的 WSG
- 在訂閱者移除發現的 WSG 時 - 不要移除訂閱者中的任何應用程式群組。
-
重新執行步驟 3。
一旦順利完成初始同步,訂閱者現在應該將發現 WSG 出現重複的狀況還原並且關聯同步的個人化群組
- 將 ProfileCleanUpDelayDays 設定還原為其原始值。
衛星資料庫作為 GeoSync 訂閱者
此程序可解決如下情況: 已經透過 (使用匯入/匯出功能) 將部分或全部組態從較大的主要資料庫匯出以建立個人化伺服器資料庫,並且供數目較少的使用者在遠端使用。客戶希望使用 GeoSync 自動同步化主要資料庫與衛星資料庫之間的使用者子集,方法是讓他們分別成為 GeoSync 發行者以及訂閱者。無法使用現有的合併式複寫指令碼,因為它們同步所有資料庫。
如需有關此案例的完整詳細資訊,請參閱衛星資料庫作為 GeoSync 訂閱者。
關聯發行者與訂閱者
使用 ConfigureGeoSync.ps1 指令碼為您的發行者設定 GeoSync 並且關聯您的訂閱者。設定程序也可以使用「環境管理員」安裝過程中提供的 cmdlet 執行。某些動作 (例如在現有發行者加入新的訂閱者) 只能使用 cmdlet 完成。
如需了解更多有關使用 GeoSync cmdlet 以及如何在產生的指令碼中使用它們的資訊,請參閱 GeoSync cmdlet。
SQL 預設語言日期
SQL 配置程式帳戶的預設日期格式必須與美國日期格式 (mm/dd/yyyy) 相符。
基礎 SQL 指令碼需要用到美國日期格式。替代的日期格式會導致 ConfigureGeoSync.ps1 指令碼失敗,並且會顯示錯誤訊息。
配置程式帳戶語言設定可在以下位置找到: Microsoft SQL Server Management Studio > 安全性 > 登入 > [配置程式帳戶] > (以右鍵按一下) 內容 > 一般頁面 > 預設語言。
進一步的詳細資訊,可在此文章內找到。
SQL Express 使用者: 在執行以下程序之前,必須在 SQL Server 組態管理員中啟用 TCP/IP 通訊協定。此要求適用於發行者與訂閱者。
- 以管理員身分執行 Windows PowerShell。
- 輸入
cd "C:\Program Files\AppSense\Environment Manager\Personalization Server\Support”
以設定指令碼的位置。 - 輸入
.\ConfigureGeoSync.ps1
- 出現提示時,輸入下列詳細資訊:
- 發行者伺服器\執行個體
- 發行者資料庫名稱
- 配置者帳戶 - 如果使用 Windows 認證,納入網域名稱並且保留空白時,將會使用目前登入的使用者
- 發行者顯示名稱 - 為選填,如果保留空白將會使用 SQL 伺服器名稱
- 訂閱者伺服器\執行個體
- 訂閱者資料庫名稱
- 訂閱者顯示名稱 - 為選填,如果保留空白將會使用 SQL 伺服器名稱
- 服務帳戶-如果使用 Windows 憑證,包含網域名稱
如果成功,會顯示完成組態的確認資訊。如果需要,可以設定更多訂閱者。
-
輸入
Y
以新增其他訂閱者或輸入N
完成設定。
為個人化群組設定 GeoSync
為個人化群組選取訂閱者、新增條件以及設定同步類型。
-
選取個人化群組。
如果已經成功設定 GeoSync,則應該會看見 GeoSync 索引標籤 - 您可能需要重新整理您的「環境管理員」組態。
- 選取 GeoSync 索引標籤。
-
按一下新增然後從「顯示名稱」下拉式清單中選取必要的訂閱者。
可以選取所有設定的訂閱者。
- 視需要選取僅組態核取方塊。
-
選擇性將使用者條件新增至個人化群組。
這樣可以進一步設定同步目標,而不考慮個人化群組成員規則。
-
按一下儲存變更。
現在可以為個人化群組設定 GeoSync。
管理同步與排程
為訂閱者設定、編輯與取消同步排程或手動開始同步。
- 在「環境管理員」控制台中,為您的發行者連接至個人化伺服器。
-
選取管理 > GeoSync。
GeoSync 對話方塊會顯示可用的訂閱者。已經為 GeoSync 設定的任何個人化群組將會列於訂閱者的下方。對話方塊也會顯示同步狀態、上次以及下次排程同步的詳細資訊,以及每個訂閱者的同步類型。
- 按一下訂閱者的省略符號並且選取所需的選項:
- 同步 - 為選取的訂閱者開始資料與組態的立即同步。
- 僅設定同步 - 開始立即進行的僅設定同步。
排程同步 - 設定開始時間,以及設定是否每 24 小時在選定的時間執行同步一次。
如果對訂閱者存在有排程,編輯與取消選項將可以使用。
備份與還原 GeoSync 資料庫
針對 GeoSync 功能的個人化伺服器資料庫進行備份與還原時,執行的步驟會比沒有 GeoSync 功能的個人化伺服器的備份與還原步驟更多。用於加密資料庫中資料的「資料庫主要金鑰」需要備份,同時會根據情況在還原資料庫時需要用到「資料庫主要金鑰」。如果 GeoSync 功能的資料庫會還原至不同的 SQL Server 執行個體,則需要完整的重設與組態。這是由於使用特定伺服器的資料庫、執行個體,以及同步設定中的資料庫名稱的緣故。
建議將發行者以及所有訂閱者資料庫一起備份與還原。
GeoSync AlwaysOn 支援
Environment Manager 2020.2 版已更新 ConfigureGeoSync.ps1 指令碼以包含對於 AlwaysOn 架構的支援。指令碼現在會自動偵測主機電腦是否為 AlwaysOn 主要複本並隨之執行。
GeoSync 發行者資料庫是 AlwaysOn 可用性群組的一部分,可以設定為使用 New-EMPSPublisher cmdlet。請參閱 GeoSync-cmdlets.htm
cmdlet 包含兩個特定的參數:
• SecondaryReplicaServers - 讓您指定所有次要複本。然後 cmdlet 將資料庫主要金鑰憑證從主要複本新增至指定的所有次要複本。此舉讓主要金鑰憑證能夠在故障復原後被解碼。
•DatabaseMasterKeyPassword - 允許您指定用於加密憑證的資料庫主要金鑰密碼。
請務必妥善保存此密碼,特別是在以下情況時:
•如果已知原始資料庫主要金鑰密碼,則只能在初始設定 GeoSync 後新增新複本。
•如果 GeoSync 被移除,憑證會保留於資料庫中。只有在已知原始密碼的情況下,才能移除憑證。
備份 GeoSync 資料庫
- 備份每個訂閱者資料庫。
- 備份發行者資料庫。
- 一旦資料庫備份完成,請使用以下方法將發行者的「資料庫主要金鑰」備份至檔案:
- 使用 SQL Management Studio 連接至包含發行者資料庫的 SQL Server 執行個體。
- 建立以發行者資料庫為目標的新查詢。
- 選擇安全密碼以加密備份檔案。需要此密碼以還原「資料庫主要金鑰」並且需要進行複雜性檢查。
執行
BACKUP MASTER KEY
SQL 命令,例如:BACKUP MASTER KEY TO FILE = 'c:\backup\DatabaseMasterKey_PersonalizationServer.bak
'ENCRYPTION BY PASSWORD = 'ruygn@KiHHas14m;%qG';
- 將資料庫備份並將「資料庫主要金鑰」備份檔案複製到安全的備份位置。
還原 GeoSync 資料庫
如果會將個人化伺服器資料庫還原至不同的 SQL Server 執行個體,或者如果在還原過程中已經重新命名資料庫,將會需要其他步驟。兩個程序都會在下面列出。
還原至相同的 SQL Server 執行個體
如果所有發行者與訂閱者資料庫會還原至相同的 SQL Server 執行個體 (並且透過此執行個體取得備份),請使用此程序。
- 取得資料庫備份以及「資料庫主要金鑰」備份
- 從其備份還原每個訂閱者資料庫。
- 從其備份還原發行者資料庫。
- 一旦還原之後,在發行者 SQL Server 執行個體中,會使用以下方法啟用 Service Broker:
- 使用 SQL Management Studio,連接至包含發行者資料庫的 SQL Server 執行個體。
- 建立以發行者資料庫為目標的新查詢。
使用適合自己情況的命令啟用 Server Broker:
- 此命令需要對於資料庫有獨佔存取權 - 與還原資料庫的任何其他連接會有共用鎖定 (即使在閒置時),因此會使得 ALTER DATABASE 無法完成。關閉與資料庫的所有連接才能完成操作:
ALTER DATABASE [PersonalizationServerDatabaseName] SET ENABLE_BROKER
- 如果與資料庫有任何使用中連接,下列命令將會回復任何目前的交易並且關閉所有現有工作階段:
ALTER DATABASE [PersonalizationServerDatabaseName] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
- 下列命令會建立新的 Server Broker GUID。此命令可清除佇列中等待的任何訊息:
ALTER DATABASE [PersonalizationServerDatabaseName] SET NEW_BROKER WITH ROLLBACK IMMEDIATE
- 此命令需要對於資料庫有獨佔存取權 - 與還原資料庫的任何其他連接會有共用鎖定 (即使在閒置時),因此會使得 ALTER DATABASE 無法完成。關閉與資料庫的所有連接才能完成操作:
- 使用以下方法從其備份檔案還原「資料庫主要金鑰」:
- 使用 SQL Management Studio,連接至包含發行者資料庫的 SQL Server 執行個體。
- 建立以發行者資料庫為目標的新查詢。
執行以發行者資料庫為目標的以下 RESTORE MASTER KEY SQL 命令。解密密碼是在 BACKUP MASTER KEY SQL 命令中使用的密碼,例如:
RESTORE MASTER KEY
FROM FILE = 'c:\backup\DatabaseMasterKey_PersonalizationServer.bak'
DECRYPTION BY PASSWORD = 'ruygn@KiHHas14m;%qG'
ENCRYPTION BY PASSWORD = 'Gq%;m41saHHiK@ngyur'
FORCE;
SQL Server 會使用加密密碼將「資料庫主要金鑰」重新加密。無需記住此加密密碼。
步驟 5.如果自從上次備份之後就沒有變更「資料庫主要金鑰」,則並不一定需要如此。在此情況時,執行此命令時將不會傳回錯誤。而是由 SQL Server 報告: 舊的和新的主要金鑰相同。不需要資料重新加密。
還原至不同的 SQL Server 執行個體
如果任何發行者或訂閱者資料庫正在還原至不同的 SQL Server 執行個體或者資料庫的名稱已經變更,請使用此程序。
- 遵循還原至相同的 SQL Server 執行個體中的所有步驟。
- 對於發行者以及每個訂閱者資料庫,請呼叫 PowerShell cmdlet Reset-EMPSGeoSyncDatabase 以移除每個資料庫中的舊有 GeoSync 設定。請參閱 GeoSync cmdlet 以瞭解如何執行此命令的詳細資訊。
- 遵照關聯發行者與訂閱者中的步驟以設定 GeoSync。
- 遵照為個人化群組設定 GeoSync 的步驟為每個個人化群組設定必要的訂閱者。
- 遵照管理同步與排程中的步驟設定 GeoSync 排程設定。