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

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

Đ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 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 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. 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 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 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.   . 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. C:CheckSQLServerCheckSQLServer.ps1 bằng cách copy và paste đoạn mã dưới đây. checkservices $Hostname Lúc này file C:CheckSQLServerCheckSQLServer.ps1

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

Từ khóa liên quan

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

Tài liệu liên quan