Kiểm tra SQL Server bằng Windows PowerShell pdf

46 278 0
Kiểm tra SQL Server bằng Windows PowerShell pdf

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Kiểm tra SQL Server bằng Windows PowerShell – Phần 1 Loạt bài này chúng tôi sẽ giới thiệu cho các bạn về các phương pháp và các thủ tục để kiểm tra trạng thái hiện hành của hệ điều hành, các trường hợp của SQL Server và cơ sở dữ liệu,… bằng Windows PowerShell. Thay vì sử dụng Vbscript, các file bat, hay các thực thi sql client,… chúng tôi sẽ giới thiệu cho các bạn về sức mạnh bên của Windows PowerShell trong vấn đề kiểm tra trạng thái của SQL Servers. Các điều kiện tiên quyết • Cài đặt .Net 2.0 • Trên máy khách, bạn cần cài đặt Windows PowerShell 1.0. • Đăng nhập của bạn cần có quyền tạo các thư mục và file trong máy khách. Trước khi đi vào kiểm tra thực SQL Server, chúng tôi muốn giới thiệu một chút nền tảng và xây dựng các thư mục, thư viện,… Phần cuối của loạt bài này, sẽ có một thư viện Powershell với nhiều hàm được dùng làm nguồn cho bất kỳ kịch bản PowerShell nào. Một , nhiều hoặc tất cả các hàm này đều có thể được gọi từ bất kỳ kịch bản PowerShell nào khi thư viện được dùng làm nguồn. Bước 1 Khởi chạy Windows PowerShell bằng cách thực thi lệnh bên dưới (Hình 1.0) %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe Hình 1.0: Khởi chạy PowerShell Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Bước 2 Hãy tạo một thư mục bằng cách sử dụng lệnh PowerShell bên dưới. Thư mục này sẽ được dùng chuyên dụng cho các kịch bản, các thư viện và các hàm của PowerShell có liên quan đến việc kiểm tra SQL Server. Thực thi lệnh được cho bên dưới (xem hình 1.1) New-Item -Path C:\ -Name CheckSQLServer -Type directory Bạn có thể thấy kết quả của việc thực hiện lệnh bên dưới. Về cơ bản, thư mục CheckSQLServer đã được tạo thành công. Hình 1.1 Tạo thư mục mới Bước 3 Hãy điều hướng đến thư mục CheckSQLServer và sau đó tạo các file khác bằng lệnh PowerShell sau (xem trong hình 1.3) set-location C:\CheckSQLServer Notepad CheckSQL_Lib.ps1 Notepad CheckSQLServer.ps1 Notepad Pinghost.ps1 Bạn có thể thấy rằng vị trí được thay đổi thành C:\CheckSQLServer và cũng đã mở ba cửa sổ notepad để có thể soạn thảo các file CheckSQL_Lib.sql, CheckSQLServer.Ps1 và PingHost.ps1. Hình 1.2: Tạo kịch bản và thư vịện PowerShell Lưu ý: Notepad là một trình soạn thảo mà chúng tôi sử dụng cho việc soạn thảo các kịch bản PowerShell. Bạn hòan toàn có thể tùy chọn các trình soạn thảo khác ưa thích đối với cá nhân bạn. Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Bước 4 Đánh hoặc copy/paste đoạn mã sau vào trình soạn thảo notepad đã mở PingHost.ps1 như dưới đây (xem hình 1.3) Function Pinghost ([string] $Hostname ) { $status=get-wmiobject win32_pingstatus -Filter "Address='$Hostname'" | Select-Object statuscode if($status.statuscode -eq 0) {write-host $Hostname is REACHABLE -background "GREEN" -foreground "BLACk"} else {write-host $Hostname is NOT reachable -background "RED" -foreground "BLACk"} } Hình 1.3: File kịch bản PingHost.ps1 Lưu file Pinghost.ps1 và thoát khỏi notepad. Bước 5 Đánh hoặc copy/paste đoạn mã sau vào trình soạn thảo notepad đã mở CheckSQL_Lib.ps1 như dưới đây (xem hình 1.4) #Source all the functions relate to CheckSQL . ./PingHost.ps1 Hình 1.4: CheckSQL_Lib.ps1 Lưu file CheckSQL_Lib.ps1 và thoát khỏi notepad. Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Lưu ý: CheckSQL_Lib.ps1 này sẽ được cập nhật với nguồn của các kịch bản mới như PingHost.PS1 Về cơ bản nguồ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ộ session của PowerShell. Bước 6 Đánh hoặc copy/paste đoạn mã sau vào trình soạn thảo notepad đã mở CheckSQLServer.ps1 như dưới đây (xem hình 1.5) #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 PingHost $Hostname Hình 1.5: CheckSQLServer.ps1 Lưu file CheckSQLServer.ps1 và thoát khỏi notepad 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ố trong các phần sau của loạt bài này. Nguồn sẽ 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 toàn bộ session PowerShell. Trong trường hợp này, chúng tôi sẽ lấy nguồn một kịch bản có sử dụng nhiều nguồn từ các kịch bản khác. Bước 7 Thực thi CheckSQLServer.ps1 như dưới đây (xem hình 1.6) Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com ./CheckSQLServer.ps1 PowerMachine ./CheckSQLServer.ps1 TestServer Chúng ta sẽ thấy các kết quả, dựa vào đó bạn sẽ biết được máy tính đó có khả năng ping hay không. Nếu máy đó có thể thăm dò bằng cách ping, thì thông báo sẽ được đánh dấu màu xanh còn không sẽ được đánh dấu màu đỏ. Hình 1.6: Ping máy chủ Mặc định, các kịch bản PowerShell không thể được thực thi trên máy nếu bạn sử dụng nó lần đầu tiên. Nếu bạn gặp phải thông báo lỗi dưới đây như thể hiện trong hình 1.7, hãy thực thi lệnh để kích hoạt sự thực thi kịch bản không bị hạn chế của PowerShell. Hình 1.7: Lỗi trong quá trình thực thi kịch bản PowerShell set-executionpolicy unrestricted Lưu ý: Bạn không phải thực thi lệnh trên nhiều lần mà chỉ thực thi một lần. Bạn có thể kiểm tra chính sách thực thi của cấu hình PowerShell hiện hành bằng cách thực thi lệnh dưới đây (xem thể hiện trong hình 1.8) get-executionpolicy Hình 1.8: Chính sách thực thi Kết luận Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Đây là phần đầu tiên của loạt bài này. Phần đầu tiên này đã giới thiệu được cho các bạn về cách tạo một kịch bản PowerShell để ping đến một máy chủ. Trong đó nó cũng giới thiệu cách sử dụng nguồn hàm PowerShell và cách gọi hàm. Trong các phần sau của loạt bài này, chúng tôi sẽ tiếp tục đi sâu hơn nữa về các tính năng khác của Windows PowerShell trong việc kiểmt ra trạng thái của SQL Server.  Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 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. Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com [...]... và card mạng bằng Windows PowerShell và WMI-Object   Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 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... Host=PowerServer2 MSSQLSERVER Running OK True \Administrator Host=PowerServer2 MSSQLServerADHelper100 Stopped OK False NT AUTHORITY\NETWORK SERVICE Host=PowerServer2 MSSQLServerOLAPService Stopped OK False \Administrator Host=PowerServer2 SQLBrowser Stopped OK False NT AUTHORITY\LOCAL SERVICE Host=PowerServer2 SQLSERVERAGENT Stopped OK False \Administrator Host=PowerServer2 SQLWriter Stopped... 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   Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 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ơ... 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   Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Kiểm tra SQL Server bằng Windows PowerShell – Phần 3 Phần trước của loạt bài này đã giới thiệu cho các bạn kiểm tra đầu tiên về SQL Server cách ping một host Trong phần 2 là giới thiệu về cách kiểm tra. .. Host=PowerServer2 MSSQLSERVER Running OK True \Administrator Host=PowerServer2 MSSQLServerADHelper100 Stopped OK False NT AUTHORITY\NETWORK SERVICE Host=PowerServer2 MSSQLServerOLAPService Stopped OK False \Administrator Host=PowerServer2 SQLBrowser Stopped OK False NT AUTHORITY\LOCAL SERVICE Host=PowerServer2 SQLSERVERAGENT Stopped OK False \Administrator Host=PowerServer2 SQLWriter Stopped OK False LocalSystem... 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... bản, CheckSQLServer.ps1 bằng cách passing “Powerpc” host với tư cách một đối số như thể hiện bên dưới ./CheckSQLServer.ps1 PowerServer2 Khi đó kết quả cho ra sẽ như sau (tham khảo hình 1.0) Checking SQL Server Arguments accepted : PowerServer2 Pinging the host machine PowerServer2 is REACHABLE Checking windows services on the host related to SQL Server Host=PowerServer2 MSSQLSERVER Running... $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... http://www.simpopdf.com Chúng ta hãy thực thi kịch bản CheckSQLServer.ps1 bằng cách passing “Powerpc” host như một đối số, xem thể hiện dưới đây ./CheckSQLServer.ps1 PowerServer2 Các kết quả bạn thu được như thể hiện bên dưới (tham khảo hình 1.0) Checking SQL Server Arguments accepted : PowerServer2 Pinging the host machine PowerServer2 is REACHABLE Checking windows services on the host related to SQL Server. .. " #$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() . Version - http://www.simpopdf.com Kiểm tra SQL Server bằng Windows PowerShell – Phần 3 Phần trước của loạt bài này đã giới thiệu cho các bạn kiểm tra đầu tiên về SQL Server cách ping một host đến thư mục CheckSQLServer và sau đó tạo các file khác bằng lệnh PowerShell sau (xem trong hình 1.3) set-location C:CheckSQLServer Notepad CheckSQL_Lib.ps1 Notepad CheckSQLServer.ps1 Notepad. kiểmt ra trạng thái của SQL Server.  Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Kiểm tra SQL Server bằng Windows PowerShell – Phần 2 Phần 1 của loạt bài này

Ngày đăng: 27/06/2014, 06:20

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan