Cơ sở dữ liệu - Chương 6: Powershell

Cơ sở dữ liệu - Chương 6: Powershell Amdlets thường được gán bí danh, cho phép chạy 1 cmdlet hawchj băng chính tên lệnh hay thông qua các bí danh cảu nó Ví dụ: Để xem nội dung thư mục hiện hành, lệnh powershell là get childltem

pdf93 trang | Chia sẻ: huyhoang44 | Lượt xem: 722 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Cơ sở dữ liệu - Chương 6: Powershell, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GV Phi Loan - Khoa CNTT – HUI 1 GV Phi Loan - Khoa CNTT – HUI Nội dung • Tỏ̂ng quan về Powershell • Window PowerShell • Powershell Script • SQL Server PowerShell – SMO –Provider –Cmdlet 2 GV Phi Loan - Khoa CNTT – HUI Tổng quan về Powershell • PowerShell là môi trường kịch ba ̉n dùng cho nêǹ Microsoft Windows. • Băǹg cách sử dụng Powershell, người qua ̉n trị không cần pha ̉i truy xuất vào môi trường Visual Studio, các chuyên gia IT thích viết script hơn là dùng tools có sẵn của SQL Server – PowerShell cung câṕ việc truy xuât́ đêń hâù hé̂t .NET Framework 3 GV Phi Loan - Khoa CNTT – HUI Tổng quan về Powershell • Có thẻ̂ download miẽ̂n phí PowerShell www.microsoft.com/powershell/ • Powershell được tự động cài đặt khi cài đặt: – Từ SQL Server 2008 trở đi – Từ Windows Server 2008 trở đi (không được cài sẵn trong Windows 2003, Windows XP và Windows Vista) 4 GV Phi Loan - Khoa CNTT – HUI Tại sao nên sử dụng Powershell • Microsoft đã thié̂t ké̂ PowerShell như 1 phần của common engineering criteria (CEC) cho tá̂t cả sản phả̂m server của Microsoft – Các administrator chung của hệ thó̂ng dù không có kiến thức về SQL Server vâñ có thễ hiểu được các script về quản lý tự động SQL Server – Công ty có thể vận hành hiệu quả hơn với ngôn ngữ kịch bản chung này và các nhà quản trị với kỹ năng dùng PowerShell sẽ trở nên đa năng hơn. 5 GV Phi Loan - Khoa CNTT – HUI Cơ bản về Powershell • Như mọi ngôn ngư ̃ khác, PowerShell bao gò̂m: –Commands, variables, functions, flow control methods, and other features necessary to enable work to be done. • Là ngôn ngư ̃ thông dịch (interpreted language) 6 GV Phi Loan - Khoa CNTT – HUI cmdlet (command-let) • Cmdlet là 1 tiện ích dòng lệnh với quy ước đặt tên là verb-noun, nên dễ nhận bié̂t được mõ̂i lệnh dùng đẻ̂ làm gì. • Microsoft cung cấp khoa ̉ng 130 cmdlet trong PowerShell 1.0. –Phiên ba ̉n 2.0 (2009) được bô ̉ sung thêm 1 số cmdlet. 7 GV Phi Loan - Khoa CNTT – HUI Alias của cmdlet • Cmdlets thường được gán bí danh, cho phép chạy 1 cmdlet hoă ̣c bằng chính tên lê ̣nh hay thông qua các bí danh của nó. • Ví dụ: đẻ̂ xem nội dung thư mục hiện hành, lê ̣nh của Powershell là Get-ChildItem, nhưng người dùng DOS quen dùng lệnh dir hơn, người dùng Unix quen dùng lê ̣nh ls hơn. Cả 2 lê ̣nh dir và ls được gán làm alias của lê ̣nh Get-ChildItem của Powershell. 8 GV Phi Loan - Khoa CNTT – HUI Các tính chá̂t của Powershell • Không phân biệt chữ hoa (not case sensitive) • Có kha ̉ năng pipe các đó̂i tượng. –Kết qua ̉ cu ̉a lê ̣nh này là input của lê ̣nh kế tiêṕ –Ví du ̣: get-process | sort-object workingset - descending |select-object -first 10 9 GV Phi Loan - Khoa CNTT – HUI Khởi động Powershell • Có thẻ̂ khởi động theo nhiè̂u cách: – Start ➪ Programs ➪ Windows PowerShell 1.0, cho ̣n Windows PowerShell. – Từ dấu nhắc lệnh của DOS, gõ vào lệnh ‘‘powershell’’ – Dùng lệnh sqlps.exe – Khởi động PowerShell trong SQL server Management studio • Nhận biết môi trường Powershell bằng dấu nhắc lệnh PS> 10 GV Phi Loan - Khoa CNTT – HUI Khai báo biêń • Tên bié̂n phải bắt đâù bằng dâú $ • Kiè̂u dữ liệu của bié̂n được đặt trước tên bié̂n và trong că ̣p [] • Ví dụ: –PS> $counter = 7  biến số nguyên counter có giá trị khởi ta ̣o là 7 –PS> [string] $counter = ‘7’  biến chuỗi counter có giá trị khởi ta ̣o là ‘7’ 11 GV Phi Loan - Khoa CNTT – HUI Khai báo biêń tập hợp • Bié̂n có thẻ̂ chứa 1 đó̂i tượng hay 1 tâ ̣p hợp các đối tượng. • Đẻ̂ ta ̣o biến tâ ̣p hợp, chi ̉ viê ̣c gán 1 danh sách các giá trị cho biến – Ví dụ: PS> $stuff = 1,2,4,6,8  bié̂n $stuff chứa 1 tập hợp các số nguyên • Đẻ̂ truy xuất các phần tử của biến tập hợp dùng chi ̉ số phần tử: – Ví dụ: PS> $stuff[2]  4 12 GV Phi Loan - Khoa CNTT – HUI Biêń tập hợp • PowerShell cung cấp 2 dạng foreach đẻ̂ truy xuât́ các đó̂i tượng của 1 tập hợp. • Dạng 1: PS> $stuff | foreach-object {write-output $_} –Bié̂n $_ dùng đẻ̂ chỉ đối tượng hiện hành • Dạng 2: PS> foreach ($thing in $stuff) {write-output $thing} 13 GV Phi Loan - Khoa CNTT – HUI Toán tử so sánh (Comparition operator) 14 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh Get-Content • Cú pháp: Get-Content ‘path\filename’ • Ý nghĩa: lệnh sẽ đọc tư ̀ng dòng nội dung file • Ứng dụng: thươ ̀ng lệnh này được pipe với 1 bié̂n tập hợp –Ví dụ: $servers = Get-Content ‘servers.txt’ $server| foreach-object {write-output $_} 15 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh Get-Help • Cú pháp: Get-Help • Ý nghĩa: đẻ̂ hỏ̂ trợ bất kz cmdlet • Ví dụ: đẻ̂ xem hỏ̂ trợ của lệnh Get_Help Get-Help Get-Help 16 GV Phi Loan - Khoa CNTT – HUI 17 GV Phi Loan - Khoa CNTT – HUI 18 GV Phi Loan - Khoa CNTT – HUI Ví dụ if ($servers[0].Length -gt 0) { #work } get-service | where-object {$_.Status -eq "Running"} Note - Chú thích bắt đầu bằng k{ hiê ̣u # - Că ̣p ,- đẻ̂ xác định pha ̣m vi thao tác 19 GV Phi Loan - Khoa CNTT – HUI Tạo script • Dùng 1 vài lệnh ngay ta ̣i cửa sỏ̂ lệnh của PowerShell đẻ̂ đánh giá tình tra ̣ng của hệ thó̂ng hay các thông tin khác. Nhưng điẻ̂m ma ̣nh thực sự cu ̉a PowerShell là vié̂t các script. • Có trong tay 1 tâ ̣p hợp các script tó̂t đẻ̂ thực thi các chức quản trị thông thường là dấu hiệu của một nhà quản trị giỏi . 20 GV Phi Loan - Khoa CNTT – HUI File script • PowerShell script tương đương vơ ́i 1 file CMD của Windows hay 1 file batch của MS-DOS. • File có phâǹ mở rộng là.ps1 21 GV Phi Loan - Khoa CNTT – HUI Chạy PowerShell script • Sau khi cài đặt PowerShell, cần phải xác lập chính sách thực thi (Execution Policy) thích hợp • Lệnh Set-ExecutionPolicy cho phép thay đỏ̂i chọn lựa của người dùng đó̂i với chính sách thực thi của shell. 22 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh xác lập chính sách thực thi Set-ExecutionPolicy [-executionPolicy] Policy { Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | Undefined} [[-Scope] ExecutionPolicyScope ] [-Force] [-whatIf][-confirm] [CommonParameters] • Chính sách mă ̣c định là restricted đối với mo ̣i người dùng của máy tính 23 GV Phi Loan - Khoa CNTT – HUI Ví dụ • Đẻ̂ xác lâ ̣p chính sách thực thi shell của ngươ ̀i dùng là RemoteSigned và sau đó hiẻ̂n thị chính sách thực thi hiện có PS C:\> set-executionpolicy remotesigned; get-executionPolicy 24 GV Phi Loan - Khoa CNTT – HUI Chạy PowerShell script • Có 2 cách đẻ̂ chạy 1 script của PowerShell • Cách 1 (default): gọi file script băǹg toán tử call (&) –Biến và hàm của script sẽ bị xóa khi script kêt́ thúc • Cách 2: dùng dot source (.) file script –Biến và hàm vẫn tiếp tục tồn ta ̣i khi script ké̂t thúc 25 GV Phi Loan - Khoa CNTT – HUI Cách 1: cha ̣y file script PS C:\> & "C:\script\My first Script.ps1" • Né̂u đươ ̀ng dâñ không có khoa ̉ng trăńg, có thẻ̂ bỏ qua “” và toán tử & PS C:\> C:\script\Myscript.ps1 • Né̂u script nằm trong thư mục hiện hành, phải chỉ rõ thư mục này .\ (hay ./) PS C:\> .\Myscript.ps1 26 GV Phi Loan - Khoa CNTT – HUI Cách 2: cha ̣y file script PS C:\> . "C:\script\My first Script.ps1" • Né̂u chạy 1 file script trong thư mục hiện hành PS C:\> . .\Myscript.ps1" 27 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh Get-WMIObject • Windows Management Instrumentation (WMI) cung câṕ thông tin về các server vật l{ mà trên đó SQL Server đang chạy thông qua các truy vâń (queries) • Lệnh Get-WMIObject ( có alias là gwmi) cung câṕ thông tin của WMI. 28 GV Phi Loan - Khoa CNTT – HUI File getsysinfo.ps1 29 GV Phi Loan - Khoa CNTT – HUI Khai báo hàm • Dạng 1: Function MyFunction ($param) { #work } • Dạng 2: Function MyFunction { param ( [int]$x = 7, [int]$y = 9 ) #work } • Sử dụng khó̂i param đẻ̂ khai báo các tham số bên trong hàm 30 GV Phi Loan - Khoa CNTT – HUI Tạo PowerShell profile • Profile sẽ nạp tự động SMO vào PowerShell lúc khởi động. • Đẻ̂ kiẻ̂m tra xem đã có profile chưa Test-Path $profile Tra ̉ về true né̂u đã có profile • Đẻ̂ kiẻ̂m tra đươ ̀ng dâñ nơi chư ́a profile.ps1 $profile 31 GV Phi Loan - Khoa CNTT – HUI Tạo PowerShell profile • Thường nơi chư ́a profile là: C:\Users\Phi Loan\Documents\WindowsPowerShell • Tên file mặc định là: Microsoft.PowerShell_profile.ps1 32 GV Phi Loan - Khoa CNTT – HUI SQL SERVER POWERSHELL 33 GV Phi Loan - Khoa CNTT – HUI SQL Server 2012 supports Windows PowerShell, which is a powerful scripting shell that lets administrators and developers automate server administration and application deployment 34 GV Phi Loan - Khoa CNTT – HUI Các thành phà̂n cu ̉a SQL Server Powershell • SQL Server cung cấp 1 module về Windows PowerShell có tên sqlps. • Sqlps nạp các thành phâǹ của SQL Server vào môi trường Windows PowerShell 2.0. 35 GV Phi Loan - Khoa CNTT – HUI Các thành phà̂n cu ̉a SQL Server Powershell • sqlps sẽ nạp 2 snap-in vào PowerShell: – SQL Server provider – Set of cmdlets • Và nạp ca ̉ SQL Server Management Object (SMO) assemblies được dùng bởi provider và cmdlets 36 GV Phi Loan - Khoa CNTT – HUI Chạy SQL Server PowerShell • Cách 1: chạy Windows PowerShell, rò̂i nạp sqlps • Cách 2: khởi động instance, nhấp phải và cho ̣n lệnh Start PowerShell 37 GV Phi Loan - Khoa CNTT – HUI Nạp sqlps vào Windows PowerShell • Dùng lệnh Set-ExecutionPolicy cmdlet đẻ̂ đặt execution policy các script là remotedSigned • Dùng lệnh Import-Module cmdlet đẻ̂ nạp sqlps Import-Module “sqlps” -DisableNameChecking 38 GV Phi Loan - Khoa CNTT – HUI SQL Server Management Objects (SMO) • SMO là các đó̂i tượng giúp quản l{ Microsoft SQL theo kiẻ̂u lập trình (programmatic way) 39 GV Phi Loan - Khoa CNTT – HUI Các đối tượng SMO • Đôí tượng cơ ba ̉n là Server, việc quản l{ server sẽ bắt đâù khi đó̂i tượng Server ké̂t nó̂i đêń 1 server. • Các đó̂i tượng SMO được dùng đẻ̂ quản l{ các CSDL của ngươ ̀i dùng. 40 GV Phi Loan - Khoa CNTT – HUI 41 GV Phi Loan - Khoa CNTT – HUI SqlConnection 42 GV Phi Loan - Khoa CNTT – HUI Ví du ̣: script đê ̉ xuà̂t ra 25 ngươ ̀i trong bảng Person #employeeextract.ps1 $cn = new-object system.data.SqlClient.SqlConnection("Data Source=PHILOAN\PL1; Integrated Security=SSPI;Initial Catalog=AdventureWorks2008"); $ds = new-object "System.Data.DataSet" "dsPersonData" $q = "SELECT TOP 25 [Title]" $q = $q + " ,[FirstName]" $q = $q + " ,[LastName]" $q = $q + " FROM [AdventureWorks2008].[Person].[Person]" $da = new-object "System.Data.SqlClient.SqlDataAdapter" ($q, $cn) $da.Fill($ds) $dtPerson = new-object "System.Data.DataTable" "dtPersonData" $dtPerson = $ds.Tables[0] $dtPerson | FOREACH-OBJECT { [string]$_.Title + ": " + $_.FirstName + ", " + $_.LastName } 43 GV Phi Loan - Khoa CNTT – HUI Scripting SQL Server Tasks • Administrators có thẻ̂ ta ̣o 2 loại script cơ bản: –administrative tasks: thực hiê ̣n các chức quản trị thông thường –data-based tasks. 44 GV Phi Loan - Khoa CNTT – HUI Nhiệm vụ quản trị • Nhiệm vụ quan tro ̣ng nhất là backup CSDL. • Đẻ̂ biết nơi chư ́a các file backup, không thê ̉ dùng lê ̣nh Transact-SQL nhưng có thê ̉ dễ dàng sử dụng thuô ̣c tính BackupDirectory tư ̀ tâ ̣p hợp Settings của server. 45 GV Phi Loan - Khoa CNTT – HUI SMO backup properties and methods 46 GV Phi Loan - Khoa CNTT – HUI 47 GV Phi Loan - Khoa CNTT – HUI Nhiệm vụ về dữ liệu • Tuy cách tó̂t nhất đẻ̂ ta ̣o và sửa đỏ̂i các bảng trong SQL Server là dùng các lệnh Transact-SQL, nhưng trong 1 số trường hợp câǹ nhúng việc ta ̣o và chỉnh sửa bảng này vào 1 ư ́ng dụng thì việc dùng script của powerShell la ̣i trở nên thuận tiện hơn. 48 GV Phi Loan - Khoa CNTT – HUI SMO Database Table, Index, and Foreign Key objects 49 GV Phi Loan - Khoa CNTT – HUI SMO Database Table, Index, and Foreign Key objects (tt) 50 GV Phi Loan - Khoa CNTT – HUI Ví dụ: ý nghĩa mỗi lệnh PS> $s = new-object (’Microsoft.SqlServer.Management.Smo.Server’) ‘PHILOAN\PL1’ PS> $db = $s.Databases["AdventureWorks2008"] PS>$db PS> $tb= $db.tables PS>$tb | foreach –object {write-output $_.name} PS> $t1 = $tb*“ErrorLog”+ PS> $t1 51 GV Phi Loan - Khoa CNTT – HUI Ví dụ • Gia ̉ sử AdventureWorks vừa tié̂p qua ̉n 1 công ty khác. Nhân viên của công ty này cần được nhâ ̣p vào ư ́ng dụng qua ̉n l{ nhân sự HR của AdventureWorks, nhưng các mục dữ liê ̣u chính tư ̀ các ba ̉n ghi của công ty cũ cần được giư ̃ lại trong 1 thời gian ngắn đẻ̂ tham khảo.  Cần ta ̣o 2 ba ̉ng dư ̃ liê ̣u mới. 52 GV Phi Loan - Khoa CNTT – HUI Ví dụ • Ba ̉ng 1: có tên là AcquisitionCompany, chứa tên và ngày được tié̂p qua ̉n, cùng với CompanyID • Ba ̉ng 2: có tên là AcquisitionEmployee, chứa employee ID cũ của nhân viên, ngày bắt đầu làm, số giờ còn được phép nghĩ trong năm, + 1 cột chỉ ra nhân viên có nhận được phần thưởng Star Employee hay không? + 1 cô ̣t tham chié̂u đêń ba ̉ng AcquisitionCompany. • Ca ̉ hai bảng đêù thuô ̣c schema HumanResources 53 GV Phi Loan - Khoa CNTT – HUI 54 GV Phi Loan - Khoa CNTT – HUI 55 GV Phi Loan - Khoa CNTT – HUI 56 GV Phi Loan - Khoa CNTT – HUI 57 GV Phi Loan - Khoa CNTT – HUI 58 GV Phi Loan - Khoa CNTT – HUI 59 GV Phi Loan - Khoa CNTT – HUI 60 GV Phi Loan - Khoa CNTT – HUI Ví dụ • Sử dụng CSDL AdventureWorks2008 đẻ̂ xuất ra thông tin nhân viên từng phòng và lưu vào file vâ ̣t l{ cho mõ̂i phòng, mõ̂i cột phân cách nhau dâú phâỳ. • Phương thức ExecuteReader trả về đó̂i tượng DataReader và mõ̂i cột được khôi phục băǹg phương thức GetValue. (page 200) 61 GV Phi Loan - Khoa CNTT – HUI SMO scripting objects • Trong lúc ta ̣o hay làm việc với các đó̂i tượng trong SMO, các đó̂i tượng này có thẻ̂ được script đẻ̂ lưu trữ và sử dụng la ̣i sau đó. 62 GV Phi Loan - Khoa CNTT – HUI 63 SMO scripting objects GV Phi Loan - Khoa CNTT – HUI Các tùy chọn của scripter • Server: cho phép đôí tượng Scripter nối đến server. • ScriptDrops: xác định script có chư ́a lệnh DROP hay CREATE đôí tượng hay không. Né̂u tùy cho ̣n là true, script sẽ chứa lệnh DROP cho từng đối tượng, nhưng tùy cho ̣n là false sẽ làm cho scripter phát ra lệnh CREATE các đối tượng. • WithDependencies : né̂u là true, sẽ làm cho các đối tượng được script theo thư ́ tự tương ư ́ng vơ ́i sự phụ thuô ̣c của 1 đối tượng này vơ ́i 1 đối tượng khác. • FileName: chư ́a đươ ̀ng dẫn đâỳ đủ của file ké̂t quả. 64 GV Phi Loan - Khoa CNTT – HUI Các tùy chọn của scripter (tt) • IncludeHeaders: né̂u là true, sẽ chứa comment chi ̉ ra tên của đối tượng và thời điê ̉m đối tượng được ta ̣o • AppendToFile: né̂u là đúng thì sẽ chép vào cuối, nếu là false thì sẽ chép đè vào file có săñ • Mă ̣c định kết quả script sẽ gửi kết qua ̉ ra console, nêú ToFileOnly là true, thì kết qua ̉ sẽ gửi vào file 65 GV Phi Loan - Khoa CNTT – HUI Các tùy chọn của scripter (tt) • ClusteredIndexes: né̂u là True sẽ đưa chỉ mục clustered của bảng vào script • Indexes: né̂u là True sẽ cho phép đưa các chỉ mục non-clustered vào script • DriAll: né̂u là True sẽ đưa tất ca ̉ các đó̂i tượng được khai báo bảo toàn tham chié̂u (referential integrity) sẽ được đưa vào script. 66 GV Phi Loan - Khoa CNTT – HUI Provider • Provider là tập hợp các tool được thiết kế đê ̉ dễ dàng truy xuá̂t vào dữ liệu. • Để kết hợp với SQL Server, provider ta ̣o săñ 1 ỏ̂ đĩa PowerShell ké̂t nó̂i trực tié̂p với SQL Server, và 1 tập cmdlets đẻ̂ tương tác với SQL Server từ PowerShell. 67 GV Phi Loan - Khoa CNTT – HUI SQL Server PowerShell Provider • Provider tạo 1 phân câṕ (hierarchy) cho các đó̂i tượng của SQL Server dươ ́i dạng các path ( như path của các file hệ thó̂ng) –Cho phép user sử dụng path đê ̉ chuyê ̉n đêń các đối tượng và dùng các phương thư ́c của mô hình SMO đê ̉ thực thi các action trên các đối tượng. 68 GV Phi Loan - Khoa CNTT – HUI Lợi ích cu ̉a SQL Server PowerShell Provider • Thông qua path dễ dàng tương tác vơ ́i các đó̂i tượng của instance. –Cho phép sử dụng các lệnh vié̂t tắt (alias) tương tự các lệnh trong cửa sỏ̂ lê ̣nh DOS như cd, dir, 69 GV Phi Loan - Khoa CNTT – HUI Nhiệm vụ của Provider • Dùng các lệnh cmdlets đẻ̂ chuyẻ̂n đêń cac node trong 1 path, và nhận danh mục các đó̂i tượng ta ̣i mõ̂i node. • Dùng các method và property của SMO đẻ̂ báo cáo và thực hiện công việc trên các node trong path. 70 GV Phi Loan - Khoa CNTT – HUI Nhiệm vụ của Provider • Describes how to convert a SMO Uniform Resource Name (URN) to a SQL Server provider path. • Describes how to open SQL Server Authentication connections by using the SQL Server provider. By default, the provider uses Windows Authentication connections made using the credentials of the Windows account running the Windows PowerShell session 71 GV Phi Loan - Khoa CNTT – HUI Navigate SQL Server PowerShell Paths • Provider biẻ̂u diẽ̂n 1 tập các đó̂i tượng trong 1 instance theo câú trúc tương tự như file path –Có thê ̉ chuyê ̉n đô ̉i qua la ̣i giữa các path. – Ta ̣o mới 1 ô ̉ đĩa thay cho 1 path dài dòng. 72 GV Phi Loan - Khoa CNTT – HUI SQL Server provider implements a subset of the provider cmdlets 73 GV Phi Loan - Khoa CNTT – HUI Ví dụ ## Tra ̉ vè̂ tên hiện hành và các máy tính khác có kêt́ nối SQL hay WMI Set-Location SQLSERVER:\SQL Get-ChildItem ## Liê ̣t kê các instances của Database Engine trên máy tính Set-Location SQLSERVER:\SQL\localhost Get-ChildItem 74 GV Phi Loan - Khoa CNTT – HUI Ví dụ ## Liệt kê các các đôí tượng trong default instance của máy tính Set-Location SQLSERVER:\SQL\localhost\DEFAULT Get-ChildItem ## Liệt kê các DB trong default instance. Dùng -force đẻ̂ bao gôm̀ cả DB hệ thôńg Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases Get-ChildItem -force 75 GV Phi Loan - Khoa CNTT – HUI Ví dụ • Đẻ̂ xem danh mục các ba ̉ng trong AdventureWorks2008 Set-Location SQLSERVER:\SQL\localhost\PL1\Databases Get-ChildItem tables • Đẻ̂ xem danh sách các cột trong bảng Product.Product • Get-ChildItem tables\Production.Product\Columns 76 GV Phi Loan - Khoa CNTT – HUI Tạo ổ đĩa tùy chọn New-PSDrive [-Name] [-PSProvider] [-Root] [-Description [Scope ] -PSProvider có các giá tri ̣ là FileSystem, Registry 77 GV Phi Loan - Khoa CNTT – HUI Ví dụ Tạo ổ đĩa tùy chọn New-PSDrive -Name Z –psprovider systemfile -Root SQLSERVER:\SQL\localhost \PL1\Databases\ AdventureWorks2008 Set-Location Z:\Tables\Purchasing.Vendor 78 GV Phi Loan - Khoa CNTT – HUI Làm việc với Path node • Hai loại action: –Chạy các lê ̣nh Windows PowerShell cmdlet. –Go ̣i các method tùy theo đôí tượng. Ví du ̣ nêú đang ở 1 node là Database, có thê ̉ dùng các method và property của lớp Database • PowerShell đẻ̂ quản l{ các đó̂i tượng trong instance, không dùng đẻ̂ làm việc với dữ liệu trong database 79 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh get-member • Xem các method và property của đó̂i tượng • Ví dụ $MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database $MyDBVar | Get-Member –Type Methods $MyDBVar | Get-Member -Type Properties 80 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh get-item Get-item [-LiteralPath] [-Exclude ] [-Include ] [-Force] Liệt kê các item ở vị trí xác định 81 GV Phi Loan - Khoa CNTT – HUI Ví dụ Lệnh get-item • Get-item . • Get-item * • Get-item c:\ • .LastAccessTime • Get-item c:\Windows\* -include *.* - exclude w* 82 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh get-item • Liệt kê các thuộc tính của collection database Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases Get-Item . | Get-Member -Type Properties • Liê ̣t kê các thuô ̣c tính của đối tượng Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\Adven tureWorks2008 Get-Item . | Get-Member -Type Properties 83 GV Phi Loan - Khoa CNTT – HUI Sử du ̣ng các SMO method và property • Xem danh mục các bảng trong schema Sales cd SQLSERVER:\SQL\localhost\PL1\Databases \adventureworks2008 cd tables dir| where {$_.schema –eq “Sales”} 84 GV Phi Loan - Khoa CNTT – HUI Ổ đĩa PSDrive – SQLSERVER • PowerShell cung cấp kha ̉ năng qua ̉n l{ (navigate) không chỉ hê ̣ thống file trên đĩa mà ca ̉ registry cu ̉a hê ̣ thống như thê ̉ nó chỉ là 1 hê ̣ thống file. • SQL Server provider bô ̉ sung 1 ô ̉ đĩa PSDrive mới được gọi là SQLSERVER: • Lê ̣nh Set-Location( alias là cd) được dùng thay đỏ̂i thư mục trong ô ̉ đĩa SQLSERVER: và SQL Server có thê ̉ được qua ̉n l{ như hê ̣ thống file. 85 GV Phi Loan - Khoa CNTT – HUI Ổ đĩa PSDrive – SQLSERVER • Bó̂n thư mục chính trong ỏ̂ đĩa SQLSERVER: – SQL: cung cấp việc truy xuất đêń database engine, SQL Server Agent, Service Broker, Database Mail, .. – SQLPolicy: cung cấp việc truy xuất đêń policy- based management – SQLRegistration: cung cấp việc truy xuât́ đêń Registered Servers – DataCollection: cho phép truy xuất đêń các đối tượng Data Collector qua ̉n l{ Data Warehouse 86 GV Phi Loan - Khoa CNTT – HUI Database Engine cmdlets • Các lệnh dùng cho DB Engine chu ̉ yé̂u đẻ̂ cha ̣y các script T-SQL có sẵn tư ̀ script mới của PowerShel, đánh giá các chính sách qua ̉n l{ (management policies) 87 GV Phi Loan - Khoa CNTT – HUI Lê ̣nh Invoke-Sqlcmd • Dùng đẻ̂ chạy các script chứa các lệnh Transact-SQL được hỏ̂ trợ bởi tiện ích sqlcmd –Các lê ̣nh nào mà sqlcmd cha ̣y được thì Invoke-Sqlcmd cha ̣y được 88 GV Phi Loan - Khoa CNTT – HUI 89 GV Phi Loan - Khoa CNTT – HUI Ví dụ lệnh Invoke-Sqlcmd Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance “PhiLoan\PL1“ Invoke-Sqlcmd -InputFile "C:\MyFolder\TestSQLCmd.sql" |Out-File -filePath C:\MyFolder\TestSQLCmd.rpt" 90 GV Phi Loan - Khoa CNTT – HUI Run Windows PowerShell Steps in SQL Server Agent • Script của Windows PowerShell có thẻ̂ cha ̣y ở 1 job step trong SQL Server Agent băǹg 1 trong 2 cách sau: – Ta ̣o PowerShell Job Step – Ta ̣o Command Prompt Job Step 91 GV Phi Loan - Khoa CNTT – HUI Tạo PowerShell Job Step • Trong hộp thoại New Job Step dialog trong SQL Server Agent. • Cho ̣n Type là PowerShell. • Trong hộp Run as cho ̣n service account. • Trong hộp Command, nhập cú pháp chạy PowerShell script hoặc nhấp nút open đè̂ cho ̣n 1 file chưa cú pháp của script 92 GV Phi Loan - Khoa CNTT – HUI Tạo Command Prompt Job Step • Trong hộp thoại New Job Step, cho ̣n Type là Operating system (CmdExec). • Trong hộp Run as cho ̣n service account • Trong hộp Process exit code of a successful gõ vào giá trị 0 đêń 999999. • Trong hộp Command, gõ vào powershell.exe với tham số thích hợp đẻ̂ xác định PowerShell script nào sẽ chạy. 93

Các file đính kèm theo tài liệu này:

  • pdfchuong_6_ktcd_dbms_0824.pdf