利用SQL-DMO备份数据库并举行校验[MSSQL防范]
本文“利用SQL-DMO备份数据库并举行校验[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文评论若何用SQL-DMO成立数据库备份和校验的ASP利用. www.yestar2000iTbulo.comyuZq9
============================================================www.yestar2000iTbulo.comyuZq9
概述
SQL分布式管理对象(SQL Distributed Management objects, SQL-DMO)为开辟者供应了利用程序和脚本语言履行普通任务的办法,从而扩大了sql server功效.本文评论若何用SQL-DMO成立数据库备份和校验的ASP利用.www.yestar2000iTbulo.comyuZq9
前提
你需求有SQL Server数据库备份的相关知识.别的还要在global.asa文件中加入SQL-DMO库的引用.以下是SQL Server 2000的引用:
<!--METADATA TYPE="TypeLib" UU VERSION="8.0"--> www.yestar2000iTbulo.comyuZq9
本文示例代码实用于SQL 7.0, MSDE, 和 SQL Server 2000.www.yestar2000iTbulo.comyuZq9
喜与忧
利用SQL-DMO对象让人且喜且忧.它供应了非常丰富的功效,以至于不知该若何利用.本文只谈论示例触及的对象属性和办法.你可以在SQL Server在线讲授上找到很多相关信息.本文末尾可以下载本文示例源代码.www.yestar2000iTbulo.comyuZq9
SQLDMO.SQLServer
代码看上去挺眼熟.它用于衔接SQL Server数据库:
<%
Dim srv
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
%>www.yestar2000iTbulo.comyuZq9
这里通过代入用户名和口令来衔接SQL Server数据库.假如要利用NT的身份认证,就将它的LoginSecure属性设为真(TRUE),忽视代入的用户名和口令,而利用NT的注册信息.www.yestar2000iTbulo.comyuZq9
SQLDMO.Database
列出服务器中的数据库.在本文示例中,对列出的数据库举行备份.下面的代码将服务器中的数据库列于下拉菜单:
<%
Dim srv
Dim objDB
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
Set objDB = Server.CreateObject("SQLDMO.Database")
%>
<SELECT >www.yestar2000iTbulo.comyuZq9
<%
For Each objDB In srv.Databases
If objDB.SystemObject = False Then
%>
<OPTION><%=objDB.Name%></OPTION>
<%
End If
Next
%>
</SELECT>www.yestar2000iTbulo.comyuZq9
SQLDMO.BackupDevice
列出服务器上安装的备份装配.我倡议利用备份装配来备份数据库.因为这样可以利用SQL-DMO的校验功效来校验备份情形.下面的代码列出服务器上的备份装配:
<%
Dim srv
Dim objDevice
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
Set objDevice = Server.CreateObject("SQLDMO.BackupDevice")
For Each objDevice In srv.BackupDevices
Response.Write objDevice.Name + "<BR>"
Next
%>www.yestar2000iTbulo.comyuZq9
SQLDMO.Backup
这就是我们要用到的备份核心对象.它有很多属性,让我们作到与企业版SQL管理器一样水平的备份.先谈论一下本文示例用到的属性.www.yestar2000iTbulo.comyuZq9
BackupSetName - 备份文件名.
Database - 要备份的数据库.
Action - 全部或增量备份.还有其他选项,不过示例中只用到这二个.
BackupSetDescription - 备份阐明.
Files - 文件备份选项.标明备份文件的途径和名字,如:C:\pubs.bak.利用文件备份时,下面的备份装配名要设置为空.
Devices - 服务器上的备份装配.假如利用备份装配,上面的文件备份选项要设置为空.
TruncateLog - 备份日记选项.其选项有:
NoLog - 不备份交易日记.
NoTruncate - 备份交易日记.日记里供应时间标志.
Truncate - 备份交易日记,但不保存交易记录.
Initialize - 如设置为真(True),该备份装配将代替其他备份媒介而成为首选.www.yestar2000iTbulo.comyuZq9
以下是示例中的backup.asp文件:www.yestar2000iTbulo.comyuZq9
<%@ Language=VBScript %>
<HTML>
<BODY>
<!--contains all the login information -->
<!--#include file=login.asp -->
<%
Dim objBackup
'成立备份对象
set objBackup = Server.CreateObject("SQLDMO.Backup")
'设置属性
objBackup.BackupSetName = Request("fname")
objBackup.Database = Request("fdatabase")
objBackup.Action = Request("fAction")
objBackup.BackupSetDescription = Request("fdescription")
objBackup.Files = Request("fbackupfile")
objBackup.Devices = Request("fdevice")
objBackup.TruncateLog = Request("flog")
objBackup.Initialize = Request("finit")
'备份数据库
objBackup.SQLBackup srv
'断开与服务器的衔接
srv.disconnect
'释放
set srv = nothing
set objBackup = Nothing
%>
<P>
The backup was started, use the <A HREF="devices.asp">verify</A>
option to see if it completed successfully.
<A HREF="default.asp">Click here</A> to return.
</P>
</BODY>
</HTML>www.yestar2000iTbulo.comyuZq9
备份校验
假如用VB或C++编程,可以用事件触发来校验备份历程,但在ASP中不行.我们用SQLDMO.BackupDevice对象的ReadBackupHeader办法来确认备份能否成功.
下面是verify.asp文件代码,它列出备份装配名字并供应近来备份的有关信息.www.yestar2000iTbulo.comyuZq9
<%@ Language=VBScript %>
<HTML>
<BODY>
<!--Login information -->
<!--#include file=login.asp-->
<P>
<%
Dim objDevice
Dim objResults
Dim iCount
Dim xCount
'成立备份装配对象
Set objDevice = Server.CreateObject("SQLDMO.BackupDevice")
'循环直到找到匹配的装配
For Each objDevice In srv.BackupDevices
If objDevice.Name = Request("fname") Then
'找到匹配装配,开始读取后果
Set objResults = objDevice.ReadBackupHeader
For iCount = 1 To objResults.Rows
For xCount = 1 To objResults.Columns%>
<B><%=objResults.ColumnName(xcount)%></B>:
<%=objResults.GetColumnString(icount,xcount)%><br>
<%Next %>
<HR>
<%Next %>
<%End If%>
<%Next%>
<%
srv.Disconnect
set srv = nothing
set objDevice = nothing
set objResults = nothing
%>
</BODY>
</HTML>www.yestar2000iTbulo.comyuZq9
ReadBackupHeader办法返回QueryResults对象.用其Rows属性可以得到备份的记录数.然后对每行记录作列信息搜索.www.yestar2000iTbulo.comyuZq9
其他功效
SQL-DMO还供应远程备份和恢复功效.本文没有触及数据库恢复,但SQL-DMO有很强的恢复功效.
www.yestar2000iTbulo.comyuZq9
本文附件:www.yestar2000iTbulo.comyuZq9
http://www.chinaok.net/down/200204250401420.zipwww.yestar2000iTbulo.comyuZq9
以上是“利用SQL-DMO备份数据库并举行校验[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:本文地址: | 与您的QQ/BBS好友分享! |