GV Phi Loan - Khoa CNTT – HUI
1
Nội dung
• Tổng quan về Powershell • Window PowerShell • Powershell Script • SQL Server PowerShell
– SMO – Provider – Cmdlet
GV Phi Loan - Khoa CNTT – HUI
2
Tổng quan về Powershell
• PowerShell là môi trường kịch bản dùng cho
nền Microsoft Windows.
• Bằng cách sử dụng Powershell, người quản trị không cần phả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ấp việc truy xuất đến hầu hết
.NET Framework
GV Phi Loan - Khoa CNTT – HUI
3
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)
GV Phi Loan - Khoa CNTT – HUI
4
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ẫn 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.
GV Phi Loan - Khoa CNTT – HUI
5
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)
GV Phi Loan - Khoa CNTT – HUI
6
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 khoảng 130 cmdlet
trong PowerShell 1.0. – Phiên bản 2.0 (2009) được bổ sung thêm 1
số cmdlet.
GV Phi Loan - Khoa CNTT – HUI
7
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.
GV Phi Loan - Khoa CNTT – HUI
8
Các tính chất của Powershell
• Không phân biệt chữ hoa (not case
sensitive)
• Có khả năng pipe các đối tượng.
– Kết quả của lệnh này là input của lệnh kế
tiếp – Ví dụ:
get-process | sort-object workingset - descending |select-object -first 10
GV Phi Loan - Khoa CNTT – HUI
9
Khởi động Powershell • Có thể khởi động theo nhiều cách:
– Start ➪ Programs ➪ Windows PowerShell
1.0, chọ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>
GV Phi Loan - Khoa CNTT – HUI
10
Khai báo biến
• Tên biến phải bắt đầu bằng dấu $ • 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 tạo là 7
– PS> [string] $counter = ‘7’ biến chuỗi
counter có giá trị khởi tạo là ‘7’
GV Phi Loan - Khoa CNTT – HUI
11
Khai báo biến 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.
• Để tạo biến tập hợp, chỉ 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 chỉ số phần tử: – Ví dụ: PS> $stuff[2] 4
GV Phi Loan - Khoa CNTT – HUI
12
Biến 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}
GV Phi Loan - Khoa CNTT – HUI
13
Toán tử so sánh (Comparition operator)
GV Phi Loan - Khoa CNTT – HUI
14
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 $_}
GV Phi Loan - Khoa CNTT – HUI
15
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
GV Phi Loan - Khoa CNTT – HUI
16
GV Phi Loan - Khoa CNTT – HUI
17
GV Phi Loan - Khoa CNTT – HUI
18
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 phạm vi thao tác
GV Phi Loan - Khoa CNTT – HUI
19
Tạo script
• Dùng 1 vài lệnh ngay tại cửa sổ lệnh của PowerShell để đánh giá tình trạng của hệ thống hay các thông tin khác. Nhưng điểm mạnh thực sự củ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 .
GV Phi Loan - Khoa CNTT – HUI
20
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ần mở rộng là.ps1
GV Phi Loan - Khoa CNTT – HUI
21
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.
GV Phi Loan - Khoa CNTT – HUI
22
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 mọi
người dùng của máy tính
GV Phi Loan - Khoa CNTT – HUI
23
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
GV Phi Loan - Khoa CNTT – HUI
24
Chạy PowerShell script
• Có 2 cách để chạy 1 script của PowerShell • Cách 1 (default): gọi file script bằng 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 tại khi script
kết thúc
GV Phi Loan - Khoa CNTT – HUI
25
Cách 1: chạy file script
PS C:\> & "C:\script\My first Script.ps1" • Nếu đường dẫn không có khoảng trắng,
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
GV Phi Loan - Khoa CNTT – HUI
26
Cách 2: chạ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"
GV Phi Loan - Khoa CNTT – HUI
27
Lệnh Get-WMIObject
• Windows Management Instrumentation (WMI) cung cấp 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ấn (queries)
• Lệnh Get-WMIObject ( có alias là gwmi)
cung cấp thông tin của WMI.
GV Phi Loan - Khoa CNTT – HUI
28
File getsysinfo.ps1
GV Phi Loan - Khoa CNTT – HUI
29
Khai báo hàm
• Dạng 1:
• Dạng 2:
Function MyFunction
Function MyFunction { param (
($param) { #work
}
[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
GV Phi Loan - Khoa CNTT – HUI
30
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 Trả về true nếu đã có profile • Để kiểm tra đường dẫn nơi chứa
profile.ps1
$profile
GV Phi Loan - Khoa CNTT – HUI
31
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
GV Phi Loan - Khoa CNTT – HUI
32
SQL SERVER POWERSHELL
GV Phi Loan - Khoa CNTT – HUI
33
SQL Server 2012 supports Windows PowerShell, which is a powerful scripting shell that lets administrators and developers automate server administration and application deployment
GV Phi Loan - Khoa CNTT – HUI
34
Các thành phần củ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ần của SQL Server vào môi trường Windows PowerShell 2.0.
GV Phi Loan - Khoa CNTT – HUI
35
Các thành phần của SQL Server Powershell
• sqlps sẽ nạp 2 snap-in vào PowerShell:
– SQL Server provider – Set of cmdlets
• Và nạp cả SQL Server Management
Object (SMO) assemblies được dùng bởi provider và cmdlets
GV Phi Loan - Khoa CNTT – HUI
36
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à
chọn lệnh Start PowerShell
GV Phi Loan - Khoa CNTT – HUI
37
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
GV Phi Loan - Khoa CNTT – HUI
38
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)
GV Phi Loan - Khoa CNTT – HUI
39
Các đối tượng SMO
• Đối tượng cơ bản là Server, việc quản l{ server sẽ bắt đầu khi đối tượng Server kết nối đến 1 server.
• Các đối tượng SMO được dùng để quản
l{ các CSDL của người dùng.
GV Phi Loan - Khoa CNTT – HUI
40
GV Phi Loan - Khoa CNTT – HUI
41
SqlConnection
GV Phi Loan - Khoa CNTT – HUI
42
Ví dụ: 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 }
GV Phi Loan - Khoa CNTT – HUI
43
Scripting SQL Server Tasks
• Administrators có thể tạ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.
GV Phi Loan - Khoa CNTT – HUI
44
Nhiệm vụ quản trị
• Nhiệm vụ quan trọ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.
GV Phi Loan - Khoa CNTT – HUI
45
SMO backup properties and methods
GV Phi Loan - Khoa CNTT – HUI
46
GV Phi Loan - Khoa CNTT – HUI
47
Nhiệm vụ về dữ liệu
• Tuy cách tốt nhất để tạ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ần nhúng việc tạ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 lại trở nên thuận tiện hơn.
GV Phi Loan - Khoa CNTT – HUI
48
SMO Database Table, Index, and Foreign Key objects
GV Phi Loan - Khoa CNTT – HUI
49
SMO Database Table, Index, and Foreign Key objects (tt)
GV Phi Loan - Khoa CNTT – HUI
50
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
GV Phi Loan - Khoa CNTT – HUI
51
Ví dụ
• Giả sử AdventureWorks vừa tiếp quả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 quản l{ nhân sự HR của AdventureWorks, nhưng các mục dữ liệu chính từ các bả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 tạo 2 bảng dữ liệu mới.
GV Phi Loan - Khoa CNTT – HUI
52
Ví dụ
• Bảng 1: có tên là AcquisitionCompany, chứa tên và ngày được tiếp quản, cùng với CompanyID • Bả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 đến bảng AcquisitionCompany.
• Cả hai bảng đều thuộc schema HumanResources
GV Phi Loan - Khoa CNTT – HUI
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
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ấu phầy.
• Phương thức ExecuteReader trả về đối
tượng DataReader và mỗi cột được khôi phục bằng phương thức GetValue.
(page 200)
GV Phi Loan - Khoa CNTT – HUI
61
SMO scripting objects
• Trong lúc tạ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 lại sau đó.
GV Phi Loan - Khoa CNTT – HUI
62
SMO scripting objects
GV Phi Loan - Khoa CNTT – HUI
63
Các tùy chọn của scripter
• Server: cho phép đối tượng Scripter nối đến server. • ScriptDrops: xác định script có chứa lệnh DROP hay CREATE đối tượng hay không. Nếu tùy chọn là true, script sẽ chứa lệnh DROP cho từng đối tượng, nhưng tùy chọ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 đầy đủ của file kết quả.
GV Phi Loan - Khoa CNTT – HUI
64
Các tùy chọn của scripter (tt)
• IncludeHeaders: nếu là true, sẽ chứa
comment chỉ ra tên của đối tượng và thời điểm đối tượng được tạ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ẵn
• Mặc định kết quả script sẽ gửi kết quả ra
console, nếu ToFileOnly là true, thì kết quả sẽ gửi vào file
GV Phi Loan - Khoa CNTT – HUI
65
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 cả các đối tượng được khai báo bảo toàn tham chiếu (referential integrity) sẽ được đưa vào script.
GV Phi Loan - Khoa CNTT – HUI
66
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 tạo sẵn 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.
GV Phi Loan - Khoa CNTT – HUI
67
SQL Server PowerShell Provider
• Provider tạo 1 phân cấp (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 đế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.
GV Phi Loan - Khoa CNTT – HUI
68
Lợi ích củ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, …
GV Phi Loan - Khoa CNTT – HUI
69
Nhiệm vụ của Provider
• Dùng các lệnh cmdlets để chuyển đến
cac node trong 1 path, và nhận danh mục các đối tượng tạ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.
GV Phi Loan - Khoa CNTT – HUI
70
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
GV Phi Loan - Khoa CNTT – HUI
71
Navigate SQL Server PowerShell Paths
• Provider biểu diễn 1 tập các đối tượng trong 1 instance theo cấu trúc tương tự như file path – Có thể chuyển đổi qua lại giữa các path. – Tạo mới 1 ổ đĩa thay cho 1 path dài dòng.
GV Phi Loan - Khoa CNTT – HUI
72
SQL Server provider implements a subset of the provider cmdlets
GV Phi Loan - Khoa CNTT – HUI
73
Ví dụ
## Trả 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
GV Phi Loan - Khoa CNTT – HUI
74
Ví dụ
## Liệt kê các các đối 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ống Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases Get-ChildItem -force
GV Phi Loan - Khoa CNTT – HUI
75
Ví dụ
• Để xem danh mục các bả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
GV Phi Loan - Khoa CNTT – HUI
76
Tạo ổ đĩa tùy chọn
New-PSDrive [-Name]
[-PSProvider]
[-Root]
[-Description
[Scope ]
-PSProvider có các giá trị là FileSystem,
Registry
GV Phi Loan - Khoa CNTT – HUI
77
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
GV Phi Loan - Khoa CNTT – HUI
78
Làm việc với Path node
• Hai loại action:
– Chạy các lệnh Windows PowerShell cmdlet. – Gọi các method tùy theo đối tượng. Ví dụ
nếu đ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
GV Phi Loan - Khoa CNTT – HUI
79
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
GV Phi Loan - Khoa CNTT – HUI
80
Lệnh get-item
Get-item [-LiteralPath]
Liệt kê các item ở vị trí xác định
GV Phi Loan - Khoa CNTT – HUI
81
Ví dụ Lệnh get-item
• Get-item .
• Get-item *
• Get-item c:\
•
exclude w*
GV Phi Loan - Khoa CNTT – HUI
82
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
GV Phi Loan - Khoa CNTT – HUI
83
Sử dụ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”}
GV Phi Loan - Khoa CNTT – HUI
84
Ổ đĩa PSDrive – SQLSERVER
• PowerShell cung cấp khả năng quản l{
(navigate) không chỉ hệ thống file trên đĩa mà cả registry củ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 quản l{ như hệ thống file.
GV Phi Loan - Khoa CNTT – HUI
85
Ổ đĩa PSDrive – SQLSERVER
• Bốn thư mục chính trong ổ đĩa SQLSERVER: – SQL: cung cấp việc truy xuất đến database engine, SQL Server Agent, Service Broker, Database Mail, ..
– SQLPolicy: cung cấp việc truy xuất đến policy-
based management
– SQLRegistration: cung cấp việc truy xuất đến
Registered Servers
– DataCollection: cho phép truy xuất đến các đối tượng Data Collector quản l{ Data Warehouse
GV Phi Loan - Khoa CNTT – HUI
86
Database Engine cmdlets
• Các lệnh dùng cho DB Engine chủ yếu để chạy các script T-SQL có sẵn từ script mới của PowerShel, đánh giá các chính sách quản l{ (management policies)
GV Phi Loan - Khoa CNTT – HUI
87
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 chạy được thì
Invoke-Sqlcmd chạy được
GV Phi Loan - Khoa CNTT – HUI
88
GV Phi Loan - Khoa CNTT – HUI
89
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"
GV Phi Loan - Khoa CNTT – HUI
90
Run Windows PowerShell Steps in SQL Server Agent
• Script của Windows PowerShell có thể
chạy ở 1 job step trong SQL Server Agent bằng 1 trong 2 cách sau: – Tạo PowerShell Job Step – Tạo Command Prompt Job Step
GV Phi Loan - Khoa CNTT – HUI
91
Tạo PowerShell Job Step
• Trong hộp thoại New Job Step dialog
trong SQL Server Agent. • Chọn Type là PowerShell. • Trong hộp Run as chọn service account. • Trong hộp Command, nhập cú pháp chạy PowerShell script hoặc nhấp nút open đề chọn 1 file chưa cú pháp của script
GV Phi Loan - Khoa CNTT – HUI
92
Tạo Command Prompt Job Step
• Trong hộp thoại New Job Step, chọn Type
là Operating system (CmdExec).
• Trong hộp Run as chọn service account • Trong hộp Process exit code of a
successful gõ vào giá trị 0 đến 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.
GV Phi Loan - Khoa CNTT – HUI
93