使用 Distributed Replay 來測試你的 SQL Server(上)

by adonisy 9. 四月 2019 23:34

者:楊先民

審 稿:張智凱 

前言

您是否已決定將SQL Server遷移到較新版本?您想測試新SQL Server上的負載嗎?
如何在新SQL Server上創建負載?您是否需要開發多線程應用程序來模擬SQL Server上的負載?
SQL Server 2012之後,有一個新功能稱為Distributed Replay,可以非常簡單地模擬SQL Server上的負載以進行測試。

安裝

應該有一個 distributed replay控制器和1到16個 distributed replay客戶端。 distributed replay控制器和
 distributed replay客戶端可以單獨安裝或一起安裝在任何服務器上。
如果您決定在服務器上安裝Distributed Replay,則除此之外,管理工具應安裝到同一SQL Server,因為dreplay.exe文件
(Distributed Replay Administration Tool)隨附了下面的客戶端工具。

測試設置

我們正在使用以下電腦進行測試。

ServerN1:這將是我們的控制器;它安裝了以下組件:
分佈式重播客戶端
分佈式重播控制器
管理工具
SQL Server 2008 R2數據庫引擎服務
ServerN2:這將是我們的目標系統。它已安裝SQL Server 2012數據庫引擎服務。
ServerN3:這是一個分佈式重播客戶端
控制器名稱設置為ServerN1和ServerN3的ServerN1

有關您的信息,請參閱以下每個服務器的安裝文件夾:

ServerN1:C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ DReplayClient和
C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ DReplayController

ServerN2:沒有安裝任何與Distributed Replay相關的內容,因為尚未選擇這些功能。

ServerN3:C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ DReplayClient

服務帳戶

可以為“分佈式重播客戶端”和“分佈式重播控制器”配置單獨的服務帳戶。對於我們的示例,已使用“sqlservice”域用戶帳戶。

設置新服務帳戶後,使用ServerN1和ServerN3上的命令提示符重新啟動“SQL Server分佈式重播控制器”和“SQL Server分佈式重播客戶端”服務,如下所示。

ServerN1:

NET STOP "SQL Server Distributed Replay Controller" 
NET STOP "SQL Server Distributed Replay Client" 
NET START "SQL Server Distributed Replay Controller" 
NET START "SQL Server Distributed Replay Client"

ServerN3:

NET STOP "SQL Server Distributed Replay Client" 
NET START "SQL Server Distributed Replay Client"

重新啟動後,檢查文件夾“C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ DReplayClient \ Log”
中的分佈式重播客戶端的最後一個日誌文件。您可能會發現報告錯誤“無法連接控制器,錯誤代碼為0x80070005”。
錯誤代碼0x80070005表示“訪問被拒絕”。


補救:ServerN1

ServerN1  - 開始 - >運行並輸入dcomcnfg,將打開組件服務。

查找DReplayController(控制台根目錄 - >組件服務 - >計算機 - >我的電腦 - > DCOM配置 - > DReplayController)

打開DReplayController的屬性,然後選擇“安全”選項卡

編輯“啟動和激活權限”並授予“sqlservice”域用戶帳戶“本地激活”和“遠程激活”權限。

編輯“訪問權限”並授予“sqlservice”域用戶帳戶“本地訪問”和“遠程訪問”。

在“分佈式COM用戶”組中添加“sqlservice”域用戶帳戶。

重啟下面的控制器和客戶端服務

NET STOP“SQL Server分佈式重播控制器”

NET STOP“SQL Server分佈式重播客戶端”

NET START“SQL Server分佈式重播控制器”

NET START“SQL Server分佈式重播客戶端”

檢查分佈式重播客戶端日誌文件,並查看消息“使用控制器ServerN1註冊”

 


ServerN3

重啟客戶服務,如下所示

NET STOP“SQL Server分佈式重播客戶端”

NET START“SQL Server分佈式重播客戶端”

檢查分佈式重播客戶端日誌文件,並看到消息可以看作“無法連接控制器錯誤代碼0x800706BA”。 ServerN3客戶端可能無法連接到ServerN1上運行的控制器。

 


 



防火牆例外

根據此鏈接,我們需要正確設置防火牆例外。在每個遠程Distributed Replay客戶端上應用以下步驟:


使用高級安全性打開Windows防火牆

單擊“入站規則” - 右鍵單擊並選擇“新建規則”

規則類型:選擇程序,然後單擊下一步

程序:選擇“此程序路徑”並瀏覽“C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ DReplayClient \ DReplayClient.exe”並單擊“下一步”

操作:選擇“允許連接”,然後單擊“下一步”

配置文件:保留所有選定的域名,私人和公共(通常域應該足夠),然後單擊下一步

名稱:鍵入“允許分佈式重播客戶端”,然後單擊“完成”

在每個分佈式重播控制器上應用以下步驟:


使用高級安全性打開Windows防火牆

單擊“入站規則” - 右鍵單擊並選擇“新建規則”

規則類型:選擇程序,然後單擊下一步

程序:選擇“此程序路徑”並瀏覽“C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ DReplayController \ DReplayController.exe”並單擊“下一步”

操作:選擇“允許連接”,然後單擊“下一步”

配置文件:保留所有選定的域名,私人和公共(通常域應該足夠),然後單擊下一步

名稱:鍵入“允許分佈式重播控制器”,然後單擊“完成”

在ServerN3上應用以下步驟


重啟客戶服務,如下所示

NET STOP“SQL Server分佈式重播客戶端”

NET START“SQL Server分佈式重播客戶端”

檢查分佈式重播客戶端日誌文件,並查看消息“使用控制器ServerN1註冊”。 ServerN3客戶端將正確連接到控制器。

 


 

結論

在此階段,我們的分佈式重播客戶端已正確設置並正常運行。在本文的下一部分中,我們將向您展示如何使用DREPLAY實用程序重放服務器上的工作負載。

Tags:

不允許評論

NET Magazine國際中文電子雜誌

NET Magazine國際中文電子版雜誌,由恆逸資訊創立於2000,自發刊日起迄今已發行超過500篇.NET相關技術文章,擁有超過40000名註冊讀者群。NET Magazine國際中文電子版雜誌希望藉於電子雜誌與NET Developer達到共同學習與技術新知分享,歡迎每一位對.NET 技術有興趣的朋友們多多支持本雜誌,讓作者群們可以有持續性的動力繼續爬文。<請加入免費訂閱>

月分類Month List