1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Microsoft Windows PowerShell và SQL Server 2005 SMO – Phần 6 pptx

10 318 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Backup of databases using PowerShell and SMO
Thể loại Bài thuyết trình
Định dạng
Số trang 10
Dung lượng 588,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bây giờ hãy giả dụ nữa là chúng ta muốn thực hiện một backup đầy đủ cho cơ sở dữ liệu vào thư mục c:\test.. Hình 1.0 Kịch bản này sẽ tạo một backup đầy đủ của cơ sở dữ liệu MyDatabase v

Trang 1

Microsoft Windows PowerShell và SQL Server 2005 SMO – Phần 6

Nguồn : quantrimang.com 

The MAK

Trong phần 6 này, chúng tôi sẽ giới thiệu tiếp cho các bạn cách sử dụng PowerShell và các kịch bản để backup cơ sở dữ liệu

Phương pháp 1

Hãy giả dụ rằng chúng ta có một cơ sở dữ liệu ‘MyDatabase’ trên máy chủ

‘HOME’ Bây giờ hãy giả dụ nữa là chúng ta muốn thực hiện một backup đầy đủ

cho cơ sở dữ liệu vào thư mục c:\test

Thực thi lần lượt từng lệnh cmdlet một Tham khảo hình 1.0

[System.Reflection.Assembly]::LoadWithPartialName

("Microsoft.SqlServer.Smo") | out-null

[System.IO.Directory]::CreateDirectory("C:\test") | out-null

$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server"

"HOME"

$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"

$bck.Action = 'Database'

$fil=new-object

"Microsoft.SqlServer.Management.Smo.BackupDeviceItem"

$fil.DeviceType='File'

$fil.Name=[System.IO.Path]::Combine("C:\test", "MyDatabase" +".bak")

$bck.Devices.Add($fil)

$bck.Database="MyDatabase"

$bck.SqlBackup($srv)

write-host "Backup of MyDatabase done"

Trang 2

Hình 1.0

Kịch bản này sẽ tạo một backup đầy đủ của cơ sở dữ liệu MyDatabase vào thư mục c:\test như hình bên dưới (Tham khảo hình 1.1)

Hình 1.1

Phương pháp 2

Hãy giả dụ rằng chúng ta có một cơ sở dữ liệu ‘MyDatabase’ trên máy chủ

‘HOME’ và muốn thực hiện một backup bản ghi Transaction của các cơ sở dữ

liệu vào thư mục c:\test Thực hiện các lệnh cmdlet dưới đây, lần lượng từng

lệnh một (tham khảo hình 1.2)

[System.Reflection.Assembly]::LoadWithPartialName

("Microsoft.SqlServer.Smo") | out-null

[System.IO.Directory]::CreateDirectory("C:\test") | out-null

$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server"

"HOME"

$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"

$bck.Action = 'Log'

$fil=new-object

"Microsoft.SqlServer.Management.Smo.BackupDeviceItem"

$fil.DeviceType='File'

$fil.Name=[System.IO.Path]::Combine("C:\test", "MyDatabase" +".trn")

$bck.Devices.Add($fil)

$bck.Database="MyDatabase"

$bck.SqlBackup($srv)

write-host "Log Backup of MyDatabase done"

Trang 3

Hình 1.2 Kịch bản này sẽ thực hiện một backup bản ghi Transaction của cơ sở dữ liệu MyDatabase vào thư mục c:\test, như thể hiện trong hình bên dưới (tham khảo hình 1.3)

Hình 1.3

Phương pháp 3

Hãy giả dụ rằng chúng ta có một cơ sở dữ liệu ‘MyDatabase’ trên máy chủ

‘HOME’ và muốn thực hiện một backup Differential cho các cơ sở dữ liệu vào

thư mục c:\test Thực hiện theo các lệnh dưới đây, lần lượt từng lệnh một (tham khảo hình 1.4)

[System.Reflection.Assembly]::LoadWithPartialName("Microsof t.SqlServer.Smo") | out-null

[System.IO.Directory]::CreateDirectory("C:\test") | out-null

$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server"

"HOME"

$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"

$bck.Incremental = 1

$fil=new-object

"Microsoft.SqlServer.Management.Smo.BackupDeviceItem"

$fil.DeviceType='File'

Trang 4

$fil.Name=[System.IO.Path]::Combine("C:\test", "MyDatabase" +".diff")

$bck.Devices.Add($fil)

$bck.Database="MyDatabase"

$bck.SqlBackup($srv)

write-host "Differential Backup of MyDatabase done"

Hình 1.4

Kịch bản này sẽ thực hiện backup Differential của cơ sở dữ liệu MyDatabase vào thư mục c:\test như hình bên dưới (tham khảo hình 1.5)

Hình 1.5

Phương pháp 4

Bây giờ chúng ta hãy nối phương pháp 1, phương pháp 2 và phương pháp 3 thành một kịch bản PowerShell sẽ lấy tên Server, tên Database, kiểu Backup và thư mục Folder với tư cách là các tham số để nó dễ dàng được thực hiện một cách tự động Tạo kịch bản Backup.ps1 dưới đây trong thư mục C:\PS (tham khảo hình 1.6, 1.7)

param (

[string] $ServerName,

[string] $DatabaseName,

[string] $Backuptype ,

[string] $BackupPath

Trang 5

)

[System.Reflection.Assembly]::LoadWithPartialName("Microsof t.SqlServer.Smo") | out-null

[System.IO.Directory]::CreateDirectory($BackupPath) | out-null

$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server"

"$servername"

$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"

if ($Backuptype -eq "FULL")

{

$bck.Action = 'Database'

$extenstion=".BAK"

$text1="Full Backup "

}

if ($Backuptype -eq "TRAN")

{

$bck.Action = 'Log'

$extenstion=".LOG"

$text1="Transactional Log Backup "

}

if ($Backuptype -eq "DIFF")

{

$bck.Incremental = 1

$extenstion=".DIFF"

$text1="Differential Backup "

}

$fil=new-object

"Microsoft.SqlServer.Management.Smo.BackupDeviceItem"

$fil.DeviceType='File'

$fil.Name=[System.IO.Path]::Combine($BackupPath,

$DatabaseName+$extenstion)

$bck.Devices.Add($fil)

$bck.Database=$DatabaseName

$bck.SqlBackup($srv)

write-host $text1 of $Databasename done

Trang 6

Hình 1.6

Hình 1.7

Bây giờ chúng ta hãy thực thi kịch bản PowerShell ở trên với các tham số dưới đây (tham khảo hình 1.8)

./backup.ps1 HOME MyDatabase FULL C:\test

./backup.ps1 HOME MyDatabase DIFF C:\test

./backup.ps1 HOME MyDatabase TRAN C:\test

Trang 7

Hình 1.8 Thực thi kịch bản ở trên cho kết quả dưới đây (tham khảo hình 1.8 và 1.9)

Hình 1.9

Phương pháp 5

Hãy giả dụ rằng chúng ta cần bổ sung thêm tem Datevào với tên file khi thực hiện backup bằng kịch bản ở trên

Để thực hiện điều đó, bạn hãy cập nhật kịch bản với đoạn mã dưới đây (tham khảo hình 2.0)

param (

[string] $ServerName,

[string] $DatabaseName,

[string] $Backuptype ,

[string] $BackupPath

)

[System.Reflection.Assembly]::LoadWithPartialName("Microsof t.SqlServer.Smo") | out-null

[System.IO.Directory]::CreateDirectory($BackupPath) | out-null

$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server"

"$servername"

$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"

Trang 8

if ($Backuptype -eq "FULL")

{

$bck.Action = 'Database'

$extenstion=".BAK"

$text1="Full Backup "

}

if ($Backuptype -eq "TRAN")

{

$bck.Action = 'Log'

$extenstion=".LOG"

$text1="Transactional Log Backup "

}

if ($Backuptype -eq "DIFF")

{

$bck.Incremental = 1

$extenstion=".DIFF"

$text1="Differential Backup "

}

$fil=new-object

"Microsoft.SqlServer.Management.Smo.BackupDeviceItem"

$fil.DeviceType='File'

$fil.Name=[System.IO.Path]::Combine($BackupPath,

$DatabaseName+ "_"+

[DateTime]::Today.ToString("yyyy_MM_dd")+$extenstion)

$bck.Devices.Add($fil)

$bck.Database=$DatabaseName

$bck.SqlBackup($srv)

write-host $text1 of $Databasename done

Trang 9

Hình 2.0

Lúc này chúng ta hãy thực thi kịch bản PowerShell ở trên với các tham số dưới đây (tham khảo hình 2.1)

./backup.ps1 HOME\SQLExpress Admin FULL C:\test

./backup.ps1 HOME\SQLExpress Admin DIFF C:\test

./backup.ps1 HOME\SQLExpress Admin TRAN C:\test

Lưu ý: HOME\SQLExpress là một ví dụ được đặt tên của sql server trên host

HOME;

Admin là tên cơ sở dữ liệu

Thực thi kịch bản ở trên cho kết quả như hình 2.1 và 2.2

Trang 10

Hình 2.1

Hình 2.2

Kết luận

Phần 6 của loạt bài này chúng tôi đã minh chứng cho các bạn cách sử dụng PowerShell và kịch bản PowerShell để thực hiện một backup hoàn chỉnh - Full Backup, Transaction Log backup và Differential backup đối với cơ sở dữ liệu với tên file đã được dán tem ngoài

 

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

HÌNH ẢNH LIÊN QUAN

Hình 1.8   Thực thi kịch bản ở trên cho kết quả dưới đây. (tham khảo hình 1.8 và 1.9) - Tài liệu Microsoft Windows PowerShell và SQL Server 2005 SMO – Phần 6 pptx
Hình 1.8 Thực thi kịch bản ở trên cho kết quả dưới đây. (tham khảo hình 1.8 và 1.9) (Trang 7)

TỪ KHÓA LIÊN QUAN

w