请问,怎样用程序实现备份和还原sql server数据库?

charles036 2006-02-15 02:48:42
怎样用程序实现备份和还原sql server数据库?
...全文
102 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimSoft 2006-02-15
  • 打赏
  • 举报
回复
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% 'Option Explicit %>
<html>
<head>
<title>SQL Server 数据库的备份与恢复</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<%
On Error Resume Next

'默认的常量
Const conDefaultDBServerName = "localhost"
Const conDefaultDBName = "db"
Const conDefaultDBUserName = "sa"
Const conDefaultDBUserPwd = ""
Dim strDefaultBackupFile

'定义变量
Dim strDBServerName, strDBName, strDBUserName, strDBUserPwd
Dim strAct '数据库操作类型(Buckup,Restore)
Dim strBackupFile '数据库备份的目的文件和恢复的源文件
Dim intLoginTimeout '数据库登录超时时间

'变量初始化
strDBServerName = Request.Form("DBServerName")
strDBName = Request.Form("DBName")
strDBUserName = Request.Form("DBUserName")
strDBUserPwd = Request.Form("DBUserPwd")
strAct = Request.Form("Act")
strBackupFile = Request.Form("BackupFile")
intLoginTimeout = 15

'.sdb means SQL Data Backup File
If Trim(strBackupFile) = "" Then
strBackupFile = Server.MapPath("./") & "\" & Year(Now) & "_" & Month(Now) & Day(Now) & ".sdb"
End If
'Response.Write("strBackupFile:" & strBackupFile)

'执行操作
If strAct <> "" Then
Select Case strAct
Case "Buckup"
Call BackupDB(strDBServerName, strDBName, strDBUserName, strDBUserPwd, strBackupFile, intLoginTimeout)
strMessage = "备份数据库成功!"
Case "Restore"
Call RestoreDB(strDBServerName, strDBName, strDBUserName, strDBUserPwd, strBackupFile, intLoginTimeout)
strMessage = "还原数据库成功!"
Case Else
strMessage = "错误的操作类型!"
End Select

If Err.Number Then
'Call ShowMsg("发生未知的错误,请与技术支持人员联系!", "history.back();")
Response.Write(Err.Description)
Err.Clear
On Error GoTo 0
Else
Call ShowMsg(strMessage, "window.close();")
End If
End If



Sub ShowMsg(sMsg, sOper)
sMsg = Replace(sMsg, "'", "\'")
Response.Write ("<script language='JavaScript'>" & vbNewLine)
Response.Write ("<!--" & vbNewLine)
Response.Write (" window.alert(""" & sMsg & """);" & vbNewLine)
Response.Write (" " & sOper & vbNewLine)
Response.Write ("</script>" & vbNewLine)
Response.End()
End Sub

Function BackupDB(sDBServerName, sDBName, sDBUserName, sDBUserPwd, sBackupFile, iLoginTimeout)

Dim oSqlServer, oBack

Set oSqlServer = Server.CreateObject("SQLDMO.SQLServer")
oSqlServer.LoginTimeout = iLoginTimeout
oSqlServer.Connect sDBServerName, sDBUserName, sDBUserPwd
Set oBack = Server.CreateObject("SQLDMO.Backup")
oBack.Database = sDBName
oBack.Devices = Files
oBack.Files = sBackupFile
oBack.SQLBackup oSqlServer

Set oSqlServer = Nothing
Set oBack = Nothing

End Function

'恢复时要在没有使用数据库时进行
Function RestoreDB(sDBServerName, sDBName, sDBUserName, sDBUserPwd, sBackupFile, iLoginTimeout)

Dim oSqlServer, oRestore

Set oSqlServer = Server.CreateObject("SQLDMO.SQLServer")
oSqlServer.LoginTimeout = iLoginTimeout
oSqlServer.Connect sDBServerName, sDBUserName, sDBUserPwd
Set oRestore = Server.CreateObject("SQLDMO.Restore")
oRestore.Action = 0 ' full db restore
oRestore.Database = sDBName
oRestore.Devices = Files
oRestore.Files = sBackupFile
oRestore.ReplaceDatabase = True 'Force restore over existing database
oRestore.SQLRestore oSqlServer

Set oSqlServer = Nothing
Set oRestore = Nothing

End Function
%>
<form name="form1" method="post" action="">
<table width="600" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#999999">
<tr align="center" bgcolor="#F5F5F5">
<td height="40" colspan="2"><strong>MSSQL数据库在线备份恢复工具</strong></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="40%" align="right">数据库服务器名称或IP:</td>
<td width="60%"><input name="DBServerName" type="text" id="DBServerName" value="<%= strDBServerName %>">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="right">数据库名(限MSSQL):</td>
<td><input name="DBName" type="text" id="DBName" value="<%= strDBName %>">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="right">用户名:</td>
<td><input name="DBUserName" type="text" id="DBUserName" value="<%= strDBUserName %>">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="right">密码:</td>
<td><input name="DBUserPwd" type="password" id="DBUserPwd" value="<%= strDBUserPwd %>">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="right">操作:</td>
<td><input name="Act" type="radio" value="Buckup" checked>
备份
<input type="radio" name="Act" value="Restore">
恢复 </td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="right">文件路径:</td>
<td><input name="BackupFile" type="text" id="BackupFile" value="<%= strBackupFile %>" size="40">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td> </td>
<td><input type="submit" name="Submit" value="执行操作">
<input name="Button" type="button" id="Button" value="默认值" onClick="initialize();">
</td>
</tr>
</table>
</form>
<script language="JavaScript">
<%If strAct = "" Then%>
initialize();
<%End If%>
function initialize(){
var form = document.forms[0]
form.DBServerName.value = "<%= conDefaultDBServerName %>";
form.DBName.value = "<%= conDefaultDBName %>";
form.DBUserName.value = "<%= conDefaultDBUserName %>";
form.DBUserPwd.value = "<%= conDefaultDBUserPwd %>";
}
</script>
</body>
</html>

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧