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

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

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

Thông tin tài liệu

Microsoft Windows PowerShell 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 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" 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’ 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" 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’ 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' $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 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 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 ) [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 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 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 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" 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 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 2.2. 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 kịch bản PowerShell để thực hiện một backup hoàn chỉnh - Full Backup, Transaction Log backup Differential backup đối với cơ sở dữ liệu với tên file đã được dán tem ngoài.   . 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. (" ;Microsoft. SqlServer .Smo& quot;) | out-null [System.IO.Directory]::CreateDirectory("C: est") | out- null $srv=New-Object " ;Microsoft. SqlServer.Management .Smo .Server& quot;

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

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