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

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

Đang tải... (xem toàn văn)

Thông tin tài liệu

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. . 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. 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 SQL2 008

Ngày đăng: 20/01/2014, 18:20

Tài liệu cùng người dùng

Tài liệu liên quan