Kiểm tra SQL Server bằng Windows PowerShell – Phần 5

Chia sẻ: Lang Huyen | Ngày: | Loại File: PDF | Số trang:7

0
112
lượt xem
19
download

Kiểm tra SQL Server bằng Windows PowerShell – Phần 5

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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à...

Chủ đề:
Lưu

Nội dung Text: Kiểm tra SQL Server bằng Windows PowerShell – Phần 5

  1. 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')) )
  2. 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 "
  3. $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.
  4. 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....."
  5. 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
  6. IsClustered 0 IsFullTextInstalled 1 IsSingleuser 0 .... .... Hình 1.0 Hình 1.1
  7. 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.  
Đồng bộ tài khoản