Copia de seguridad ASP mejorada de la base de datos de SQL Server
Autor:Eve Cole
Fecha de actualización:2009-06-24 17:02:32
<método de formulario="publicación" nombre="miformulario" acción="?acción=base de datos de respaldo">
Seleccione acción: <INPUT TYPE="radio" NAME="act" id="act_backup"value="backup"><label for=act_backup>Copia de seguridad</label>
<INPUT TYPE="radio" NAME="act" id="act_restore" value="restore"><label for=act_restore>Restaurar</label>
<br>Nombre de la base de datos: <INPUT TYPE="text" NAME="nombre de la base de datos" value="<%=request("nombre de la base de datos")%>">
<br>Ruta del archivo: <INPUT TYPE="text" NAME="bak_file" value="c:$1.bak">(ruta del archivo de copia de seguridad o recuperación)<br>
<tipo de entrada="enviar" valor="OK" id=enviar1 nombre=enviar1>
</formulario>
<%
'¡Copia de seguridad y recuperación de la base de datos de SQL Server!
si request("action")="backupdatabase" Entonces
dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
servidorsql = "localhost"
nombresql = "sa"
sqlcontraseña="contraseña"
sqlLoginTimeout = 15
nombre de la base de datos = trim(solicitud("nombre de la base de datos"))
bak_file = recortar(solicitud("bak_file"))
bak_file = reemplazar(bak_file,"$1",nombre de la base de datos)
actuar = lcase(solicitud("actuar"))
si nombre de base de datos = "" entonces
respuesta.escribir "nombre de la base de datos de entrada"
demás
si act = "copia de seguridad" entonces
Establecer srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Conectar sqlserver,sqlname, sqlpassword
Establecer bak = Server.CreateObject("SQLDMO.Backup")
bak.Database=nombre de la base de datos
bak.Devices=Archivos
bak.Acción = 0
bak.Inicializar = 1
'bak.Reemplazar = Verdadero
bak.Files=archivo_bak
bak.SQLBackup srv
si número de error>0 entonces
respuesta.escribir número.err&"<font color=rojo><br>"
respuesta.escribir error.descripción&"</font>"
terminar si
Response.write "<font color=green>¡Copia de seguridad exitosa!</font>"
elseif act="restaurar" entonces
'¡La restauración debe realizarse cuando la base de datos no esté en uso!
Establecer srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Conectar sqlserver,sqlname, sqlpassword
Establecer resto=Server.CreateObject("SQLDMO.Restore")
rest.Action=0 'restauración completa de la base de datos
rest.Database=nombre de la base de datos
rest.Dispositivos=Archivos
rest.Files=archivo_bak
rest.ReplaceDatabase=True 'Forzar restauración sobre la base de datos existente
si número de error>0 entonces
respuesta.escribir número.err&"<font color=rojo><br>"
respuesta.escribir error.descripción&"</font>"
terminar si
resto.SQLRestore srv
Response.write "<font color=green>¡Restaurado correctamente!</font>"
demás
Response.write "<font color=red>No se ha seleccionado ninguna operación</font>"
terminar si
terminar si
terminar si
%>