手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

用SQL分布式管理对象创建数据库备份

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

BackupSetName - 备份文档名。

Database - 要备份的数据库。

Action - 全部或增量备份。更有其他选项,但是示例中只用到这二个。

BackupSetDescription - 备份说明。

Files - 文档备份选项。标明备份文档的路径和名字,如:C:\pubs.bak。使用文档备份时,下面的备份装置名要配置为空。

Devices - 服务器上的备份装置。假如使用备份装置,上面的文档备份选项要配置为空。

TruncateLog - 备份日志选项。其选项有:

NoLog - 不备份交易日志。

NoTruncate - 备份交易日志。日志里提供时间标记。

Truncate - 备份交易日志,但不保留交易纪录。

Initialize - 如配置为真(True),该备份装置将取代其他备份媒介而成为最好选择。

以下是示例中的backup.asp文档:

<%@ 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>

备份校验

假如用VB或C 编程,能够用事件触发来校验备份过程,但在ASP中不行。我们用SQLDMO.BackupDevice对象的ReadBackupHeader方法来确认备份是否成功。

下面是verify.asp文档代码,他列出备份装置名字并提供最近备份的有关信息。

<%@ 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>

ReadBackupHeader方法返回QueryResults对象。用其Rows属性能够得到备份的纪录数。然后对每行纪录作列信息搜索。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!