|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的的女儿也叫My。备份|数据|数据库
本文议论怎样用SQL-DMO创立数据库备份和校验的ASP使用。
============================================================
概述
SQL散布式办理工具(SQLDistributedManagementobjects,SQL-DMO)为开辟者供应了利用程序和剧本言语实行一般义务的办法,从而扩大了SQLServer功效。本文议论怎样用SQL-DMO创立数据库备份和校验的ASP使用。
条件
你必要有SQLServer数据库备份的相干常识。别的还要在global.asa文件中到场SQL-DMO库的援用。以下是SQLServer2000的援用:
<!--METADATATYPE="TypeLib"NAME="MicrosoftSQLDMOObjectLibrary"UUID="{10010001-E260-11CF-AE68-00AA004A34D5}"VERSION="8.0"-->
本文示例代码合用于SQL7.0,MSDE,和SQLServer2000。
喜与忧
利用SQL-DMO工具让人且喜且忧。它供应了十分丰厚的功效,以致于不知该怎样利用。本文只会商示例触及的工具属性和办法。你能够在SQLServer在线教授教养上找到很多相干信息。本文开端能够下载本文示例源代码。
SQLDMO.SQLServer
代码看上往挺眼生。它用于毗连SQLServer数据库:
<%
Dimsrv
Setsrv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout=15
srv.Connect"servername","username","password"
%>
这里经由过程代进用户名和口令来毗连SQLServer数据库。假如要利用NT的身份认证,就将它的LoginSecure属性设为真(TRUE),疏忽代进的用户名和口令,而利用NT的注册信息。
SQLDMO.Database
列出服务器中的数据库。在本文示例中,对列出的数据库举行备份。上面的代码将服务器中的数据库列于下拉菜单:
<%
Dimsrv
DimobjDB
Setsrv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout=15
srv.Connect"servername","username","password"
SetobjDB=Server.CreateObject("SQLDMO.Database")
%>
<SELECTname="fdatabase">
<%
ForEachobjDBInsrv.Databases
IfobjDB.SystemObject=FalseThen
%>
<OPTION><%=objDB.Name%></OPTION>
<%
EndIf
Next
%>
</SELECT>
SQLDMO.BackupDevice
列出服务器上安装的备份安装。我倡议利用备份安装来备份数据库。由于如许可使用SQL-DMO的校验功效来校验备份情形。上面的代码列出服务器上的备份安装:
<%
Dimsrv
DimobjDevice
Setsrv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout=15
srv.Connect"servername","username","password"
SetobjDevice=Server.CreateObject("SQLDMO.BackupDevice")
ForEachobjDeviceInsrv.BackupDevices
Response.WriteobjDevice.Name+"<BR>"
Next
%>
SQLDMO.Backup
这就是我们要用到的备份中心工具。它有很多属性,让我们作到与企业版SQL办理器一样程度的备份。先会商一下本文示例用到的属性。
BackupSetName-备份文件名。
Database-要备份的数据库。
Action-全体或增量备份。另有其他选项,不外示例中只用到这二个。
BackupSetDescription-备份申明。
Files-文件备份选项。标明备份文件的路径和名字,如:C:pubs.bak。利用文件备份时,上面的备份安装名要设置为空。
Devices-服务器上的备份安装。假如利用备份安装,下面的文件备份选项要设置为空。
TruncateLog-备份日记选项。其选项有:
NoLog-不备份买卖日记。
NoTruncate-备份买卖日记。日记里供应工夫标志。
Truncate-备份买卖日记,但不保存买卖记录。
Initialize-如设置为真(True),该备份安装将代替其他备份前言而成为首选。
以下是示例中的backup.asp文件:
<%@Language=VBScript%>
<HTML>
<BODY>
<!--containsallthelogininformation-->
<!--#includefile=login.asp-->
<%
DimobjBackup
创立备份工具
setobjBackup=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.SQLBackupsrv
断开与服务器的毗连
srv.disconnect
开释
setsrv=nothing
setobjBackup=Nothing
%>
<P>
Thebackupwasstarted,usethe<AHREF="devices.asp">verify</A>
optiontoseeifitcompletedsuccessfully.
<AHREF="default.asp">Clickhere</A>toreturn.
</P>
</BODY>
</HTML>
备份校验
假如用VB或C++编程,能够用事务触发来校验备份历程,但在ASP中不可。我们用SQLDMO.BackupDevice工具的ReadBackupHeader办法来确认备份是不是乐成。
上面是verify.asp文件代码,它列出备份安装名字并供应比来备份的有关信息。
<%@Language=VBScript%>
<HTML>
<BODY>
<!--Logininformation-->
<!--#includefile=login.asp-->
<P>
<%
DimobjDevice
DimobjResults
DimiCount
DimxCount
创立备份安装工具
SetobjDevice=Server.CreateObject("SQLDMO.BackupDevice")
轮回直到找到婚配的安装
ForEachobjDeviceInsrv.BackupDevices
IfobjDevice.Name=Request("fname")Then
找到婚配安装,入手下手读取了局
SetobjResults=objDevice.ReadBackupHeader
ForiCount=1ToobjResults.Rows
ForxCount=1ToobjResults.Columns%>
<B><%=objResults.ColumnName(xcount)%></B>:
<%=objResults.GetColumnString(icount,xcount)%><br>
<%Next%>
<HR>
<%Next%>
<%EndIf%>
<%Next%>
<%
srv.Disconnect
setsrv=nothing
setobjDevice=nothing
setobjResults=nothing
%>
</BODY>
</HTML>
ReadBackupHeader办法前往QueryResults工具。用其Rows属性能够失掉备份的记录数。然后对每行记录作列信息搜刮。
其他功效
SQL-DMO还供应远程备份和恢复功效。本文没有触及数据库恢复,但SQL-DMO有很强的恢复功效。
本文附件:
http://www.chinaok.net/down/200204250401420.zip
为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 |
|