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

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

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 (161.99 KB, 7 trang )


Kim tra SQL Server bng Windows
PowerShell – Phn 5
Phn 1 ca lot bài này ã gii thiu v kim tra u tiên trên SQL Server – các ping mt host.
Phn 2 là gii thiu v cách kim tra tt c các dch v ca Windows có liên quan n SQL
Server, phn 3 là cách kim tra các thông tin phn cng và phn mm, phn 4 là gii thiu v
cách thu thp các thông tin v card mng và  a cng t máy ch. Trong phn 5 này chúng ta
s kim tra xem có th kt ni vi SQL Server hay không và xem chúng ta có th truy vn mt s
thuc tính liên quan n SQL Server.
Bc 1
ánh hoc copy và paste on mã di ây vào file C:\CheckSQLServer\Checkinstance.ps1.
function checkinstance(
[string] $servername
)
{
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$DataSet = New-Object System.Data.DataSet
$SqlConnection.ConnectionString =
"Server=$servername;Database=master;Integrated Security=True"
$SqlCmd.CommandText = "
create table #serverproperty (property varchar(100),
value varchar(100))
insert into #serverproperty values
('MachineName',convert(varchar(100),
SERVERPROPERTY ('Machinename')))
insert into #serverproperty values
('Servername',convert(varchar(100),
SERVERPROPERTY ('ServerName') ))
insert into #serverproperty values


('InstanceName',convert(varchar(100),
SERVERPROPERTY ('ServerName') ))
insert into #serverproperty values
('Edition',convert(varchar(100),SERVERPROPERTY ('Edition') ))
insert into #serverproperty values
('EngineEdition',convert(varchar(100),
SERVERPROPERTY ('EngineEdition')) )
insert into #serverproperty values
('BuildClrVersion',convert(varchar(100),
SERVERPROPERTY ('Buildclrversion')) )
insert into #serverproperty values
('Collation', convert(varchar(100),SERVERPROPERTY ('Collation')) )
insert into #serverproperty values
('ProductLevel',convert(varchar(100),
SERVERPROPERTY ('ProductLevel')) )
insert into #serverproperty values
('IsClustered',convert(varchar(100),SERVERPROPERTY ('IsClustered') ))
insert into #serverproperty values
('IsFullTextInstalled',convert(varchar(100),SERVERPROPERTY
('IsFullTextInstalled ') ))
insert into #serverproperty values
('IsSingleuser',convert(varchar(100),
SERVERPROPERTY ('IsSingleUser ') ))
set nocount on
select * from #serverproperty
drop table #serverproperty
"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter.SelectCommand = $SqlCmd
$SqlAdapter.Fill($DataSet)

$DataSet.Tables[0]
$SqlConnection.Close()
}
Bc 2
ánh hoc copy và paste on mã sau vào file C:\CheckSQLServer\Checkconfiguration.ps1.
function checkconfiguration(
[string] $servername
)
{
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$DataSet = New-Object System.Data.DataSet
$SqlConnection.ConnectionString = "Server=$servername;Database=master;Integrated
Security=True"
$SqlCmd.CommandText = "
exec master.dbo.sp_configure 'show advanced options',1
reconfigure
"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter.SelectCommand = $SqlCmd
$SqlAdapter.Fill($DataSet)
$SqlCmd.CommandText = "
set nocount on
create table #config (name varchar(100), minimum bigint, maximum bigint, config_value bigint,
run_value bigint)
insert #config exec ('master.dbo.sp_configure')
set nocount on
select * from #config as mytable
drop table #config

"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter.SelectCommand = $SqlCmd
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0].rows
}
Bc 3
Gn vào file C:\CheckSQLServer\CheckSQL_Lib.ps1 on mã sau.
. ./checkinstance.ps1
. ./checkconfiguration.ps1
Lúc này file C:\CheckSQLServer\CheckSQL_Lib.ps1 có có pinghost, checkservices,
checkhardware, checkOS, checkHD, checknet, checkinstance và Checkconfiguration nh th
hin bên di.
#Source all the functions relate to CheckSQL
. ./PingHost.ps1
. ./checkservices.ps1
. ./checkhardware.ps1
. ./checkOS.ps1
. ./checkHD.ps1
. ./checknet.ps1
. ./checkinstance.ps1
. ./checkconfiguration.ps1
Lu ý: File CheckSQL_Lib.ps1 này s c cp nht vi ngun dn t các file kch bn mi,
chng hn nh checkinstance.ps1 and checkconfiguration.ps1
Bc 4
Gn thêm vào file C:\CheckSQLServer\CheckSQLServer.ps1 on mã sau.
Write-host "Checking Instance property Information "
Write-host " "
checkinstance $instancename

Write-host "Checking Configuration information "
Write-host " "
checkconfiguration $instancename
Lúc này file s có c hai kch bn checkinstance và checkconfiguration nh th hin bên di.
Chúng tôi ã thêm vào mt vài lnh write-host  hin th toàn b quá trình. Các bn cng cn
lu rng chúng tôi ã thêm $instancename vi t cách là mt tham s b sung cho kch bn
checksqlserver.
#Objective: To check various status of SQL Server
#Host, instances and databases.
#Author: MAK
#Date Written: June 5, 2008
param (
[string] $Hostname,
[string] $instancename
)
$global:errorvar=0
. ./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
if ($global:errorvar -ne "host not reachable")
{
Write-host "Checking windows services on the host related to SQL Server"
write-host " "
checkservices $Hostname

Write-host "Checking hardware Information "
Write-host " "
checkhardware $Hostname
Write-host "Checking OS Information "
Write-host " "
checkOS $Hostname
Write-host "Checking HDD Information "
Write-host " "
checkHD $Hostname
Write-host "Checking Network Adapter Information "
Write-host " "
checknet $Hostname
Write-host "Checking Configuration information "
Write-host " "
checkconfiguration $instancename |format-table
Write-host "Checking Instance property Information "
Write-host " "
checkinstance $instancename |format-table
}
Lu ý: File CheckSQLServer.ps1 này s c cp nht các iu kin mi và các tham s mi
trong các phn sau này ca lot bài.
Vic load v c bn s ti các chc nng c lit kê trong các kch bn và làm cho nó tr lên
hin hu trong sut toàn b PowerShell session. Trong tr ng hp này, chúng tôi dn ngun mt
kch bn, kch bn này li l!y ngun t nhiu kch bn khác.
Bc 5
Lúc này chúng ta hãy th"c thi kch bn, CheckSQLServer.ps1, bng cách passing
“PowerServer3” host vi t cách mt i s nh th hin bên di.
./CheckSQLServer.ps1 PowerServer3 PowerServer3\SQL2008
Chúng ta s gp k#t qu nh th hin di ây (Hình 1.0)




two digit year cutoff 1753 9999 2049
user connections 0 32767 0
user options 0 32767 0
xp_cmdshell 0 1 0

Checking Instance property Information

11
property value

MachineName POWERSERVER3
Servername POWERSERVER3\SQL2008
InstanceName POWERSERVER3\SQL2008
Edition Enterprise Evaluation Edition
EngineEdition 3
BuildClrVersion v2.0.50727
Collation SQL_Latin1_General_CP1_CI_AS
ProductLevel RTM
IsClustered 0
IsFullTextInstalled 1
IsSingleuser 0



Hình 1.0


Hình 1.1

Bc 6
Lúc này chúng ta hãy th"c thi kch bn trên máy không tn ti nh th hin bên di.
./CheckSQLServer.ps1 TestMachine
K#t qu thu c s nh bên di (tham kho hình 1.3)
Kt qu
Checking SQL Server

Arguments accepted : TestMachine

Pinging the host machine

TestMachine is NOT reachable

Hình 1.3
Kt lun
Phn 5 ca lot bài này ã gii thiu cho các bn cách truy cp các thuc tính instance ca SQL
Server và các chi ti#t v c!u hình ca nó bng cách s$ d%ng Windows PowerShell.

×