首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

非 SQL 客戶端命令列模擬連線 SQL Server——SQLCMD 自動化監控實戰

     編輯:關於SqlServer

需求:在未安裝 SQL Server 工具的機器上,定期以命令列方式連線 SQL Server 叢集,模擬使用者查詢並記錄結果,以驗證網路/叢集穩定性。

工具選擇:SQLCMD

  • 輕量、免安裝 SQL Server 完整版即可使用。
  • 下載:Microsoft Command Line Utilities 11 for SQL Server (含 sqlcmd.exe)。
  • 先決條件:Microsoft ODBC Driver 11 for SQL Server (注意 32/64 位元對應)。
ConnMaker 視覺化連線工具

測試腳本設計

REM monitor.bat
SET SERVER=192.168.1.100
SET DB=MonitorDB
SET USER=monitor_user
SET PWD=ComplexPassword123
SET QUERY=SELECT TOP 1 OrderID, OrderDate FROM dbo.Orders ORDER BY OrderDate DESC

sqlcmd -S %SERVER% -d %DB% -U %USER% -P %PWD% -Q "%QUERY%" -o "log_%DATE:~-4,4%%DATE:~-10,2%%DATE:~-7,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.txt" -W -h-1

參數說明:
-W 移除尾端空白、-h-1 隱藏標題列、-o 輸出至帶時間戳檔名。

排程自動化:工作排程器 + 隨機延遲

  1. 開啟 Task Scheduler → Create Basic Task,觸發條件選 Daily,重複間隔 1 hour,持續 1 day。
  2. 動作:Start a Program,程式 cmd.exe,引數 /c "C:\Scripts\monitor.bat"。
  3. 進階設定:在「條件」/「設定」分頁勾選 Random delay (0-59 秒),避免同一秒大量連線衝擊叢集。
工作排程器隨機延遲設定

結果分析

  • 每小時產生一個記錄檔,內含查詢結果或錯誤訊息 (如 Login timeout、Connection failed)。
  • 定期匯總日誌,統計成功率、平均回應時間,作為叢集健康度基準。

進階擴充

  • 改用 Windows Authentication (-E) 免存密碼。
  • 加入 powershell 後處理:自動解析日誌、寄送異常警報郵件、寫入中央資料庫儀表板。
  • 針對 AlwaysOn 可用性群組,可在查詢中加入 SELECT @@SERVERNAME, @@SERVICENAME 驗證主要/次要複本切換。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved