📄 admin_datebaseback.asp
字号:
<!--#include file="Conn.ASP"-->
<!--#include file="../inc/config.asp"-->
<!--#include file="session.asp"-->
<html>
<head>
<title>数据管理</title>
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="css.css" type="text/css">
</head>
<body>
<%Server.ScriptTimeout=999999 '程序执行超时秒数%>
<%
Sub ShowAdminErrMsg()
dim strMsg
strMsg=strMsg & "<br><br>" & vbcrlf
strMsg=strMsg & " <table cellpadding=""5"" cellspacing=""1"" border=""0"" width=400 class=""tableBorder"" align=center>" & vbcrlf
strMsg=strMsg & " <th height=25>错误信息</th>" & vbcrlf
strMsg=strMsg & " <tr class=""tdbg""><td height=""100"" valign=""top""><br>您的操作请求产生错误了,原因如下:<br><br>" & ErrCodes &"</td></tr>" & vbcrlf
strMsg=strMsg & " <tr class=""tdbg1"" align=""center""><td ><a href=""javascript:history.go(-1)""> << 返回上一页</a></td></tr>" & vbcrlf
strMsg=strMsg & "</table>" & vbcrlf
response.write strMsg
End Sub
Sub ShowAdminSuccessMsg(SuccessMsg)
dim strMsg
strMsg=strMsg & "<br><br>" & vbcrlf
strMsg=strMsg & " <table cellpadding=""5"" cellspacing=""1"" border=""0"" width=400 class=""tableBorder"" align=center>" & vbcrlf
strMsg=strMsg & " <th height=25>成功信息</th>" & vbcrlf
strMsg=strMsg & " <tr><td class=""tdbg"" height=""100"" valign=""top""><br><li>" & SuccessMsg &"</td></tr>" & vbcrlf
strMsg=strMsg & " <tr align=""center""><td class=""tdbg1""><a href=""javascript:history.go(-1)""><< 返回上一页</a></td></tr>" & vbcrlf
strMsg=strMsg & "</table>" & vbcrlf
response.write strMsg
End Sub
Dim Action,FoundErr,ErrCodes
dim dbpath,bkfolder,bkdbname,fso,fso1
Dim AFSO,AFile,AData,AFDate
FoundErr=0
Action=Request("action")
Select Case Action
Case "BackupDataMain"
Call BackupDataMain()
Case "BackupData"
Call backupdata()
Case "CompressDataMain"
Call CompressDataMain()
Case "CompressData"
Call CompressData()
Case "RestoreDataMain"
Call RestoreDataMain()
Case "RestoreData"
Call RestoreData()
Case "ConnSqlMain"
Call ConnSqlMain()
Case "ConnSql"
Call ConnSql()
Case Else
End Select
If FoundErr=1 then
Call ShowAdminErrMsg()
End If
Sub BackupDataMain
%>
<table cellpadding="5" cellspacing="1" border="1" width="100%" align=center bordercolor="#A4CEE4" bordercolordark="#FFFFFF">
<tr> <th colspan="2" height=25 bgcolor="#588fc7">
<font color="#FFFFFF">
<B>备份数据库</B>( 需要FSO支持,FSO相关帮助请看微软网站 )</font></th>
</tr>
<form method="post" action="?action=BackupData&act=Backup">
<tr>
<td height="25" nowrap><div align="right"><span class="TableRow1">当前SQL数据库名称:</span></div></td>
<td class="tdbg1" height="25" width="100%" >
<span class="TableRow1">
<input type=text size=25 name=SqlDataName value="<%=SqlDatabaseName%>">
</span> </td>
</tr>
<tr>
<td height="25" nowrap><div align="right"><span class="TableRow1">SQL数据库用户名称:</span></div></td>
<td class="tdbg1" height="25" width="100%" >
<span class="TableRow1">
<input type=text size=25 name=SqlUserID value="<%=SqlUsername%>">
</span> <span class="TableRow1">请输入您的SQL数据库用户名</span></td>
</tr>
<tr>
<td height="25" nowrap><div align="right"><span class="TableRow1">SQL数据库用户密码:</span></div></td>
<td class="tdbg1" height="25" width="100%" >
<span class="TableRow1">
<input type=Password size=25 name=SqlUserPass value="<%=SqlPassword%>">
</span> <span class="TableRow1">请输入您的SQL数据库连接密码</span></td>
</tr>
<tr>
<td height="25" nowrap><div align="right"><span class="TableRow1">SQL数据库服务器名:</span></div></td>
<td class="tdbg1" height="25" ><span class="TableRow1">
<input type=text size=25 name=SqlServer value="<%=SqlLocalName%>">
连接服务器名(本地用local,外地用IP) </span></td>
</tr>
<tr>
<td height="25" nowrap><div align="right"><span class="TableRow1">备份SQL数据库目录:</span></div></td>
<td class="tdbg1" height="25" ><span class="TableRow1">
<input type=text size=25 name=BackupSqlDir value="Databackup">
</span><span class="TableRow1">如目录不存在,程序将自动创建</span></td>
</tr>
<tr>
<td height="25" nowrap><span class="TableRow1">备份SQL数据库名称:</span></td>
<td class="tdbg1" height="25" ><span class="TableRow1">
<input type=text size=25 name=BackupSqlName value="$1.bak">
如使用默认的($1)备份名,系统将自动按日期时间创建备份名称 </span></td>
</tr>
<tr align="center">
<td height="25" colspan="2">
<input type=submit value="确定备份" name="submit" class="button">
</td>
</tr>
</form>
</table>
<%
End Sub
sub backupdata()
On Error Resume Next
Dim SqlDataName, SqlUserPass, SqlUserID, SqlServer, SqlLoginTimeout
Dim srv, bak, BackupFilePath, BackupSqlDir, BackupSqlName,BackupFileName
SqlDataName = Trim(Request.Form("SqlDataName"))
SqlUserPass = Trim(Request.Form("SqlUserPass"))
SqlUserID = Trim(Request.Form("SqlUserID"))
SqlServer = Trim(Request.Form("SqlServer"))
BackupSqlDir = Trim(Request.Form("BackupSqlDir"))
BackupSqlName = Trim(Request.Form("BackupSqlName"))
SqlLoginTimeout = 20 '登陆超时
CheckSql
If FoundErr = True Then Exit Sub
If CheckDir(BackupSqlDir) = False Then
MakeNewsDir BackupSqlDir
End If
BackupFileName = SqlDataName & "_" & Replace(FormatDateTime(now,2), "-", "") & "_" & Replace(FormatDateTime(now,3), ":", "")
BackupFilePath = BackupSqlDir & "\" & BackupSqlName
BackupFilePath = Replace(BackupFilePath, "$1", BackupFileName)
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = SqlLoginTimeout
srv.Connect SqlServer, SqlUserID, SqlUserPass
Set bak = Server.CreateObject("SQLDMO.Backup")
bak.Database = SqlDataName
'bak.Devices = Files
bak.Files = BackupFilePath
bak.SQLBackup srv
If Err.Number>0 Then
Response.Write Err.Number & "<font color=red><br>"
Response.Write Err.Description & "</font>"
End If
Set srv = Nothing
Set bak = Nothing
request.write "<li>SQL数据库备份成功!</li>"
end sub
'检查某一目录是否存在
Function CheckDir(FolderPath)
folderpath=Server.MapPath(".")&"\"&folderpath
Set fso1 = CreateObject("Scripting.FileSystemObject")
If fso1.FolderExists(FolderPath) then
'存在
CheckDir = 1
Else
'不存在
CheckDir = 0
End if
Set fso1 = nothing
End Function
'根据指定名称生成目录
Function MakeNewsDir(foldername)
dim f
Set fso1 = CreateObject("Scripting.FileSystemObject")
Set f = fso1.CreateFolder(foldername)
MakeNewsDir = 1
Set fso1 = nothing
End Function
'压缩数据库
sub CompressDataMain()
%>
SQL数据库没必要压缩了!
<%
end sub
Sub CompressData()
End Sub
'恢复数据库
sub RestoreDataMain()
%>
<table cellpadding="5" cellspacing="1" border="1" width="100%" align=center bordercolor="#A4CEE4" bordercolordark="#FFFFFF">
<tr>
<th colspan="2" height=25 bgcolor="#588fc7"> <font color="#FFFFFF"> <B>恢复网站数据</B>( 需要FSO支持,FSO相关帮助请看微软网站
)</font></th>
</tr>
<form method="post" action="?action=RestoreData">
<tr>
<td height="25" colspan="2"><b>注意:</b><span class="TableRow1">您可以用这个功能来恢复您的法规数据,请确定你的数据库用户有相关权限才能恢复!</span></td>
</tr>
<tr>
<td height="25" nowrap><span class="TableRow1">恢复SQL数据库名称:</span></td>
<td class="tdbg1" height="25" width="100%" >
<span class="TableRow1">
<input type=text size=25 name=SqlDataName2 value="<%=SqlDatabaseName%>">
</span> </td>
</tr>
<tr>
<td height="25" nowrap><span class="TableRow1">SQL数据库用户名称:</span></td>
<td class="tdbg1" height="25" width="100%" >
<span class="TableRow1">
<input type=text size=25 name=SqlUserID2 value="<%=SqlUsername%>">
请输入您的SQL数据库用户名 </span></td>
</tr>
<tr>
<td height="25" nowrap><span class="TableRow1">SQL数据库用户密码:</span></td>
<td class="tdbg1" height="25" ><span class="TableRow1">
<input type=Password size=25 name=SqlUserPass2 value="<%=SqlPassword%>">
请输入您的SQL数据库连接密码</span></td>
</tr>
<tr>
<td height="25" nowrap><span class="tdbg1"><span class="TableRow1">SQL数据库服务器名:</span></span></td>
<td class="tdbg1" height="25" ><span class="TableRow1"> <input type=text size=25 name=SqlServer2 value="<%=SqlLocalName%>">
连接服务器名(本地用local,外地用IP)</span></td>
</tr>
<tr>
<td height="25" nowrap><span class="tdbg1"><span class="TableRow1">备份SQL数据库目录:</span></span></td>
<td class="tdbg1" height="25" ><span class="TableRow1">
<input type=text size=25 name=BackupSqlDir2 value="Databackup">
请输入您备份的数据库目录</span></td>
</tr>
<tr>
<td height="25" nowrap><span class="tdbg1"><span class="TableRow1">备份SQL数据库名称:</span></span></td>
<td class="tdbg1" height="25" ><span class="TableRow1">
<input type=text size=25 name=BackupSqlName2 value="$1.bak">
请输入您备份的数据库名</span></td>
</tr>
<tr>
<td height="25" colspan="2" align="center">
<input type=submit value="恢复数据" name="submit3" class="button">
</td>
</tr>
<tr>
<td height="25" colspan="2"><span class="TableRow1">注意:数据库使用中可能无法恢复</span></td>
</tr>
</form>
</table>
<%
end sub
Sub RestoreData()
On Error Resume Next
Dim SqlDataName, SqlUserPass, SqlUserID, SqlServer, SqlLoginTimeout
Dim srv, rest, BackupFilePath, BackupSqlDir, BackupSqlName, FSO
SqlDataName = Trim(Request.Form("SqlDataName"))
SqlUserPass = Trim(Request.Form("SqlUserPass"))
SqlUserID = Trim(Request.Form("SqlUserID"))
SqlServer = Trim(Request.Form("SqlServer"))
BackupSqlDir = Trim(Request.Form("BackupSqlDir"))
BackupSqlName = Trim(Request.Form("BackupSqlName"))
SqlLoginTimeout = 20 '登陆超时
CheckSql
If FoundErr = True Then Exit Sub
BackupFilePath = BackupSqlDir & "/" & BackupSqlName
BackupFilePath = Replace(BackupFilePath, "$1", SqlDataName)
BackupFilePath = Server.MapPath(BackupFilePath)
Set FSO = Server.CreateObject("scripting.filesystemobject")
If FSO.FileExists(BackupFilePath) Then
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = SqlLoginTimeout
srv.Connect SqlServer, SqlUserID, SqlUserPass
Set rest = Server.CreateObject("SQLDMO.Restore")
rest.Action = 0
rest.Database = SqlDataName
'rest.Devices = Files
rest.Files = BackupFilePath
rest.ReplaceDatabase = True
rest.SQLRestore srv
If Err.Number>0 Then
ErrMsg = ErrMsg & "<li>备份数据库时发生错误!</li>"
ErrMsg = ErrMsg & "<li>错误代码:"
ErrMsg = ErrMsg & Err.Number & "</li><li><font color=red>"
'Response.Write Err.Number&"<font color=red><br>"
ErrMsg = ErrMsg & Err.Description&"(注:此信息可能不准,请登陆FTP查看是不生成相应文件!)</font></li>"
FoundErr = True
Exit Sub
End If
Set srv = Nothing
Set rest = Nothing
response.write "<li>SQL数据库恢复成功!</li>"
Else
FoundErr = True
ErrMsg = "备份目录下并无您的备份文件!"
Exit Sub
End If
Set FSO = Nothing
End Sub
'数据库管理
Sub ConnSqlMain()
%>
<table cellpadding="5" cellspacing="1" border="1" width="100%" align=center bordercolor="#A4CEE4" bordercolordark="#FFFFFF">
<tr>
<th colspan="2" height=25 bgcolor="#588fc7"> <font color="#FFFFFF"> <B>执行SQL操作</B></font></th>
</tr>
<form method="post" action="?action=ConnSql">
<tr>
<td height="25" colspan="2"><b>SOL语句执行操作</b>:本操作仅限高级、对SQL编程比较熟悉的用户,您可以直接输入SQL执行语句,比如delete
from bbs1 where username='test'进行删除某用户帖子操作,在操作前请慎重考虑您的执行语句是否正确和完整,执行后不可恢复。</td>
</tr>
<tr>
<td height="25" nowrap>请输入SQL语句指令:</td>
<td class="tdbg1" height="25" width="100%" >
<Input type="text" name="SQL_Statement" Size=60 class="form">
<input type="Submit" value="执 行" name="Submit" class="button">
</td>
</tr>
</form>
</table>
<%
End Sub
Sub ConnSql()
If Not IsUseSQl Then
ErrCodes = ErrCodes & "<li>本功能已经被设置为禁止使用!</li><br><li>如果您需要开启的话,请自行修改conn.ASP,找到IsUseSQl=0,改为:IsUseSQl=1;如果您的网站有2个以上管理员,为了系统安全,建议不要开启。"
FoundErr=1
Exit Sub
End If
Dim SQL_Statement
SQL_Statement=Request("SQL_Statement")
if SQL_Statement<>"" then
On Error Resume Next
ELOOK.Execute(SQL_Statement)
if err.number=0 then
Call ShowAdminSuccessMsg("SQL语句指令执行成功!")
else
ErrCodes = ErrCodes & "<li>SQL语句有问题!具体出错如下:<br>"&Err.Description&"</li><br>"
FoundErr=1
end if
Else
ErrCodes = ErrCodes & "<li>SQL语句指令不能为空!</li><br>"
FoundErr=1
End if
End Sub
%><br>执行此操作前,请先关闭其它网页窗口,断开FTP连接。<br>
提交后,请耐心等待<font color=red>(请不要重复点击上面的按钮),</font>完成时间视网络状况而定。<br>
本操作<font color="#FF0000">极占系统资源</font>请在网络空闲时进行此操作,<b>执行此操作可能导致服务器变慢或不稳定</b>。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -