asp備份資料庫
A. 急~~~ASP備份和恢復SQL資料庫的操作方法
首先,你要這樣來備份資料庫:
SQL="backup database 資料庫名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"' with INIT"
這樣你的備份將覆蓋原來的同名備份(如果有的話),否則備份將附加在原來的備份上,不僅文件越來越大,日後還原時還會發生各種問題。
其次,資料庫在有用戶連接時是不能恢復的。
所以你要備份的話,不能鏈接到你的資料庫,要鏈接到master資料庫,使用:
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd=;database=master"
再次,僅僅你不鏈接到資料庫,但不能保證沒有別人鏈接資料庫,所以還要斷開所有用戶到資料庫的連接,才能開始還原。可以使用下列語句來進行:
declare backup_cursor cursor global for select 'kill '+rtrim(spid) from master.dbo.sysprocesses where dbid=db_id('資料庫名') exec sp_msforeach_worker '?'
所以,你的程序要改成這樣:
1、備份
<%
SQL="backup database 資料庫名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"' with INIT"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯誤:"&err.Descripting
else
response.write "數據備份成功!"
end if
cnn.close
set cnn=nothing
%>
2、恢復
<%
aSQL="declare backup_cursor cursor global for select 'kill '+rtrim(spid) from master.dbo.sysprocesses where dbid=db_id('資料庫名') exec sp_msforeach_worker '?'"
bSQL="Restore database 資料庫名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd=;database=master"
cnn.execute aSQL
cnn.execute bSQL
on error resume next
if err<>0 then
response.write "錯誤:"&err.Descripting
else
response.write "數據恢復成功!"
end if
cnn.close
set cnn=nothing
%>
B. ASP中怎麼實現SQL資料庫備份,恢復
1、備份
<%
SQL="backup database 資料庫名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯誤:"&err.Descripting
else
response.write "數據備份成功!"
end if
%>
2、恢復
<%
SQL="Restore database 資料庫名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯誤:"&err.Descripting
else
response.write "數據恢復成功!"
end if
%>
註:以上語句是把數據備份到磁碟的backup目錄下,文件名為backuptext.dat。
C. 如何用asp代碼實現數據備份和恢復
<form name="form1" method="post" action="?action=bf">
<table width="90%" border="0" align=center cellpadding="5" cellspacing="1" bgcolor="#336699" class="tableBorder">
<tr>
<th width="593" height=25 bgcolor="#FFFFFF" > <B>備份數據</B>( 需要FSO支持,FSO相關幫助請看微軟網站 ) </th>
</tr>
<tr>
<td height=100 bgcolor="#FFFFFF" class="forumrow">
<span class="STYLE1">
<%
if request.QueryString("action")="bf" then
Dbpath=request.form("Dbpath")
backpath=request.form("backpath")&".mdb"
if dbpath="" then
response.write "請輸入您要您要備份的資料庫"
else
Dbpath=server.mappath(Dbpath)
end if
backpath=server.mappath(backpath)
Set Fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(dbpath) then
fso.file Dbpath,Backpath
response.write "數據備份成功!"
else
response.write "資料庫地址不存在,請檢查CONN.ASP中的DB=這一項是否是絕對地址!"
end if
end if%>
</span> <div align="center">
<p>備份資料庫路徑(相對):
<input name=backpath type=text id="backpath" value="bak\jester_bak" size=30>
<br>
目標資料庫路徑(相對):
<input name=DBpath type=text id="DBpath" value="<%=db%>" size=30>
<BR>
<BR>
<input name="submit" type=submit value="備份數據">
</p>
<p>*必須是絕對的資料庫地址<br>
</p>
</div></td>
</tr>
</table>
<p> </p>
</form>
<form name="form1" method="post" action="?action=hy">
<font color=red class="STYLE1">
<%
if request.QueryString("action")="hy" then
Dbpath=request.form("Dbpath")
backpath=request.form("backpath")
if dbpath="" then
response.write "請輸入您要恢復成的資料庫全名"
else
Dbpath=server.mappath(Dbpath)
end if
backpath=server.mappath(backpath)
Set Fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(dbpath) then
fso.file Dbpath,Backpath
response.write "成功恢復數據!"
else
response.write "備份目錄下並無您的備份文件!"
end if
end if%>
</font> <table width="80%" height="1" border="0" align=center cellpadding="5" cellspacing="1" bgcolor="#336699" class="tableBorder">
<tr>
<th width="593" height=25 bgcolor="#FFFFFF" > <B>恢復論壇數據</B>( 需要FSO支持,FSO相關幫助請看微軟網站 ) </th>
</tr>
<tr>
<td height=100 bgcolor="#FFFFFF" class="forumrow"> 備份資料庫路徑(相對):
<input type=text size=30 name=DBpath value="bak\jester_bak.Mdb">
<BR>
目標資料庫路徑(相對):
<input name=backpath type=text id="backpath" value="<%=db%>" size=30>
<BR>
填寫您當前使用的資料庫路徑,如不想覆蓋當前文件,可自行命名(注意路徑是否正確),然後修改conn.asp文件,如果目標文件名和當前使用資料庫名一致的話,不需修改conn.asp文件<BR>
<input name="submit" type=submit value="恢復數據">
<br>
-----------------------------------------------------------------------------------------<br>
在上面填寫本程序的資料庫路徑全名,本程序的默認備份資料庫文件為,請按照您的備份文件自行修改。<br>
您可以用這個功能來備份您的法規數據,以保證您的數據安全!<br>
注意:所有路徑都是相對與程序空間根目錄的相對路徑 </td>
</tr>
</table>
<p></p>
</form>
<span class="STYLE1">
<%
if request.QueryString("action")="ys" then
dim dbpath,boolIs97
if request("Dbpath")<>"" then Dbpath=request("Dbpath") end if
if request("Dbpath")="" then
if request("bkfolder")<>"" then bkfolder=request("bkfolder") else bkfolder="spubbsbak" end if
if request("bkdbname")<>"" then bkdbname=request("bkdbname") else bkdbname="spubbs" end if
bkdbname=bkdbname&"#.asp"
Dbpath=bkfolder&"\"&bkdbname
end if
'dbpath = request("dbpath")
if request("boolIs97")<>"" then boolIs97=request("boolIs97") else boolIs97=true end if
'boolIs97 = request("boolIs97")
If dbpath <> "" Then
dbpath = server.mappath(dbpath)
response.write(CompactDB(dbpath,boolIs97))
End If
'=====================壓縮參數=========================
Function CompactDB(dbPath, boolIs97)
Dim fso, Engine, strDBPath,JET_3X
strDBPath = left(dbPath,instrrev(DBPath,"\"))
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(dbPath) Then
fso.CopyFile dbpath,strDBPath & "temp.mdb"
Set Engine = CreateObject("JRO.JetEngine")
If boolIs97 = "True" Then
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp1.mdb;" _
& "Jet OLEDB:Engine Type=" & JET_3X
Else
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp1.mdb"
End If
fso.CopyFile strDBPath & "temp1.mdb",dbpath
fso.DeleteFile(strDBPath & "temp.mdb")
fso.DeleteFile(strDBPath & "temp1.mdb")
Set fso = nothing
Set Engine = nothing
CompactDB = "你的資料庫, " & dbpath & ", 已經壓縮成功!" & vbCrLf
Else
CompactDB = "資料庫名稱或路徑不正確. 請重試!" & vbCrLf
End If
End Function
end if%>
</span>
<form action="?action=ys" method="post">
<table width="80%" height="1" border="0" align=center cellpadding="5" cellspacing="1" bgcolor="#336699" class="tableBorder">
<tr>
<td width="581" height=25 bgcolor="#FFFFFF" class="forumrow"><b>注意:</b><br>
輸入資料庫所在相對路徑,並且輸入資料庫名稱(正在使用中資料庫不能壓縮,請選擇備份資料庫進行壓縮操作) </td>
</tr>
<tr>
<td bgcolor="#FFFFFF" class="forumrow">壓縮資料庫:
<input type="text" name="dbpath" value=<%=db%>>
<input name="submit3" type="submit" value="開始壓縮"></td>
</tr>
<tr>
<td bgcolor="#FFFFFF" class="forumrow"><input type="checkbox" name="boolIs97" value="True">
如果使用 Access 97 資料庫請選擇 (默認為 Access 2000 資料庫)<br>
<br></td>
</tr>
</table> </form>
D. ASP實現SQL資料庫備份 還原!!!!!!!!
<% '=========================資料庫處理=============================================
IF Request.form("adminDatabase")<>"" Then
call CheckAdminLogin("資料庫管理")
ZD_AdminDatabase=Request.form("adminDatabase")
select case ZD_AdminDatabase
case "Compact"
osMessage=CompactDatabase()
case "backup"
osMessage=BackupDatabase()
case "Restore"
osMessage=RestoreDatabase()
case else
osMessage=GetErrMessage()
End select
End IF
%>
<%
Function updateDatabase()
Dim resultMessage
'On Error Resume Next
updateDatabase = resultMessage
End Function
%>
<%
Function CompactDatabase()
Set Conn=Nothing
Dim FSO,Engine
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
IF FSO.FileExists(Server.Mappath(ZD_DataName)) Then
' Response.Write "<div id=""Layer1"" style=""position:absolute; left:220px; top:153px; width:372px; height:95px; z-index:1"" class=""tdbg3""></div>"
' Response.Write "<div id=""Layer2"" style=""position:absolute; left:222px; top:155px; width:371px; height:93px; z-index:1; overflow: hidden;"" class=""tdbg1"">資料庫壓縮中....請等待....</div>"
Set Engine = CreateObject("JRO.JetEngine")
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath(ZD_DataName), "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath(ZD_DataName & ".temp")
FSO.CopyFile Server.Mappath(ZD_DataName & ".temp"),Server.Mappath(ZD_DataName)
FSO.DeleteFile(Server.Mappath(ZD_DataName & ".temp"))
Set FSO = Nothing
Set Engine = nothing
CompactDatabase = "<span class=""importantText"">壓縮資料庫成功!!</span>"
'call SaveLog(Session("member"),"成功操作",now(),"資料庫壓縮",getIP(),true)
End If
End Function
Function BackupDatabase()
Set Conn=Nothing
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
FSO.CopyFile Server.Mappath(ZD_DataName),Server.Mappath(ZD_DataName & ".bak")
Set FSO = Nothing
BackupDatabase = "<span class=""importantText"">資料庫備份成功!!</span>"
'call SaveLog(Session("member"),"操作成功",now(),"資料庫備份",getIP(),true)
End Function
Function RestoreDatabase()
Application.Contents.Removeall()
Set Conn=Nothing
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
IF FSO.FileExists(Server.Mappath(ZD_DataName & ".bak")) Then
FSO.CopyFile Server.Mappath(ZD_DataName & ".bak"),Server.Mappath(ZD_DataName)
Set FSO = Nothing
RestoreDatabase = "<span class=""importantText"">資料庫恢復成功!!</span>"
'call SaveLog(Session("member"),"操作成功",now(),"資料庫恢復",getIP(),true)
Else
Set FSO = Nothing
RestoreDatabase = "<span class=""importantText"">不存在有備份文件!</span>"
'call SaveLog(Session("member"),"操作失敗",now(),"資料庫恢復",getIP(),false)
End IF
End Function
%>
大體是這樣您修改下吧。
E. 如何用asp做access資料庫備份
用asp做access資料庫備份
<% SQL="backup database 資料庫名 to disk='"&
Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯誤:"&err.Descripting
else
response.write "數據備份成功!"
end if %>
F. 怎樣用ASP備份SQL2000資料庫
ASP備份和恢復SQL資料庫的操作方法:
1、備份
<%
SQL="backup database 資料庫名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯誤:"&err.Descripting
else
response.write "數據備份成功!"
end if
%>
2、恢復
<%
SQL="Restore database 資料庫名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=伺服器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "錯誤:"&err.Descripting
else
response.write "數據恢復成功!"
end if
%>
G. asp +access 怎樣實現資料庫備份
<% dim action dim admin_flag Function finddir(filepath) finddir="" for i=1 to len(filepath) if left(right(filepath,i),1)="/" or left(right(filepath,i),1)="\" then abc=i exit for end if next if abc <> 1 then finddir=left(filepath,len(filepath)-abc+1) end if end Function action=trim(request("action")) dim dbpath,bkfolder,bkdbname,fso,fso1 Dim uploadpath '備份數據 select case action case "BackupData" '備份數據 if request("act")="Backup" then call updata() else call BackupData() end if case "RestoreData" '恢復數據 dim backpath if request("act")="Restore" then Dbpath=request.form("Dbpath") backpath=request.form("backpath") if dbpath="" then response.write "請輸入您要恢復成的資料庫全名" else Dbpath=server.mappath(Dbpath) end if backpath=server.mappath(backpath) Set Fso=server.createobject("scripting.filesystemobject") if fso.fileexists(dbpath) then fso.file Dbpath,Backpath response.write "<br>" response.write "<br>" response.write "<br>" response.write "<center>成功恢復數據!" response.write "</center>" else response.write "備份目錄下並無您的備份文件!" end if else call RestoreData() end if end select '====================備份資料庫========================= sub BackupData() If IsSqlDataBase = 1 Then SQLUserReadme() Exit Sub End If %>
H. asp如何備份mdb資料庫
Function CopyFiles(TempSource,TempEnd)
DimFSO
Set FSO =Server.CreateObject("Scripting.FileSystemObject")
IF FSO.FileExists(TempEnd) then
Response.Write "目標備份文件 <b>"& TempEnd &"</b> 已存在,請先刪除!"
Set FSO=Nothing
Exit Function
End IF
IFFSO.FileExists(TempSource) Then
Else
Response.Write "要復制的源資料庫文件<b>"&TempSource&"</b>不存在!"
Set FSO=Nothing
Exit Function
End If
FSO.CopyFileTempSource,TempEnd
Response.Write "已經成功復制文件<b>"&TempSource&"</b>到<b>"&TempEnd&"</b>"
Set FSO =Nothing
End Function
使用如下:
db="/Article/UploadFiles/200710/"&Title&""
TempSource= Server.MapPath(db)
db1="/Article/PicFile/"&Title&""
'db1=Replace(db1,"200708/","")
TempEnd=Server.MapPath(db1)
Call CopyFiles(TempSource,TempEnd)
Response.Write TempSource
Response.Write "<br>"
Response.Write TempEnd
I. 用asp實現資料庫備份
用FileSystemObject將資料庫復制一份
J. asp怎麼進行資料庫備份
主要看你是啥資料庫了。
如果是ACCESS,可以直接復制到其他盤
如果是SQL
SEVER,要進入企業管理器,然後對資料庫點右鍵--所有任務--資料庫備份,選擇指定的路徑進行備份