如何在ASP中进行数据库备份和数据恢复,帮帮忙吧,各位大哥

RenXiaoDan 2004-08-19 09:37:57
如何在ASP中进行数据库备份和数据恢复,请各位大哥帮帮小妹
...全文
348 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
oklhj 2004-11-17
  • 打赏
  • 举报
回复
UP
RenXiaoDan 2004-08-19
  • 打赏
  • 举报
回复
redeggdai(广林代) 谢谢了,你的程序可以用
angel2a 2004-08-19
  • 打赏
  • 举报
回复
'完全备份:
sql="BACKUP DATABASE ["&strDatabase&"] TO DISK='"& strBackupPath &"' WITH Format, Name='All_Data'"

'差异备份:
sql="BACKUP DATABASE ["&strDatabase&"] TO DISK='"& strBackupPath &"' WITH DIFFERENTIAL, Name='DIF_Data'"

strDatabase 为数据库名称,strBackupPath 为备份的目录

execute一下就可以了拉
redeggdai 2004-08-19
  • 打赏
  • 举报
回复
试试这个
<HTML>
<HEAD>
<TITLE>SQL Server 数据库的备份与恢复</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<BODY>
<form method="post" name=myform>
选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup" value="backup"><label for=act_backup>备份</label> 
<INPUT TYPE="radio" NAME="act" id="act_restore" value="restore"><label for=act_restore>恢复</label>
<br>数据库名:<INPUT TYPE="text" NAME="databasename" value="<%=request("databasename")%>">
<br>文件路径:<INPUT TYPE="text" NAME="bak_file" value="c:\$1.bak">(备份或恢复的文件路径)<br>
<input type="submit" value="确定">
</form>
<%
'SQL Server 数据库的备份与恢复!
dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
sqlserver = "localhost" 'sql服务器
sqlname = "sa" '用户名
sqlpassword = "password" '密码
sqlLoginTimeout = 15 '登陆超时
databasename = trim(request("databasename"))
bak_file = trim(request("bak_file"))
bak_file = replace(bak_file,"$1",databasename)
act = lcase(request("act"))
if databasename = "" then
response.write "input database name"
else
if act = "backup" then
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set bak = Server.CreateObject("SQLDMO.Backup")
bak.Database=databasename
bak.Devices=Files
bak.Files=bak_file
bak.SQLBackup srv
if err.number>0 then
response.write err.number&"<font color=red><br>"
response.write err.description&"</font>"
end if
Response.write "<font color=green>备份成功!</font>"
elseif act = "restore" then
'恢复时要在没有使用数据库时进行!
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set rest=Server.CreateObject("SQLDMO.Restore")
rest.Action=0 ' full db restore
rest.Database=databasename
rest.Devices=Files
rest.Files=bak_file
rest.ReplaceDatabase=True 'Force restore over existing database
if err.number>0 then
response.write err.number&"<font color=red><br>"
response.write err.description&"</font>"
end if
rest.SQLRestore srv

Response.write "<font color=green>恢复成功!</font>"
else
Response.write "<font color=red>没有选择操作</font>"
end if
end if
%>
</BODY>
</HTML>
Jaron 2004-08-19
  • 打赏
  • 举报
回复
'完全备份:
sql="BACKUP DATABASE ["&strDatabase&"] TO DISK='"& strBackupPath &"' WITH Format, Name='All_Data'"

'差异备份:
sql="BACKUP DATABASE ["&strDatabase&"] TO DISK='"& strBackupPath &"' WITH DIFFERENTIAL, Name='DIF_Data'"

strDatabase 为数据库名称,strBackupPath 为备份的目录
RenXiaoDan 2004-08-19
  • 打赏
  • 举报
回复
waiber(心与灵),不能备份,提示说“server name error or server cannot connect!

”是怎么回事呀,谢谢啦
sunboby 2004-08-19
  • 打赏
  • 举报
回复
来了,楼主解决了吗, 给个分吧
waiber 2004-08-19
  • 打赏
  • 举报
回复
CSDN 有一不好的地方,就是自己不能连续回复三次!为了清晰,有时间得多回复几次。在这儿写,估计版主也看不到。

以上备份需要SQLDMO.DLL,是SQL Server内置的一个文件,关于详细的操作SQLDMO,请参考MSDN或是SQL自带的帮助文件,备份的方法有很多,这只是其中一种。
waiber 2004-08-19
  • 打赏
  • 举报
回复
backuperr.asp

<%@ Language=VBScript %>
<%
dim errno,errstr
errno=Request.QueryString("err")
errstr=""
select case cstr(errno)
case "18456"
errstr="administrators or password error!"
case "20482"
errstr="server name error or server cannot connect!"
case "911"
errstr="database not found!"
case "15026"
errstr="server path not found!"
case "3201"
errstr="server path not found!"
case "3254"
errstr="restore from file lawlessness!"
case else
errstr="unknown error! retry later please!"
end select
%>
<HTML>
<HEAD>
<META name=VI60_defaultClientScript content=VBScript>
<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
<!--

Sub btnret_onclick
history.back
End Sub

-->
</SCRIPT>
<title></title>
</HEAD>
<body class="bg_frame_up" BACKGROUND="images/main_bg.gif">
<p align=center><font color=#006666><%=errstr%></font></p><p align=center><input id=btnret name=btnret type=button value=Return style="font-family: Arial; font-size: 9pt"></p>
</BODY>
</HTML>


RenXiaoDan 2004-08-19
  • 打赏
  • 举报
回复
先谢谢你们,我试试一会给分,
waiber 2004-08-19
  • 打赏
  • 举报
回复
RestoreDBSave.asp

<%@ Language=VBScript %>
<%
dim msvr,muid,mpwd,mdb,mto
msvr=Request.Form("txtsvr")
muid=Request.Form("txtuid")
mpwd=Request.Form("txtpwd")
mdb=Request.Form("txtdb")
mto=Request.Form("txtto")
if mpwd="" then mpwd="''"

on error resume next
set dmosvr=server.CreateObject("SQLDMO.SQLServer")
dmosvr.connect msvr,muid,mpwd

if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)

mdevname="Restore_"&muid&"_"&mdb
dmosvr.backupdevices(mdevname).remove
err.clear

set dmodev=server.CreateObject("SQLDMO.BackupDevice")
dmodev.name=mdevname
dmodev.type=2
dmodev.PhysicalLocation=mto
dmosvr.BackupDevices.Add dmodev

if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)

set dmores=server.CreateObject("SQLDMO.Restore")
dmores.database=mdb
dmores.devices=mdevname
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<body class="bg_frame_up">

<p><strong>数据恢复中, 请稍等...</strong></p>
<%
dmores.sqlrestore dmosvr
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)

set dmores=nothing
set dmodev=nothing
dmosvr.disconnect
set dmosvr=nothing
%>
<p><strong>数据 '<%=mdb%>' 数据恢复成功!</strong></p>
</BODY>
</HTML>

waiber 2004-08-19
  • 打赏
  • 举报
回复
backupdbsave.asp

<%@ Language=VBScript %>
<%
dim msvr,muid,mpwd,mdb,mto
msvr=Request.Form("txtsvr")
muid=Request.Form("txtuid")
mpwd=Request.Form("txtpwd")
mdb=Request.Form("txtdb")
mto=Request.Form("txtto")
if mpwd="" then mpwd="''"

on error resume next
set dmosvr=server.CreateObject("SQLDMO.SQLServer")
dmosvr.connect msvr,muid,mpwd

if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)

mdevname="Backup_"&muid&"_"&mdb
set dmodev=server.CreateObject("SQLDMO.BackupDevice")
dmodev.name=mdevname
dmodev.type=2
dmodev.PhysicalLocation=mto
dmosvr.BackupDevices.Add dmodev

if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)

set dmobak=server.CreateObject("SQLDMO.Backup")
dmobak.database=mdb
dmobak.devices=mdevname
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<p><strong>正在备份数据, 请稍等...</strong></p>
<%
dmobak.sqlbackup dmosvr
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)

dmosvr.backupdevices(mdevname).remove
set dmobak=nothing
set dmodev=nothing
dmosvr.disconnect
set dmosvr=nothing
%>
<p><strong>数据 '<%=mdb%>' 数据备份成功!</strong></p>
</BODY>
</HTML>
waiber 2004-08-19
  • 打赏
  • 举报
回复
backupdb.asp

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META name=VI60_defaultClientScript content=VBScript>
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
<!--

Sub btnbak_onclick
if frmbak.txtsvr.value="" then
window.alert("'Server Name' is empty!")
frmbak.txtsvr.focus
exit sub
end if
if frmbak.txtuid.value="" then
window.alert("'Administrators' is empty!")
frmbak.txtuid.focus
exit sub
end if
if frmbak.txtdb.value="" then
window.alert("'Database' is empty!")
frmbak.txtdb.focus
exit sub
end if
if frmbak.txtto.value="" then
window.alert("'Backup To' is empty!")
frmbak.txtto.focus
exit sub
end if
frmbak.submit
End Sub

-->
</SCRIPT>
<link rel="stylesheet" href="../../sheets/B2BStyle.css">
</HEAD>
<BODY BACKGROUND="images/main_bg.gif">
<form action="backupdbsave.asp" method="post" id=frmbak name=frmbak> <body class="bg_frame_up">
<p class=heading align=center><STRONG><FONT size=5>数 据 备 份</FONT></STRONG> </p><P align=center>
<div align="center"> <center> <table width="60%" cellpadding=1 cellspacing=1 border=0 align=center>
<tr> <td class=TD_Mand_FN align="middle" height="35" width="40%">服务器名:</td><td class=TD_Mand_F height="35" width="59%">
<INPUT id=txtsvr name=txtsvr style="FONT-SIZE: 9pt; FONT-FAMILY: Arial" ></td></tr>
<tr> <td class=TD_Mand_FN align="middle" height="35" width="40%">管 理 员:</td><td class=TD_Mand_F height="35" width="59%">
<INPUT id=txtuid name=txtuid style="FONT-SIZE: 9pt; FONT-FAMILY: Arial" ></td></tr>
<tr> <td class=TD_Mand_FN align="middle" height="35" width="40%">密    码:</td><td class=TD_Mand_F height="35" width="59%">
<INPUT id=txtpwd name=txtpwd type=password style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"></td></tr>
<tr> <td class=TD_Mand_FN align="middle" height="35" width="40%">数据库名:</td><td class=TD_Mand_F height="35" width="59%">
<p align="left"> <INPUT id=txtdb name=txtdb style="FONT-SIZE: 9pt; FONT-FAMILY: Arial" ></p></td></tr>
<TR> <td class=TD_Mand_FN align="middle" height="35" width="40%">备 份 至:<br> <u>(服务器路径)</u></td><td class=TD_Mand_F height="35" width="59%">
<input id=txtto name=txtto style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"></td></TR>
</table></center></div><P align=center><input id=btnbak name=btnbak type=button value="Start Backup" style="FONT-SIZE: 9pt; WIDTH: 105px; FONT-FAMILY: Arial; HEIGHT: 22px"></P></body>
</form>
</HTML>
skyboy0720 2004-08-19
  • 打赏
  • 举报
回复
或者自己参考SQL的联机丛书
skyboy0720 2004-08-19
  • 打赏
  • 举报
回复
在MSSQL中写一存储过程,然后ASP调用就是了!关于怎么备份,到SQL版搜索一下,很多的!
RenXiaoDan 2004-08-19
  • 打赏
  • 举报
回复
专用备份命令是什么呀具体的代码怎么写呀
xuhaimei 2004-08-19
  • 打赏
  • 举报
回复
不同的数据库,实现的方法不一样;

文件型数据库(如Access)可通过FSO的复制方法实现
非文件型数据库(如Sql server)一般都有专用备份命令
RenXiaoDan 2004-08-19
  • 打赏
  • 举报
回复
是用在sql server中进行数据备份,帮帮忙吧,解决完再加100
waiber 2004-08-19
  • 打赏
  • 举报
回复
Sql server,Oracle,Access,MySql ... ... ?
RenXiaoDan 2004-08-19
  • 打赏
  • 举报
回复
帮帮忙吧,分不够再加
加载更多回复(1)

28,391

社区成员

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

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