在非SQL客戶端使用命令行方式定期連接SQL Server 服務器並模擬用戶查詢操作,同時輸出信息內容
一個很長的標題,實現的功能就是盡量使用非人力的方式模擬人去做一件事情,為了便於記錄,將他們輸出成文件方便查閱。
圖形界面方式,使用微軟自己的ConnMaker.exe,或者Microsoft 數據連接(系統自帶,建立一個後綴為.udl的文件即可體驗),進行可視化的操作。
Figure 1使用ConnMaker.exe創建的可視化連接查詢實例
不過這次用戶的需求是因為他們在嘗試進行連接到SQL服務器集群的時候僅僅是他的那個實例會偶爾出現連接失敗的問題,為了驗證是外網環境而非集群本身的問題,我們需要建立一個類似的環境(非本機的異機客戶端連接)去模擬並記錄這些事情。
這時候使用圖形化界面可能太過於直觀,所以本次操作使用命令行方式進行連接,測試,並輸出。
同其他數據庫軟件提供商類似,微軟也提供了基於命令行方式的連接,在安裝有SQL Server服務器的環境下可以直接使用SQLPS這個命令來進行命令行操作,而對於題目要求的非SQL客戶端環境下我們同樣也有對策,使用SQLCMD即可。
軟件很小巧,可以直接從微軟的網站上下載獲取,Microsoft Command Line Utilities 11 for SQL Server是SQLCMD對應的產品名稱。如果出現安裝失敗,請先安裝對應的新版ODBC驅動:Microsoft ODBC Driver 11 for SQL Server - Windows然後在嘗試安裝SQLCMD即可,請注意,軟件有32位與64位之分,請根據自己的機器進行下載。
關於SQLCMD的更詳細使用說明可以參考MSDN的官方支持:使用 sqlcmd 實用工具
本實例中使用到了利用系統自身驗證(Integrated Security)連接數據,並在指定數據庫的特定表內查詢,返回一些查詢結果,用這個結果來判斷是否連接中斷,以及是否完成正常查詢。
設置任務計劃,編寫批處理,每天每小時延時一個隨機時間(0~59秒)執行,輸出後查看結果。
Figure 2在這裡進行設置任務計劃的隨機延遲與間隔時間
查看本欄目