| 屬性 | 說明 |
Action | SQLDMOBackup_Full / _Differential / _Log |
BackupSetName | 備份集名稱 |
Database | 來源資料庫 |
Files | 檔案路徑 (如 C:\backup\db.bak),與 Devices 二擇一 |
Devices | 備份裝置名稱 (需先建立) |
TruncateLog | SQLDMOTruncate_Commit (截斷) / _NoTruncate / _NoLog |
Initialize | True = 覆寫現有媒體 |
ASP 備份頁面 (backup.asp) 核心片段
<%@ Language=VBScript %>
<%
Dim srv, bkp, dbName, devName
dbName = Request("db")
devName = Request("device")
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginSecure = True ' 或指定 Login/Password
srv.Connect "(local)"
Set bkp = Server.CreateObject("SQLDMO.Backup")
bkp.Action = SQLDMOBackup_Full
bkp.Database = dbName
bkp.Devices = devName
bkp.BackupSetName = dbName & "_Full_" & FormatDateTime(Now, 2)
bkp.Initialize = True
bkp.SQLBackup(srv)
%>
備份已啟動,請使用驗證功能確認完成狀態。
驗證頁面 (verify.asp)
<%
Dim srv, dev, hdr, rs
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginSecure = True
srv.Connect "(local)"
Set dev = Server.CreateObject("SQLDMO.BackupDevice")
For Each dev In srv.BackupDevices
If dev.Name = Request("device") Then Exit For
Next
Set hdr = dev.ReadBackupHeader() ' 回傳 QueryResults
Set rs = hdr.Rows
Response.Write "裝置: " & dev.Name & "
"
Response.Write "備份集數: " & rs.Count & "
"
Do While Not rs.EOF
Response.Write "名稱: " & rs.Item("BackupName") & ", 日期: " & rs.Item("BackupDate") & ", 類型: " & rs.Item("BackupType") & "
"
rs.MoveNext
Loop
%>
注意事項
- SQL-DMO 已在 SQL Server 2012 移除,新專案請改用 SMO (Managed 程式碼) 或 PowerShell
Backup-SqlDatabase。
- ASP 執行身分需具備 SQL Server
sysadmin 或 db_backupoperator 角色。
- 大型資料庫備份時間長,ASP 請求易逾時,建議改用 SQL Agent 作業排程執行。
- 上一篇文章: 模糊資料庫導論:模糊集合、隸屬函數、ORDBMS 實作策略
- 下一篇文章: CRM 在保險業的應用價值與實施關鍵措施
Copyright ©
程式碼之家 All Rights Reserved