Kim tra SQL Server bng Windows PowerShell – Phn 1
Lot bài này chúng tôi s gii thiu cho các bn v các phương
pháp và các th tc để kim tra trng thái hin hành ca h điu
hành, các trường hp ca SQL Server và cơ s d liu,… bng
Windows PowerShell.
Thay vì s dng Vbscript, các file bat, hay các thc thi sql
client,… chúng tôi s gii thiu cho các bn v sc mnh bên
ca Windows PowerShell trong vn đề kim tra trng thái ca
SQL Servers.
Các điu kin tiên quyết
Cài đặt .Net 2.0
Trên máy khách, bn cn cài đặt Windows PowerShell 1.0.
Đăng nhp ca bn cn có quyn to các thư mc và file trong máy khách.
Trước khi đi vào kim tra thc SQL Server, chúng tôi mun gii thiu mt chút nn tng và xây
dng các thư mc, thư vin,…
Phn cui ca lot bài này, s có mt thư vin Powershell vi nhiu hàm được dùng làm ngun
cho bt k kch bn PowerShell nào. Mt , nhiu hoc tt c các hàm này đều có th được gi t
bt k kch bn PowerShell nào khi thư vin được dùng làm ngun.
Bước 1
Khi chy Windows PowerShell bng cách thc thi lnh bên dưới (Hình 1.0)
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Hình 1.0: Khi chy PowerShell
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bước 2
Hãy to mt thư mc bng cách s dng lnh PowerShell bên dưới. Thư mc này s được dùng
chuyên dng cho các kch bn, các thư vin và các hàm ca PowerShell có liên quan đến vic
kim tra SQL Server. Thc thi lnh được cho bên dưới (xem hình 1.1)
New-Item -Path C:\ -Name CheckSQLServer -Type directory
Bn có th thy kết qu ca vic thc hin lnh bên dưới. V cơ bn, thư mc CheckSQLServer
đã được to thành công.
Hình 1.1 To thư mc mi
Bước 3
Hãy điu hướng đến thư mc CheckSQLServer và sau đó to các file khác bng lnh PowerShell
sau (xem trong hình 1.3)
set-location C:\CheckSQLServer
Notepad CheckSQL_Lib.ps1
Notepad CheckSQLServer.ps1
Notepad Pinghost.ps1
Bn có th thy rng v trí được thay đổi thành C:\CheckSQLServer và cũng đã m ba ca s
notepad để có th son tho các file CheckSQL_Lib.sql, CheckSQLServer.Ps1 và PingHost.ps1.
Hình 1.2: To kch bn và thư vịện PowerShell
Lưu ý: Notepad là mt trình son tho mà chúng tôi s dng cho vic son tho các kch bn
PowerShell. Bn hòan toàn có th tùy chn các trình son tho khác ưa thích đối vi cá nhân
bn.
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bước 4
Đánh hoc copy/paste đon mã sau vào trình son tho notepad đã m PingHost.ps1 như dưới
đây (xem hình 1.3)
Function Pinghost ([string] $Hostname )
{
$status=get-wmiobject win32_pingstatus -Filter "Address='$Hostname'" | Select-Object
statuscode
if($status.statuscode -eq 0)
{write-host $Hostname is REACHABLE -background "GREEN" -foreground "BLACk"}
else
{write-host $Hostname is NOT reachable -background "RED" -foreground "BLACk"}
}
Hình 1.3: File kch bn PingHost.ps1
Lưu file Pinghost.ps1 và thoát khi notepad.
Bước 5
Đánh hoc copy/paste đon mã sau vào trình son tho 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 khi notepad.
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Lưu ý: CheckSQL_Lib.ps1 này s được cp nht vi ngun ca các kch bn mi như
PingHost.PS1
V cơ bn ngun s load các hàm được lit kê trong file kch bn và làm cho nó hin hu trong
toàn b session ca PowerShell.
Bước 6
Đánh hoc copy/paste đon mã sau vào trình son tho 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
Hình 1.5: CheckSQLServer.ps1
Lưu file CheckSQLServer.ps1 và thoát khi notepad
Lưu ý: File CheckSQLServer.ps1 này s được cp nht các điu kin mi và các tham s trong
các phn sau ca lot bài này.
Ngun s load các chc năng được lit kê trong file kch bn và làm cho nó hin hu toàn b
session PowerShell. Trong trường hp này, chúng tôi s ly ngun mt kch bn có s dng
nhiu ngun t các kch bn khác.
Bước 7
Thc thi CheckSQLServer.ps1 như dưới đây (xem hình 1.6)
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
./CheckSQLServer.ps1 PowerMachine
./CheckSQLServer.ps1 TestServer
Chúng ta s thy các kết qu, da vào đó bn s biết được máy tính đó có kh năng ping hay
không. Nếu máy đó có th thăm dò bng cách ping, thì thông báo s được đánh du màu xanh
còn không s được đánh du màu đỏ.
Hình 1.6: Ping máy ch
Mc định, các kch bn PowerShell không th được thc thi trên máy nếu bn s dng nó ln đầu
tiên. Nếu bn gp phi thông báo li dưới đây như th hin trong hình 1.7, hãy thc thi lnh để
kích hot s thc thi kch bn không b hn chế ca PowerShell.
Hình 1.7: Li trong quá trình thc thi kch bn PowerShell
set-executionpolicy unrestricted
Lưu ý: Bn không phi thc thi lnh trên nhiu ln mà ch thc thi mt ln.
Bn có th kim tra chính sách thc thi ca cu hình PowerShell hin hành bng cách thc thi
lnh dưới đây (xem th hin trong hình 1.8)
get-executionpolicy
Hình 1.8: Chính sách thc thi
Kết lun
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com