asp 線上備份還原sql server 資料庫,對於遠端沒有提供sqlserver遠端連線或打包下載的朋友是個臨時解決方法,對於大數據來說可能效果不好。 asp線上備份sql server資料庫:
1、備份sqlserver
複製代碼代碼如下:
<%
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、恢復sqlserver
複製代碼代碼如下:
<%
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
%>
ACCESS原理一樣
複製代碼代碼如下:
<%
'*****************************************
function CopyTo(ByVal cFile,ByVal toFile)
cFile=Server.MapPath(cFile) '所要備份的文件
toFile=Server.MapPath(toFile) '備份文件
Dim cFso,cf
set cFso=Server.CreateObject(Scripting.FileSystemObject)
cFso.fileexists(cFile)
cFso.Copyfile cFile,toFile
end function
'*********************************************
' ASP實作備份及還原ACCESS資料庫操作
'本頁為databackup.asp
dim dbpath,bkfolder,bkdbname,fso,fso1
call main()
call main2()
conn.close
set conn=nothing
sub main()
if request(action)=Backup then
call backupdata()
else
%>
<table cellspacing=1 cellpadding=1 align=center width=90%>
<tr>
<th height=25 >
<B>資料庫備份</B>
</th>
</tr>
<form method=post action=databackup.asp?action=Backup>
<tr>
<td height=100 style=line-height:150%>
目前資料庫路徑(相對路徑):
<input type=text size=15 name=DBpath value=../mdb/database.mdb><BR>
備份資料庫目錄(相對路徑):
<input type=text size=15 name=bkfolder value=../Databackup> 如目錄不存在,程式會自動建立<BR>
備份資料庫名稱(填寫名稱):
<input type=text size=15 name=bkDBname value=database.mdb> 如備份目錄有該
文件,將覆蓋,如沒有,將自動建立<BR>
<input type=submIT value=備份資料><hr align=center width=90% color=#999999></td>
</tr>
</form>
</table>
<%
end if
end sub
sub main2()
if request(action)=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)
Response.wrITe Backpath
Set Fso=server.createobject(scripting.filesystemobject)
if fso.fileexists(dbpath) then
fso.copyfile Dbpath,Backpath
response.wrITe <font color=red>成功復原資料! </font>
else
response.wrITe <font color=red>備份目錄下並無您的備份檔! </font>
end if
else
%>
<table align=center cellspacing=1 cellpadding=1 width=90%>
<tr>
<th height=25 >
<B>復原資料庫</B>
</th>
</tr>
<form method=post action=databackup.asp?action=Restore>
<tr>
<td height=100 >
備份資料庫路徑(相對):
<input type=text size=30 name=DBpath value=../Databackup/database.mdb> <BR>
目前資料庫路徑(相對):
<input type=text size=30 name=backpath value=../mdb/database.mdb><BR>
<input type=submIT value=恢復資料> <hr width=90% align=center color=#999999>
<font color=#666666>·注意:所有路徑都是相對路徑</font></td>
</tr>
</form>
</table>
<%
end if
end sub
sub backupdata()
Dbpath=request.form(Dbpath)
Dbpath=server.mappath(Dbpath)
bkfolder=request.form(bkfolder)
bkdbname=request.form(bkdbname)
Set Fso=server.createobject(scripting.filesystemobject)
if fso.fileexists(dbpath) then
If CheckDir(bkfolder) = True Then
fso.copyfile dbpath,bkfolder& //& bkdbname
else
MakeNewsDir bkfolder
fso.copyfile dbpath,bkfolder& //& bkdbname
end if
response.wrITe <font color=red>備份資料庫成功,您備份的資料庫路徑為&bkfolder& //& bkdbname+</font>
Else
response.wrITe <font color=red>找不到您所需要備份的檔案。 </font>
End if
end sub
'------------------檢查某一目錄是否存在-------------------
Function CheckDir(FolderPath)
folderpath=Server.MapPath(.)&//&folderpath
Set fso1 = CreateObject(Scripting.FileSystemObject)
If fso1.FolderExists(FolderPath) then
'存在
CheckDir = True
Else
'不存在
CheckDir = False
End if
Set fso1 = nothing
End Function
'-------------根據指定名稱產生目錄---------
Function MakeNewsDir(foldername)
dim f
Set fso1 = CreateObject(Scripting.FileSystemObject)
Set f = fso1.CreateFolder(foldername)
MakeNewsDir = True
Set fso1 = nothing
End Function
%>