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 2 docx

5 394 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 2
Tác giả Mak
Thể loại Bài viết
Năm xuất bản 2008
Định dạng
Số trang 5
Dung lượng 213,46 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 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

Trang 1

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

Trang 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

Trang 3

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

Trang 4

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

Trang 5

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

 

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

TỪ KHÓA LIÊN QUAN