SQL Data Sync 的 Data Sync Agent

適用于:Azure SQL資料庫

在 Azure 中安裝並設定 SQL Data Sync 的 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:登入失敗所以服務無法啟動。」

資料同步處理錯誤 1069 對話方塊

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

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

    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 資料同步 Agent服務,然後選取 [啟動]。
    9. 關閉 [服務] 視窗。

我無法提交代理程式金鑰

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

[同步錯誤] 對話方塊 - 無法提交代理程式金鑰

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

    • 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 命令:

偵測服務

使用狀況

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 資料同步」的詳細資訊,請參閱下列文章: