Tải bản đầy đủ (.pdf) (5 trang)

Tài liệu Kiểm tra SQL Server bằng Windows PowerShell – Phần 2 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (139.44 KB, 5 trang )


Kim tra SQL Server bng Windows
PowerShell – Phn 2
Phn 1 ca lot bài này chúng tôi ã gii thiu cho các bn cách ping n host, ó chính là kim
tra u tiên trên SQL Server. Kim tra quan trng th hai  mc h iu hành là xem xem tt c
các dch v Windows có liên quan n SQL Server trên host hin có ang hot ng hay không
và báo cáo v trng thái ca h thng.
Phn 2 này s gii thiu cho các bn cách truy cp vào dch v Windows trên máy t xa bng
cách s dng Windows PowerShell và WMI-Object.
Bc 1
ánh hoc copy và paste on mã di ây vào file C:\CheckSQLServer\CheckServices.ps1.
# Function to check windows services related to SQL Server
Function checkservices ([string] $Hostname )
{
$Services=get-wmiobject -class win32_service
-computername $hostname|
where {$_.name -like '*SQL*'}| select-object
Name,state,status,Started,Startname,Description
foreach ( $service in $Services)
{
if($service.state -ne "Running" -or $service.status -ne "OK"
-or $service.started -ne "True" )
{
$message="Host="+$Hostname+" " +$Service.Name +"
"" +$Service.state +" +$Service.status +"
" +$Service.Started +" " +$Service.Startname
write-host $message -background "RED" -foreground "BLACk"
}
else
{
$message="Host="+$Hostname+" " +$Service.Name +"


" +$Service.state +" " +$Service.status +"
" +$Service.Started +" " +$Service.Startname
write-host $message -background "GREEN" -foreground "BLACk"
}
}
}
Bc 2
B sung thêm vào file C:\CheckSQLServer\CheckSQL_Lib.ps1 on mã di ây:
. ./checkservices.ps1
Lúc này C:\CheckSQLServer\CheckSQL_Lib.ps1 s có c pinghost và dch v kim tra
(checkservices) nh th hin bên di.
#Source all the functions relate to CheckSQL
. ./PingHost.ps1
. ./checkservices.ps1
Lu ý: File CheckSQL_Lib.ps1 này s c cp nht ngun ca các kch bn bn mi ging nh
checkservices.PS1
Bc 3
Gn vào file C:\CheckSQLServer\CheckSQLServer.ps1 bng cách copy và paste on mã di
ây.
checkservices $Hostname
Lúc này file C:\CheckSQLServer\CheckSQLServer.ps1 s có c pinghost và checkservices nh
th hin bên di. Chúng ta ã thêm vào mt s tuyên b  hin toàn b quá trình.
#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

Write-host "Checking SQL Server "
Write-host " "
Write-host " "
Write-host "Arguments accepted : $Hostname"
write-host " "
Write-host "Pinging the host machine"
write-host " "
PingHost $Hostname
Write-host "Checking windows services on the host related to SQL Server"
write-host " "
checkservices $Hostname
Lu ý: CheckSQLServer.ps1 này s c cp nht các iu kin mi và cng nh các tham s
trong các cài t sau ca lot bài này.
Ngun dn c bn load các chc nng c lit kê trong file kch bn và làm cho nó hin hu
trong toàn b PowerShell session. Trong tr ng hp này, chúng ta ang dn ngun cho mt kch
bn.
Bc 4
Hãy th!c thi kch bn CheckSQLServer.ps1 bng vic chuyn host “Powerpc” nh mt i s,
xem th hin bên di.
./CheckSQLServer.ps1 PowerPC
Bn s có c các k"t qu nh th hin bên di (xem hình 1.0)
Checking SQL Server

Arguments accepted : PowerPC

Pinging the host machine

PowerPC is REACHABLE
Checking windows services on the host related to SQL Server


Host=PowerPC msftesql$SQL2008 Stopped OK False .\mak
Host=PowerPC MSSQL$NY0QD1 Running OK True .\mak
Host=PowerPC MSSQL$SQL2008 Stopped OK False .\mak
Host=PowerPC MSSQLServerADHelper100 Stopped OK False NT AUTHORITY\NETWORK
SERVICE
Host=PowerPC SQLAgent$NY0QD1 Stopped OK False .\mak
Host=PowerPC SQLAgent$SQL2008 Stopped OK False .\mak
Host=PowerPC SQLBrowser Stopped OK False NT AUTHORITY\LOCAL SERVICE
Host=PowerPC SQLWriter Running OK True LocalSystem

Hình 1.0
T k"t qu bn có th th#y c rng b#t k$ SQL Server nào có liên quan ti dch v u không
c kh%i to hoc c ánh d#u trng thái “OK” màu & và t#t c các dch v liên quan "n
SQL Server ang hot ng c ánh d#u màu xanh.
Bc 5
Chúng ta hãy th!c thi kch bn trên máy tính không tn ti nh th hin bên di.
./CheckSQLServer.ps1 TestMachine
Khi ó bn s nhn c k"t qu nh th hin di ây (xem hình 1.1)
Kt qu
Checking SQL Server

Arguments accepted : TestMachine

Pinging the host machine

TestMachine is NOT reachable
Checking windows services on the host related to SQL Server

Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
At C:\checksqlserver\checkservices.ps1:5 char:24

+ $Services=get-wmiobject <<<< -class win32_service -computername $hostname| where
{$_.name -like '*SQL*'}| select-obj
ect Name,state,status,Started,Startname,Description
Host=TestMachine

Hình 1.1
N"u bn bt gp l'i “Get-WmiObject : The RPC server is unavailable. (Exception from
HRESULT: 0x800706BA)” thì nguyên nhân có th là mt s lý do di ây:
• Host không hin hu (ví d: bc 5)
• T ng la khóa chn tính nng qun tr t xa
N"u bn mun vô hiu hóa t ng la, hãy th!c thi lnh di ây ti nhc lnh:
netsh.exe firewall set service type=REMOTEADMIN mode=ENABLE scope=ALL
N"u mun gi các thi"t lp t ng la và ch( cho phép các cng c yêu cu i vi qun tr t
xa, hãy th!c thi on mã di ây:
netsh firewall add portopening protocol=tcp port=135 name=DCOM_TCP135
• Dch v Windows Management Instrumentation không hot ng
Thi"t lp dch v WMI chy t! ng và sau ó kh%i to dch v
• Add ng i dùng hin hành vào DCOM users.
Kt lun
Phn th hai này chúng ta ã c gii thiu v cách truy cp dch v Windows Service trên
máy t xa bng Windows PowerShell và WMI-Object. Trong phn ti"p theo ca lot bài, chúng
tôi s b sung thêm các kim tra khác  chúng ta không phi th!c hin t#t c các kim tra n"u
ping b th#t bi. Thêm vào ó chúng tôi s gii thiu cách capture mt s thông tin phn cng và
h iu hành.

×