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
93 trang |
Chia sẻ: huyhoang44 | Lượt xem: 730 | Lượt tải: 0
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:
- chuong_6_ktcd_dbms_0824.pdf