Kiểm tra SQL Server bằng Windows PowerShell – Phần 1
Loạt bài này chúng tôi sẽ giới thiệu cho các bạn về các phương
pháp và các thủ tục để kiểm tra trạng thái hiện hành của hệ điều
hành, các trường hợp của SQL Server và cơ sở dữ liệu,… bằng
Windows PowerShell.
Thay vì sử dụng Vbscript, các file bat, hay các thực thi sql
client,… chúng tôi sẽ giới thiệu cho các bạn về sức mạnh bên
của Windows PowerShell trong vấn đề kiểm tra trạng thái của
SQL Servers.
Các điều kiện tiên quyết
•
Cài đặt .Net 2.0
•
Trên máy khách, bạn cần cài đặt Windows PowerShell 1.0.
•
Đăng nhập của bạn cần có quyền tạo các thư mục và file trong máy khách.
Trước khi đi vào kiểm tra thực SQL Server, chúng tôi muốn giới thiệu một chút nền tảng và xây
dựng các thư mục, thư viện,…
Phần cuối của loạt bài này, sẽ có một thư viện Powershell với nhiều hàm được dùng làm nguồn
cho bất kỳ kịch bản PowerShell nào. Một , nhiều hoặc tất cả các hàm này đều có thể được gọi từ
bất kỳ kịch bản PowerShell nào khi thư viện được dùng làm nguồn.
Bước 1
Khởi chạy Windows PowerShell bằng cách thực thi lệnh bên dưới (Hình 1.0)
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Hình 1.0: Khởi chạy PowerShell
Bước 2
Hãy tạo một thư mục bằng cách sử dụng lệnh PowerShell bên dưới. Thư mục này sẽ được dùng
chuyên dụng cho các kịch bản, các thư viện và các hàm của PowerShell có liên quan đến việc
{write-host $Hostname is NOT reachable -background "RED" -foreground "BLACk"}
}
Hình 1.3: File kịch bản PingHost.ps1
Lưu file Pinghost.ps1 và thoát khỏi notepad.
Bước 5
Đánh hoặc copy/paste đoạn mã sau vào trình soạn thảo notepad đã mở CheckSQL_Lib.ps1 như
dưới đây (xem hình 1.4)
#Source all the functions relate to CheckSQL
. ./PingHost.ps1
Hình 1.4: CheckSQL_Lib.ps1
Lưu file CheckSQL_Lib.ps1 và thoát khỏi notepad.
Lưu ý: CheckSQL_Lib.ps1 này sẽ được cập nhật với nguồn của các kịch bản mới như
PingHost.PS1
Về cơ bản nguồn sẽ load các hàm được liệt kê trong file kịch bản và làm cho nó hiện hữu trong
toàn bộ session của PowerShell.
Bước 6
Đánh hoặc copy/paste đoạn mã sau vào trình soạn thảo notepad đã mở CheckSQLServer.ps1 như
dưới đây (xem hình 1.5)
#Objective: To check various status of SQL Server
#Host, instances and databases.
#Author: MAK
#Date Written: June 5, 2008
param (
[string] $Hostname
)
. ./CheckSQL_Lib.ps1
PingHost $Hostname