首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL-DMO 自動化備份與驗證:ASP 應用完整代碼

     編輯:關於SqlServer

架構

  • SQLDMO.SQLServer:連線管理。
  • SQLDMO.Database:列舉資料庫。
  • SQLDMO.BackupDevice:管理備份裝置 (磁帶/檔案/管道)。
  • SQLDMO.Backup:核心備份物件,支援完整/差異/記錄、壓縮、驗證。

關鍵屬性

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 作業排程執行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
屬性說明
ActionSQLDMOBackup_Full / _Differential / _Log
BackupSetName備份集名稱
Database來源資料庫
Files檔案路徑 (如 C:\backup\db.bak),與 Devices 二擇一
Devices備份裝置名稱 (需先建立)
TruncateLogSQLDMOTruncate_Commit (截斷) / _NoTruncate / _NoLog
InitializeTrue = 覆寫現有媒體