共用方式為


在資料庫測試助理中重新執行追蹤

注意

此工具於 2024 年 12 月 15 日 淘汰。 我們已停止針對任何發生的問題支援此工具,而且不會發出任何錯誤修正或進一步更新。

在資料庫實驗助手 (DEA)中,您可以針對升級後的測試環境重播擷取的追蹤檔案。 例如,請考慮在 SQL Server 2008 R2 上執行的生產工作負載。 工作負載的追蹤檔案必須重新執行兩次:一次在生產環境中執行相同版本的 SQL Server,第二次在具有升級目標 SQL Server 版本的環境中執行,例如 SQL Server 2016。

注意

重新執行追蹤需要您手動配置虛擬機或實體計算機來執行 Distributed Replay 的追蹤。 如需詳細資訊,請參閱 為 Database Experimentation Assistant 設定 Distributed Replay

設定目標 1 的追蹤重播

首先,您必須對目標 1 執行追蹤紀錄重播,它代表您現有的生產環境。

  1. DEA 的左側導覽列中,選取箭號圖示,然後在 [所有重新執行] 頁面上,選取 [[新增重新執行]

    DEA 中創建重放的螢幕快照。

    注意

    Distributed Replay 控制器電腦需要您用來遠端連線的用戶帳戶許可權。

  2. 在 [新增重播] 頁面上,於 [重播詳細數據]下,輸入或選取下列資訊:

    • 重播名稱:輸入追蹤重播的名稱。

    • 來源追蹤格式:指定來源追蹤檔案的格式(追蹤或 XEvents)。

    • 來源檔案的完整路徑:指定來源追蹤檔案的完整路徑。 如果使用 DReplay,則檔案必須存在於做為 DReplay Controller 的電腦上,而且使用者帳戶需要檔案和資料夾的存取權。

    • 重播工具:指定重播工具(DReplay 或 InBuilt)。

    • 控制器計算機名稱:指定做為 Distributed Replay Controller 的電腦名稱。

    • 重播追蹤位置:指定存儲與追蹤重播相關聯之追蹤檔案/XEvents 的路徑。

      注意

      針對 Azure SQL Database 或 Azure SQL 受控實例,您必須提供 Azure Blob 記憶體帳戶的 SAS URI。

  3. 選取 [是] 來確認您已還原資料庫 ,我已手動還原資料庫 複選框。

  4. 在 [SQL Server 連線詳細數據下,輸入或選取下列資訊:

    • 伺服器類型:指定 SQL Server 的類型(SqlServerAzureSqlDbAzureSqlManagedInstance)。
    • 伺服器名稱:指定 SQL Server 的伺服器名稱或 IP 位址。
    • 驗證類型:針對驗證類型,選取 [Windows]。
    • 資料庫名稱:輸入要啟動伺服器端追蹤之資料庫的名稱。 如果您未指定資料庫,則會在伺服器上的所有資料庫上擷取追蹤。
  5. 視情況選取或取消選取 [加密連線] 和 [信任伺服器證書] 複選框。

    [新重播] 頁面的螢幕快照。

在目標 1 上啟動追蹤重播

  • 輸入或選取必要信息之後,請選取 [開始] 來開始追蹤重播。

    如果您輸入的資訊有效,Distributed Replay 程式就會啟動。 否則,具有不正確資訊的文本框會標示為紅色。 請確定您輸入的值正確,然後選取 [開始]

    針對目標 1 重新執行進度的螢幕快照。

    您可以視需要監控過程。 當重新執行完成時,DEA 會將結果儲存在您指定的位置。

    針對目標 1 完成重播的螢幕截圖。

針對目標 2 執行追蹤回放

在您完成針對目標 1 的追蹤重播後,您需要對第二個目標進行相同的操作,這表示預計的升級環境。

  1. 設定追蹤重播,這次使用與您的第二目標環境相關聯的詳細資料。

  2. 在目標 2 上啟動追蹤重放。

    您可以根據需要監控過程。 當重新執行完成時,DEA 會將結果儲存在您指定的位置。

追蹤回放的常見問題

問:我需要哪些安全性許可權,才能在目標伺服器上啟動重播擷取?

  • 在 DEA 應用程式中執行追蹤作業的 Windows 使用者,在執行 SQL Server 的目標電腦上必須具有系統管理員許可權。 啟動追蹤需要這些用戶權限。
  • 執行 SQL Server 的目標電腦執行所在的服務帳戶必須具有指定追蹤檔案路徑的寫入許可權。
  • 執行 Distributed Replay Client 服務的服務帳戶必須具有用戶權力,才能連線到執行 SQL Server 並執行查詢的目標計算機。

問:我可以在同一個會話中啟動多個重播嗎?

是,您可以在同一個會話中開始多個重播並追蹤它們直至完成。

問:我可以同時啟動多個重播嗎?

是,但不是與在 Controller 中選取的相同電腦集,以及用戶端。 控制器和用戶端將會忙碌。 在 Controller 以及 Client 底下設置一組單獨的電腦,以啟動平行重播。

問:重新執行通常需要多久才能完成?

重新播放通常需要與來源追蹤相同時間,外加預處理來源追蹤所需的時間。 不過,如果向控制器註冊的用戶端計算機不足以管理重新執行所產生的負載,重新執行可能需要較長的時間才能完成。 您最多可以向控制器註冊 16 部用戶端電腦。

問:目標追蹤檔案有多大?

目標追蹤檔案的大小可以是來源追蹤大小的 5 到 15 倍。 檔案大小是以執行多少個查詢為基礎。 例如,查詢計劃 Blob 可能很大。 如果這些查詢的統計數據經常變更,則會擷取更多事件。

問:為什麼我需要還原資料庫?

SQL Server 是具狀態的關係資料庫管理系統。 若要正確執行 A/B 測試,資料庫的狀態必須隨時保留。 否則,您可能會在重播期間看到查詢中在生產環境中不會出現的錯誤。 若要避免這些錯誤,建議您在來源擷取之前立即進行備份。 同樣地,在執行 SQL Server 的目標計算機上還原備份,以避免重新執行期間發生錯誤。

問:重播頁面上的「傳遞 %」是什麼意思?

Pass % 表示只有一部分的查詢通過。 您可以診斷錯誤數量是否符合預期。 錯誤可能是預期的,或可能會因為資料庫遺失其完整性而發生錯誤。 如果 傳遞 % 的值不是您預期的值,您可以停止追蹤,並查看 SQL Profiler 中的追蹤檔案,以查看哪些查詢未成功。

問:如何查看重新執行期間收集的追蹤事件?

開啟目標追蹤檔案,並在 SQL Profiler 中檢視它。 或者,如果您想要修改重播擷取,所有的 SQL Server 腳本都可以在 C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Scripts\StartReplayCapture.sql 中找到。

問:DEA 在重播期間收集哪些追蹤事件?

DEA 會擷取包含效能相關信息的追蹤事件。 擷取組態位於StartReplayCaptureTrace.sql腳本中。 這些事件是 sp_trace_setevent (Transact-SQL) 參考檔案中所列的一般 SQL Server 追蹤事件,

針對追蹤回放進行疑難解答

問:為什麼我無法連線到執行 SQL Server 的計算機?

  • 確認執行 SQL Server 的電腦名稱有效。 若要確認,請嘗試使用 SQL Server Management Studio (SSMS) 連線到伺服器。
  • 確認防火牆設定不會封鎖執行 SQL Server 之電腦的連線。
  • 確認使用者具有必要的用戶權力。
  • 確認 Distributed Replay 用戶端的服務帳戶可以存取執行 SQL Server 的電腦。

您可以在 %temp%\DEA 的記錄中取得更多詳細數據。 如果問題持續發生,請連絡產品小組。

問:為什麼我無法連線到 Distributed Replay 控制器?

  • 確認 Distributed Replay Controller 服務正在控制器電腦上執行。 若要確認,請使用 Distributed Replay Management Tools (執行 命令 dreplay.exe status -f 1)。
  • 如果從遠端啟動重播:
    • 確認執行 DEA 的電腦可以成功 Ping 控制器。 確認防火牆設定允許根據 設定重播環境 頁面上的指示進行連線。 如需詳細資訊,請參閱 SQL Server Distributed Replay 概觀一文,
    • 請確定 Distributed Replay 控制器的使用者允許 DCOM 遠端啟動和遠端啟用。
    • 請確定 Distributed Replay Controller 使用者已被授予 DCOM 遠端存取使用者權限。

問:我的計算機上存在追蹤檔案路徑。 為什麼 Distributed Replay 控制器找不到它?

Distributed Replay 只能存取本機磁碟資源。 您必須先將來源追蹤檔案複製到 Distributed Replay controller 計算機,才能開始重新執行。 此外,您必須在 DEA 新重新播放 頁面上提供路徑。

UNC 路徑與 Distributed Replay 不相容。 Distributed Replay 路徑必須是第一個來源追蹤檔案的本機絕對路徑,包括擴展名。

問:為什麼無法在 [新建重播] 頁面上瀏覽檔案?

由於我們無法瀏覽遠端電腦上的資料夾,因此流覽檔案並無用處。 複製並貼上絕對路徑會更有效率。

問:我已開始使用追蹤重播,但 Distributed Replay 並未重播任何事件。 為什麼?

此問題可能會發生,因為追蹤檔案中沒有重播事件的資料,或欠缺如何重播事件的相關資訊。 確認提供的追蹤檔案路徑是否指向來源追蹤檔案。 來源追蹤檔案是使用StartCaptureTrace.sql腳本中提供的組態所建立。

問:當我嘗試使用 SQL Server 2017 Distributed Replay Controller 預先處理追蹤檔案時,我會看到「發生意外的錯誤!」。 為什麼?

此問題在 SQL Server 2017 的 RTM 版本中已知。 如需詳細資訊,請參閱 當您使用 DReplay 功能在 SQL Server 2017中重新執行擷取的追蹤時發生非預期的錯誤。

此問題已在 SQL Server 2017 的最新累積更新 1 中解決。 下載最新版的 KB4038634 - SQL Server 2017 累積更新 1