1. Trang chủ
  2. » Công Nghệ Thông Tin

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

6 437 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểm tra SQL Server bằng Windows PowerShell – Phần 6
Tác giả Mak
Năm xuất bản 2008
Định dạng
Số trang 6
Dung lượng 278,19 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kiểm tra SQL Server bằng Windows PowerShell – Phần 6 Phần 6 này sẽ giới thiệu tiếp cho các bạn cách kiểm tra tất cả các cơ sở dữ liệu hiện có trong SQL Server instance và truy vấn các th

Trang 1

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

Phần 6 này sẽ giới thiệu tiếp cho các bạn cách kiểm tra tất cả các

cơ sở dữ liệu hiện có trong SQL Server instance và truy vấn các thuộc tính cơ sở dữ liệu

Bước 1 Đánh hoặc copy và pasta đoạn mã dưới đây vào file C:\CheckSQLServer\Checkdatabases.ps1

function checkdatabases(

[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

$DataSet2 = New-Object System.Data.DataSet

$DataSet3 = New-Object System.Data.DataSet

$DataSet4 = New-Object System.Data.DataSet

$SqlConnection.ConnectionString =

"Server=$servername;Database=master;Integrated Security=True"

$SqlCmd.CommandText = "select name from master.dbo.sysdatabases"

$SqlCmd.Connection = $SqlConnection

$SqlAdapter.SelectCommand = $SqlCmd

$SqlAdapter.Fill($DataSet)|out-null

$dbs =$DataSet.Tables[0]

#$dbs

foreach ($db in $dbs)

{

#$db.name

$SqlCmd.CommandText = $db.name+" sp_spaceused "

$SqlCmd.Connection = $SqlConnection

$SqlAdapter.SelectCommand = $SqlCmd

$SqlAdapter.Fill($DataSet2) |out-null

}

$DataSet2.Tables[0]| format-table -autosize

foreach ($db in $dbs)

{

#$db.name

$SqlCmd.CommandText = "

select '"+$db.name+"' as Dbname,

DATABASEPROPERTY('"+$db.name+"','IsInRecovery') as Inrecovery, DATABASEPROPERTY('"+$db.name+"','IsInLoad') as InLoad,

Trang 2

DATABASEPROPERTY('"+$db.name+"','IsEmergencyMode') as

InEmergency,

DATABASEPROPERTY('"+$db.name+"','IsOffline') as Isoffline,

DATABASEPROPERTY('"+$db.name+"','IsReadOnly') as IsReadonly, DATABASEPROPERTY('"+$db.name+"','IsSingleUser') as IsSingleuser, DATABASEPROPERTY('"+$db.name+"','IsSuspect') as IsSuspect,

DATABASEPROPERTY('"+$db.name+"','IsInStandBy') as IsStandby, DATABASEPROPERTY('"+$db.name+"','Version') as version,

DATABASEPROPERTY('"+$db.name+"','IsTruncLog') as IsTrunclog

"

#$SqlCmd.CommandText

$SqlCmd.Connection = $SqlConnection

$SqlAdapter.SelectCommand = $SqlCmd

$SqlAdapter.Fill($DataSet4) |out-null

}

$DataSet4.Tables[0]| format-table -autosize

$SqlCmd.CommandText = "DBCC SQLPERF(LOGSPACE) WITH NO_INFOMSGS "

$SqlCmd.Connection = $SqlConnection

$SqlAdapter.SelectCommand = $SqlCmd

$SqlAdapter.Fill($DataSet3)|out-null

$DataSet3.Tables[0] | format-table -autosize

$SqlConnection.Close()

}

Bước 2

Gắn vào file C:\CheckSQLServer\CheckSQL_Lib.ps1 đoạn mã sau

./checkdatabases.ps1

Lúc này file C:\CheckSQLServer\CheckSQL_Lib.ps1 sẽ gồm có pinghost, checkservices,

checkhardware, checkOS, checkHD, checknet, checkinstance, Checkconfiguration và

checkdatabases 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

./checkdatabases.ps1

Lưu ý: File CheckSQL_Lib.ps1 sẽ được cập nhật với nguồn dẫn của các kịch bản mới, chẳng hạn như checkdatabases.ps1

Trang 3

Bước 3

Gắn thêm vào file C:\CheckSQLServer\CheckSQLServer.ps1 đoạn mã sau

#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 " "

Trang 4

checkinstance $instancename |format-table

Write-host "Checking SQL Server databases "

Write-host "Checking Database status and size "

Write-host " "

checkdatabases $instancename |format-table

}

Lưu ý: File CheckSQLServer.ps1 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 tiếp theo của loạt bài này

Nguồn dẫn cơ bản sẽ load các hàm đượ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 tôi dấn nguồn một kịch bản, nhưng

kịch bản này lại lấy nguồn từ nhiều kịch bản khác

Bước 4

Lúc này chúng ta hãy thực thi kịch bản CheckSQLServer.ps1 bằng cách sử dụng

“PowerServer3” với tư cách một đối số như thể hiện bên dưới

./CheckSQLServer.ps1 PowerServer3 PowerServer3\SQL2008

Bạn sẽ nhận được các kết quả như thể hiện bên dưới (tham khảo hình 1.0)

Kết quả

database_name database_size unallocated space

- - -

master 5.00 MB 1.28 MB

tempdb 8.75 MB 6.70 MB

model 1.75 MB 0.16 MB

msdb 11.00 MB 0.46 MB

ReportServer$SQL2008 9.38 MB 0.55 MB

ReportServer$SQL2008TempDB 3.00 MB 1.02 MB

AdventureWorksDW2008 71.06 MB 0.00 MB

AdventureWorksLT2008 10.31 MB 3.20 MB

AdventureWorks2008 182.06 MB 0.00 MB

Dbname Inrecovery InLoad InEmergency Isoffline IsReadonly

IsSingleuser I

- - - - - -

- -

master 0 0 0 0 0

0

tempdb 0 0 0 0 0

0

model 0 0 0 0 0

0

msdb 0 0 0 0 0

0

ReportServer$SQL2008 0 0 0 0 0

0

Trang 5

ReportServer$SQL2008TempDB 0 0 0 0 0

0

AdventureWorksDW2008 0 0 0 0 0

0

AdventureWorksLT2008 0 0 0 0 0

0

AdventureWorks2008 0 0 0 0 0

0

test 0 0 1 0

0

Database Name Log Size (MB) Log Space Used (%) Status

- - - -

master 0.9921875 50.3937 0

tempdb 0.7421875 63.68421 0

model 0.4921875 59.52381 0

msdb 0.4921875 61.90476 0

Hình 1.0

Bước 5

Lúc này chúng ta hãy thựcthi kịch bản trên máy tính không tồn tại, xem thể hiện bên dưới

./CheckSQLServer.ps1 TestServer testserver

Các kết quả được thể hiện bên dưới (tham khảo hình 1.1)

Trang 6

Kết quả

Checking SQL Server

Arguments accepted : TestMachine

Pinging the host machine

TestMachine is NOT reachable

Hình 1.1

Kết luận

Đây là phần 6 của lọat bài này Trong phần 6 này chúng tôi đã giới thiệu cho các bạn đươc các truy cập trạng thái của cơ sở dữ liệu và các thông tin kích thước bằng Windows PowerShell  

Ngày đăng: 22/12/2013, 22:16

TỪ KHÓA LIÊN QUAN