当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:21:00  来源:本站整理

利用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防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用SqlBulkCopy时应注意Sqlserver表中利用缺省值的列
  • 在SQL Server中利用SQL语句查询一个存储历程被别的全部的存储历程引用的存储历程名
  • 教你怎么利用sql游标实例分享
  • 利用Squid集群配合Dnspod成立双线镜像
  • 利用SQL Loader导入大量数据,避免利用SQL频繁写库的办法
  • ado若何利用sql函数?
  • WIN2000下利用SQL Server错误一例
  • 利用SQL Mail收发和自动处理邮件
  • 精确配置和利用SQL mail
  • 利用SQL Server 7.0成立一个安全的数据库的最好办法是什么?
  • 利用SQL-DMO备份数据库并举行校验
  • 利用sqlcmd在批处理脚本中履行SQL
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .