?? admin_database.asp
字號:
?<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="Conn.asp"-->
<%
If Session(SiteSN&"_Admin_Login")<>AdminName&"_"&AdminPass Then
Response.redirect "Admin_Login.asp"
End If
set Wap=nothing
dim Action,FoundErr,ErrMsg
Action=trim(request("Action"))
DIm dbpath,Objfso,ObjInstalled
dbpath=server.mappath(WapLinkMdb)
Objfso = "Scripting.FileSystemObject"
ObjInstalled=IsObjInstalled(Objfso)
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="style.css" rel="stylesheet" type="text/css">
<title>數據庫備份 - Powered By ITlearner</title>
</head>
<body>
<div class="main_title1">
<a href="admin_manage.asp">管理首頁</a> | <a href="admin_manage.asp?action=ListSite">管理網站信息</a> | <a href="admin_manage.asp?action=ShowLog">查看點擊記錄</a> | <a href="admin_type.asp">管理網站分類</a> | <a href="admin_manage.asp?action=BatchDelform">批量刪除數據</a> | <a href="admin_login.asp?action=exit">退出管理</a>
</div>
<div class="mainbar">
<p align="center"><a href="admin_database.asp?Action=Backup">備份數據庫</a> | <a href="admin_database.asp?Action=Restore">恢復數據庫</a> | <a href="admin_database.asp?Action=Compact">壓縮數據庫</a></p>
<%
If ObjInstalled=false Then
Response.Write "<b><font color=""red"">你的服務器不支持 FSO(Scripting.FileSystemObject)! 不能使用本功能</font></b><br>"
Response.Write "建議您每隔一段時間將數據庫下載到本地備份,以確保數據安全。<br>"
Response.Write "為防止數據庫無限增大,您可以將數據庫下載回本地用Access2000或更高版本壓縮數據庫。"
Else
if IsSqlDataBase=1 then
sqldata_readme
else
if Action="Backup" or Action="BackupData" then
call ShowBackup()
elseif Action="Compact" or Action="CompactData" then
call ShowCompact()
elseif Action="Restore" or Action="RestoreData" then
call ShowRestore()
else
call ShowCompact()
end if
end if
End if
%>
</div>
<%
sub ShowBackup()
showtit("備 份 數 據 庫")
if request("action")="BackupData" then
showinfo(backupdata())
else
dim dbname
dbname = year(date()) & twonum(month(date())) & twonum(day(date())) & twonum(hour(now()))
%>
<form method="post" action="admin_database.asp?action=BackupData">
<p>備份目錄:<input type="text" size="20" name="bkfolder" value="Databackup">
相對路徑目錄,如目錄不存在,將自動創建</p>
<p>備份名稱:<input type="text" size="20" name="bkDBname" value="<%=dbname%>">
不用輸入文件名后綴(默認為“.asa”)。如有同名文件,將覆蓋</p>
<p><input name="submit" type=submit value=" 開始備份 "></p>
</form>
<%end if
end sub
sub ShowCompact()
showtit("壓 縮 數 據 庫")
if request("action")="CompactData" then
showinfo(CompactDB(dbpath,false))
else
%>
<form method="post" action="admin_database.asp?action=CompactData">
建議每隔一段時間,對數據庫進行壓縮操作。壓縮前,請先備份數據庫,以防止發生意外。
<p>目前數據庫大小:<%ShowFileInfo(WapLinkMdb)%>
<p><input name="submit2" type="submit" value=" 壓縮數據庫 "> </p>
</form>
<%
end if
end sub
sub ShowRestore()
showtit("恢 復 數 據 庫")
if request("action")="RestoreData" then
showinfo(RestoreData())
else
%>
<form method="post" action="admin_database.asp?action=RestoreData">
<p align="center">備份數據庫路徑(相對):<input name="backpath" type="text" value="DataBackup\CuteLink.mdb" size=50 maxlength="200"></p>
<p align="center"><input name="submit" type=submit value="恢復數據庫"></p>
</form>
<%end if
end sub
sub sqldata_readme
showtit("SQL數據庫數據處理說明")
%>
<blockquote>
<B>一、備份數據庫</B>
<BR><BR>
1、打開SQL企業管理器,在控制臺根目錄中依次點開Microsoft SQL Server<BR>
2、SQL Server組-->雙擊打開你的服務器-->雙擊打開數據庫目錄<BR>
3、選擇你的數據庫名稱(如數據庫Link)-->然后點上面菜單中的工具-->選擇備份數據庫<BR>
4、備份選項選擇完全備份,目的中的備份到如果原來有路徑和名稱則選中名稱點刪除,然后點添加,如果原來沒有路徑和名稱則直接選擇添加,接著指定路徑和文件名,指定后點確定返回備份窗口,接著點確定進行備份
<BR><BR>
<B>二、還原數據庫</B><BR><BR>
1、打開SQL企業管理器,在控制臺根目錄中依次點開Microsoft SQL Server<BR>
2、SQL Server組-->雙擊打開你的服務器-->點圖標欄的新建數據庫圖標,新建數據庫的名字自行取<BR>
3、點擊新建好的數據庫名稱(如數據庫Link)-->然后點上面菜單中的工具-->選擇恢復數據庫<BR>
4、在彈出來的窗口中的還原選項中選擇從設備-->點選擇設備-->點添加-->然后選擇你的備份文件名-->添加后點確定返回,這時候設備欄應該出現您剛才選擇的數據庫備份文件名,備份號默認為1(如果您對同一個文件做過多次備份,可以點擊備份號旁邊的查看內容,在復選框中選擇最新的一次備份后點確定)-->然后點擊上方常規旁邊的選項按鈕<BR>
5、在出現的窗口中選擇在現有數據庫上強制還原,以及在恢復完成狀態中選擇使數據庫可以繼續運行但無法還原其它事務日志的選項。在窗口的中間部位的將數據庫文件還原為這里要按照你SQL的安裝進行設置(也可以指定自己的目錄),邏輯文件名不需要改動,移至物理文件名要根據你所恢復的機器情況做改動,如您的SQL數據庫裝在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢復機器的目錄進行相關改動改動,并且最后的文件名最好改成您當前的數據庫名(如原來是link_data.mdf,現在的數據庫是link2,就改成link2_data.mdf),日志和數據文件都要按照這樣的方式做相關的改動(日志的文件名是*_log.ldf結尾的),這里的恢復目錄您可以自由設置,前提是該目錄必須存在(如您可以指定d:\sqldata\link_data.mdf或者d:\sqldata\link_log.ldf),否則恢復將報錯<BR>
6、修改完成后,點擊下面的確定進行恢復,這時會出現一個進度條,提示恢復的進度,恢復完成后系統會自動提示成功,如中間提示報錯,請記錄下相關的錯誤內容并詢問對SQL操作比較熟悉的人員,一般的錯誤無非是目錄錯誤或者文件名重復或者文件名錯誤或者空間不夠或者數據庫正在使用中的錯誤,數據庫正在使用的錯誤您可以嘗試關閉所有關于SQL窗口然后重新打開進行恢復操作,如果還提示正在使用的錯誤可以將SQL服務停止然后重起看看,至于上述其它的錯誤一般都能按照錯誤內容做相應改動后即可恢復<BR><BR>
<B>三、收縮數據庫</B><BR><BR>
一般情況下,SQL數據庫的收縮并不能很大程度上減小數據庫大小,其主要作用是收縮日志大小,應當定期進行此操作以免數據庫日志過大<BR>
1、設置數據庫模式為簡單模式:打開SQL企業管理器,在控制臺根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的服務器-->雙擊打開數據庫目錄-->選擇你的數據庫名稱(如數據庫Link)-->然后點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇“簡單”,然后按確定保存<BR>
2、在當前數據庫上點右鍵,看所有任務中的收縮數據庫,一般里面的默認設置不用調整,直接點確定<BR>
3、<font color="blue">收縮數據庫完成后,建議將您的數據庫屬性重新設置為標準模式,操作方法同第一點,因為日志在一些異常情況下往往是恢復數據庫的重要依據</font>
<BR><BR>
<B>四、設定每日自動備份數據庫</B><BR><BR>
<font color="red">強烈建議有條件的用戶進行此操作!</font><BR>
1、打開企業管理器,在控制臺根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的服務器<BR>
2、然后點上面菜單中的工具-->選擇數據庫維護計劃器<BR>
3、下一步選擇要進行自動備份的數據-->下一步更新數據優化信息,這里一般不用做選擇-->下一步檢查數據完整性,也一般不選擇<BR>
4、下一步指定數據庫維護計劃,默認的是1周備份一次,點擊更改選擇每天備份后點確定<BR>
5、下一步指定備份的磁盤目錄,選擇指定目錄,如您可以在D盤新建一個目錄如:d:\databak,然后在這里選擇使用此目錄,如果您的數據庫比較多最好選擇為每個數據庫建立子目錄,然后選擇刪除早于多少天前的備份,一般設定4-7天,這看您的具體備份要求,備份文件擴展名一般都是bak就用默認的<BR>
6、下一步指定事務日志備份計劃,看您的需要做選擇-->下一步要生成的報表,一般不做選擇-->下一步維護計劃歷史記錄,最好用默認的選項-->下一步完成<BR>
7、完成后系統很可能會提示Sql Server Agent服務未啟動,先點確定完成計劃設定,然后找到桌面最右邊狀態欄中的SQL綠色圖標,雙擊點開,在服務中選擇Sql Server Agent,然后點擊運行箭頭,選上下方的當啟動OS時自動啟動服務<BR>
8、這個時候數據庫計劃已經成功的運行了,他將按照您上面的設置進行自動備份
<BR><BR>
修改計劃:<BR>
1、打開企業管理器,在控制臺根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的服務器-->管理-->數據庫維護計劃-->打開后可看到你設定的計劃,可以進行修改或者刪除操作
<BR><BR>
<B>五、數據的轉移(新建數據庫或轉移服務器)</B><BR><BR>
一般情況下,最好使用備份和還原操作來進行轉移數據,在特殊情況下,可以用導入導出的方式進行轉移,這里介紹的就是導入導出方式,導入導出方式轉移數據一個作用就是可以在收縮數據庫無效的情況下用來減小(收縮)數據庫的大小,本操作默認為您對SQL的操作有一定的了解,如果對其中的部分操作不理解,可以咨詢動網相關人員或者查詢網上資料<BR>
1、將原數據庫的所有表、存儲過程導出成一個SQL文件,導出的時候注意在選項中選擇編寫索引腳本和編寫主鍵、外鍵、默認值和檢查約束腳本選項<BR>
2、新建數據庫,對新建數據庫執行第一步中所建立的SQL文件<BR>
3、用SQL的導入導出方式,對新數據庫導入原數據庫中的所有表內容<BR>
<p>此篇文章選自 動網論壇,itlearner略做修改。</p>
</blockquote>
<%end sub%>
</body>
</html>
<%
sub showtit(str)
response.write "<p align=""center"">"&str&"</p>"
end sub
sub showinfo(str)
response.write "<p><font color=""#FF0000"">" & str & "</font></p>"
end sub
Function BackupData()
dim bkfolder,bkdbname,fso
bkfolder=trim(request("bkfolder"))
bkdbname=trim(request("bkdbname"))
if bkfolder="" then
BackupData = "請指定備份目錄!"
exit Function
end if
if bkdbname="" then
FoundErr=True
BackupData = "請指定備份文件名"
exit Function
end if
bkfolder=server.MapPath(bkfolder)
Set Fso=server.createobject(Objfso)
if fso.FileExists(dbpath) then
If fso.FolderExists(bkfolder)=false Then
fso.CreateFolder(bkfolder)
end if
fso.copyfile dbpath,bkfolder & "\" & bkdbname & ".asa"
BackupData = "備份數據庫成功,備份的數據庫為 " & bkfolder & "\" & bkdbname & ".asa"
Else
BackupData = "找不到源數據庫文件,請檢查config.asp中的配置。"
End if
End Function
'=====================壓縮參數=========================
Function CompactDB(dbPath, boolIs97)
On Error Resume Next
Dim fso, Engine, strDBPath,JET_3X
strDBPath = left(dbPath,instrrev(DBPath,"\"))
Set fso = CreateObject(Objfso)
If Err Then
Err.Clear
CompactDB = "您當前操作的目錄不支持FSO,請手動進行壓縮數據庫操作!" & vbCrLf
Exit Function
End If
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
Function RestoreData()
dim backpath,fso
backpath=request.form("backpath")
if backpath="" then
RestoreData = "請指定原備份的數據庫文件名!"
exit Function
end if
backpath=server.mappath(backpath)
Set Fso=server.createobject(Objfso)
if fso.fileexists(backpath) then
fso.copyfile Backpath,Dbpath
RestoreData = "成功恢復數據!"
else
RestoreData = "找不到指定的備份文件!"
end if
End Function
Sub ShowFileInfo(filespec)
Dim fs, f, s, showsize
Set fs = Server.CreateObject(Objfso)
Set f = fs.GetFile(server.mappath(filespec))
s = f.size
if s>1024*1024 then
showsize=formatnumber(s/1024/1024,2) & " MB"
elseif s>1024 then
showsize=formatnumber(s/1024,2) & " KB"
else
showsize=s & " Byte"
end if
response.write "<font face=""verdana"">" & showsize & "</font>"
End Sub
'檢查組件是否已經安裝
Function IsObjInstalled(ClassString)
On Error Resume Next
IsObjInstalled = False
Err = 0
Dim TestObj
Set TestObj = Server.CreateObject(ClassString)
If 0 = Err Then IsObjInstalled = True
Set TestObj = Nothing
Err = 0
End Function
Function twonum(num)
if len(num)=1 then
twonum="0"&num
else
twonum=num
end if
End Function
%>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -