適用於 SQL 資料同步的 Data Sync Agent

適用於:Azure SQL Database

藉由在 Azure 中安裝和設定適用於 SQL 資料同步的 Data Sync Agent,與 SQL Server 資料庫同步資料。 如需 SQL 資料同步的詳細資訊,請參閱使用 SQL 資料同步,跨多個雲端和內部部署資料庫同步資料

重要

SQL 資料同步目前支援 Azure SQL 受控執行個體或 Azure Synapse Analytics。

下載並安裝

若要下載 Data Sync Agent,請移至 [SQL Data Sync Agent]。 若要升級 Data Sync Agent,請在與舊代理程式相同的位置安裝代理程式,並將覆寫原始代理程式。

無訊息安裝

若要從命令提示字元以無訊息方式安裝 Data Sync Agent,請輸入類似下列範例的命令。 檢查所下載 .msi 檔案的檔案名稱,併為 TARGETDIRSERVICEACCOUNT 引數提供您自己的值。

  • 如果您未提供 TARGETDIR 的值,則預設值為 C:\Program Files (x86)\Microsoft SQL Data Sync 2.0

  • 如果您提供 LocalSystem 作為 SERVICEACCOUNT 的值,當您設定代理程式以連線到 SQL Server 時,請使用 SQL Server 驗證。

  • 如果您提供網域使用者帳戶或本機使用者帳戶做為 SERVICEACCOUNT 的值,您也必須提供透過 SERVICEPASSWORD 引數提供密碼。 例如: SERVICEACCOUNT="<domain>\<user>" SERVICEPASSWORD="<password>"

msiexec /i "SQLDataSyncAgent-2.0-x86-ENU.msi" TARGETDIR="C:\Program Files (x86)\Microsoft SQL Data Sync 2.0" SERVICEACCOUNT="LocalSystem" /qn

與 SQL Server 資料庫同步資料

若要設定 Data Sync Agent,以便您可以與一個或多個 SQL Server 資料庫同步資料,請參閱新增 SQL Server 資料庫

Data Sync Agent 常見問題

為什麼我需要用戶端代理程式

SQL 資料同步服務會透過用戶端代理程式來與 SQL Server 資料庫通訊。 這項安全性功能可防止直接與防火牆後方的資料庫通訊。 當 SQL 資料同步服務與代理程式通訊時,會使用加密的連線與唯一的權杖或代理程式金鑰來執行此動作。 SQL Server 資料庫會使用連接字串和代理程式金鑰來驗證代理程式。 這項設計可為您的資料提供高階安全性。

可以執行本機代理程式 UI 的多少個執行個體

一次只能執行該 UI 的一個執行個體。

如何才能變更我的服務帳戶

安裝用戶端代理程式之後,變更服務帳戶的唯一方法是將它解除安裝,並使用新的服務帳戶安裝新的用戶端代理程式。

如何變更我的代理程式金鑰

代理程式金鑰只能供代理程式使用一次。 當您移除之後重新安裝新的代理程式後就無法重複使用它,也無法供多個代理程式使用。 如果您需要為現有的代理程式建立新的金鑰,您必須確定用戶端代理程式與 SQL 資料同步服務會記錄相同的金鑰。

如何淘汰用戶端代理程式

若要立即使代理程式失效或淘汰,請在入口網站中重新產生代理程式金鑰,但不要在代理程式 UI 中提交該金鑰。 重新產生金鑰會使上一個金鑰失效,不論對應的代理程式處於上線還是離線狀態。

如何將用戶端代理程式移至另一部電腦

如果您要從與目前所在電腦不同的電腦執行本機代理程式,請執行下列動作:

  1. 在所需的電腦上安裝代理程式。
  2. 登入 SQL 資料同步入口網站,並重新產生新代理程式的代理程式金鑰。
  3. 使用新代理程式的 UI 來提交新的代理程式金鑰。
  4. 等候用戶端代理程式下載先前註冊的內部部署資料庫清單。
  5. 針對顯示為無法連線的所有資料庫提供資料庫認證。 這些資料庫必須可以從安裝代理程式的新電腦連線。

如果同步代理程式仍與之關聯,如何刪除同步中繼資料資料庫

若要刪除與同步代理程式關聯的同步中繼資料資料庫,您必須先刪除同步代理程式。 若要刪除代理程式,請執行下列動作:

  1. 選取同步資料庫。
  2. 移至 [同步至其他資料庫] 頁面。
  3. 選取同步代理程式,然後選取 [刪除]

Data Sync Agent 問題疑難排解

用戶端代理程式安裝、解除安裝或修復失敗

  • 原因。 許多情節可能會造成這個失敗。 若要確認此失敗的具體原因,請檢閱記錄。

  • 解決方法。 若要尋找失敗的特定原因,請產生並查看 Windows Installer 記錄。 您可以在命令提示字元開啟記錄。 例如,如果下載的安裝檔案為 SQLDataSyncAgent-2.0-x86-ENU.msi,請使用下列命令列來產生並檢查記錄檔:

    • 安裝:msiexec.exe /i SQLDataSyncAgent-2.0-x86-ENU.msi /l*v LocalAgentSetup.Log

    • 解除安裝:msiexec.exe /x SQLDataSyncAgent-2.0-x86-ENU.msi /l*v LocalAgentSetup.Log

      您也可以為 Windows Installer 所執行的所有安裝開啟記錄。 Microsoft 知識庫文章如何啟用 Windows Installer 記錄提供開啟 Windows Installer 記錄的單鍵解決方案。 它也提供記錄的位置。

我取消解除安裝之後,我的用戶端代理程式無法運作

用戶端代理程式無法運作,即使您取消其解除安裝亦然。

  • 原因。 SQL 資料同步用戶端代理程式不會儲存認證,因此發生此問題。

  • 解決方法。 您可以嘗試這兩種解決方案:

    • 使用 services.msc 重新輸入用戶端代理程式的認證。
    • 解除安裝此用戶端代理程式,然後安裝新的用戶端代理程式。 從下載中心下載並安裝最新的用戶端代理程式。

我的資料庫未列在代理程式清單

當您嘗試將現有的 SQL Server 資料庫新增至同步群組時,資料庫不會顯示在代理程式的清單中。

這類情況可能會造成此問題:

  • 原因。 用戶端代理程式和同步群組位於不同的資料中心。

  • 解決方法。 用戶端代理程式和同步群組必須在相同資料中心。 若要設定此情況,您有兩個選項:

    • 在與同步群組所在的相同資料中心中建立新的代理程式。 然後向該代理程式註冊資料庫。
    • 刪除目前的同步處理群組。 然後,在代理程式所在的資料中心重新建立同步群組。
  • 原因。 用戶端代理程式的資料庫清單不是最新的。

  • 解決方法。 停止然後再重新啟動用戶端代理程式服務。

    本機代理程式只會在第一次提交代理程式金鑰時下載相關聯的資料庫清單。 在後續的代理程式金鑰提交時,它不會下載相關聯資料庫的清單。 在代理程式移動期間註冊的資料庫不會出現在原始代理程式執行個體上。

用戶端代理程式無法啟動 (錯誤 1069)

您發現代理程式未在裝載 SQL Server 的電腦上執行。 當您嘗試以手動方式啟動代理程式時,您會看到對話方塊顯示錯誤訊息:「錯誤 1069:登入失敗所以服務無法啟動。」

Data Sync error 1069 dialog box

  • 原因。 此錯誤的可能原因是,在本機伺服器上的密碼在您建立代理程式及代理程式密碼之後已變更。

  • 解決方法。 將代理程式的密碼更新成目前的伺服器密碼:

    1. 找出 SQL 資料同步用戶端代理程式預覽服務。
      a. 選取 [開始]。
      b. 在搜尋方塊中輸入 services.msc
      c. 在搜尋結果中,選取 [服務]。
      d. 在 [服務] 視窗中,捲動至 [SQL Data Sync Agent] 的項目。
    2. 在 [SQL Data Sync Agent] 上按一下滑鼠右鍵,然後選取 [停止]
    3. 在 [SQL Data Sync Agent] 上按一下滑鼠右鍵,然後選取 [屬性]
    4. 在 [SQL Data Sync Agent 屬性] 上,選取 [登入] 索引標籤。
    5. 在 [密碼] 方塊中,輸入您的密碼。
    6. 在 [確認密碼] 方塊中,重新輸入密碼。
    7. 選取 [套用],然後選取 [確定]。
    8. 在 [服務] 視窗中,以滑鼠右鍵按一下 [SQL Data Sync Agent] 服務,然後選取 [啟動]。
    9. 關閉 [服務] 視窗。

我無法提交代理程式金鑰

您建立或重新建立代理程式金鑰之後,嘗試透過 SqlAzureDataSyncAgent 應用程式提交該金鑰。 提交無法完成。

Sync Error dialog box - Can't submit agent key

  • 必要條件。 在繼續之前,請檢查下列必要條件:

    • SQL 資料同步 Windows 服務正在執行。

    • SQL 資料同步 Windows 服務的服務帳戶具有網路存取權。

    • 輸出 1433 連接埠已在您的本機防火牆規則中開啟。

    • 本機 IP 會新增至同步中繼資料資料庫的伺服器或資料庫防火牆規則。

  • 原因。 代理程式金鑰可唯一識別每個本機代理程式。 金鑰必須符合兩個條件:

    • SQL 資料同步伺服器和本機電腦上的用戶端代理程式金鑰必須相同。
    • 用戶端代理程式金鑰只能使用一次。
  • 解決方法。 如果您的代理程式無法運作,是因為不符合其中一個條件,或兩者皆不符合。 讓代理程式重新運作:

    1. 產生新的金鑰。
    2. 將新的金鑰套用至代理程式。

    若要將新的金鑰套用至代理程式:

    1. 在檔案總管中,移至您的代理程式安裝目錄。 預設安裝目錄為 C:\Program Files (x86)\Microsoft SQL Data Sync。
    2. 按兩下 bin 子目錄。
    3. 開啟 SqlAzureDataSyncAgent 應用程式。
    4. 選取 [提交代理程式金鑰]
    5. 在提供的空間中,貼上剪貼簿中的金鑰。
    6. 選取 [確定]。
    7. 關閉程式。

如果無法連線到與用戶端代理程式相關聯的內部部署資料庫,則無法從入口網站刪除用戶端代理程式

如果無法連線到向 SQL 資料同步用戶端代理程式註冊的本機端點 (也就是資料庫),則無法刪除用戶端代理程式。

  • 原因。 無法刪除本機代理程式,因為無法連線的資料庫仍向代理程式註冊。 當您嘗試刪除代理程式時,刪除程序會嘗試連接資料庫,但是失敗。

  • 解決方法。 使用「強制刪除」以刪除無法連線的資料庫。

注意

若執行強制刪除後,同步中繼資料資料表仍然存在,請使用 deprovisioningutil.exe 將其清理。

本機同步代理程式應用程式無法連線至本機同步服務

  • 解決方法。 請嘗試下列步驟:

    1. 結束應用程式。
    2. 開啟 [元件服務] 畫面。
      a. 在工作列上的搜尋方塊中,輸入 services.msc
      b. 在搜尋結果中按兩下 [服務]
    3. 停止 SQL 資料同步服務。
    4. 重新啟動 SQL 資料同步服務。
    5. 重新開啟應用程式。

從命令提示字元執行 Data Sync Agent

您可以從命令提示字元執行下列 Data Sync Agent 命令:

Ping 服務

使用方式

SqlDataSyncAgentCommand.exe -action pingsyncservice

範例

SqlDataSyncAgentCommand.exe -action "pingsyncservice"

顯示已註冊的資料庫

使用方式

SqlDataSyncAgentCommand.exe -action displayregistereddatabases

範例

SqlDataSyncAgentCommand.exe -action "displayregistereddatabases"

提交代理程式金鑰

使用方式

Usage: SqlDataSyncAgentCommand.exe -action submitagentkey -agentkey [agent key]  -username [user name] -password [password]

範例

SqlDataSyncAgentCommand.exe -action submitagentkey -agentkey [agent key generated from portal, PowerShell, or API] -username [user name to sync metadata database] -password [user name to sync metadata database]

註冊資料庫

使用方式

SqlDataSyncAgentCommand.exe -action registerdatabase -servername [on-premisesdatabase server name] -databasename [on-premisesdatabase name]  -username [domain\\username] -password [password] -authentication [sql or windows] -encryption [true or false]

範例

SqlDataSyncAgentCommand.exe -action "registerdatabase" -serverName localhost -databaseName testdb -authentication sql -username <user name> -password <password> -encryption true

SqlDataSyncAgentCommand.exe -action "registerdatabase" -serverName localhost -databaseName testdb -authentication windows -encryption true

取消註冊資料庫

當您使用此命令取消註冊資料庫時,它會完全取消佈建資料庫。 如果資料庫參與其他同步群組,此作業會中斷其他同步群組。

使用方式

SqlDataSyncAgentCommand.exe -action unregisterdatabase -servername [on-premisesdatabase server name] -databasename [on-premisesdatabase name]

範例

SqlDataSyncAgentCommand.exe -action "unregisterdatabase" -serverName localhost -databaseName testdb

更新認證

使用方式

SqlDataSyncAgentCommand.exe -action updatecredential -servername [on-premisesdatabase server name] -databasename [on-premisesdatabase name]  -username [domain\\username] -password [password] -authentication [sql or windows] -encryption [true or false]

範例

SqlDataSyncAgentCommand.exe -action "updatecredential" -serverName localhost -databaseName testdb -authentication sql -username <user name> -password <password> -encryption true

SqlDataSyncAgentCommand.exe -action "updatecredential" -serverName localhost -databaseName testdb -authentication windows -encryption true

下一步

如需 SQL 資料同步的詳細資訊,請參閱下列文章: