Una mala jugada de los respaldos de las bases de datos en mi trabajo ocasionó que se perdieran 2 archivos de log (LDF) de las bases de datos de SQL SERVER 2000. Teniendo solamente los MDF en la mano es imposible rescatar la BD. Por ello tuve que empezar a investigar como se podía rescatar la estrucutura y datos. En varias búsquedas realizadas, logré armar un procedimiento para tal efecto: Rescatar una base de datos solamente con el MDF, prescindiendo del LDF o Log File.
A continuación los pasos para ello:
Lo primero es regenerar el archivo de log. Como hacerlo? Fácil. En el motor o servidor que quieres albergar la BD, crea una base de datos con el mismo nombre que la que quieres rescatar.
Luego, baja el motor y borra el MDF creado y reemplázalo por el respaldado. Lógicamente tiene que tener el mismo nombre de archivo.
Luego sube el motor.
Si todo lo anterior está ok, debe aparecer tu nueva base de datos en modo "sospechoso" o "suspect".
Utilizando algún Query Analizer, conéctate a la base de datos MASTER del motor y ejecuta la siguiente sentencia, para poder cambiar algunos datos de sistema directamente:
SP_CONFIGURE 'Allow updates',1
;
RECONFIGURE WITH OVERRIDE
;
UPDATE sysdatabases SET status = 32768 WHERE name='Mi_base_de_datos_suspect'
Me detengo particularmente en la última sentencia, para hacer hincapié en que deben poner el nombre de su base de datos en el "name" del WHERE.
Habiendo terminado lo anterior, abran el administrador corporativo o enterprise Manager del SQL SERVER.
En la sección de las bases de datos, esa base debería aparecer en modo de emergencia y en color plomo.
Bien, con ello, ejecuten el importador/exportador de datos del motor, seleccionen la base de datos que quieren rescatar (la que está en modo emergencia), la base de datos de destino y luego elijan la o las tablas que quieren recuperar...y listo!!!!
Con ello comenzarán a rescatar los datos de ella y luego la pueden transportar, modificar o lo que quieran.
Este proceso que recopilé de varios lugares, funciona perfecto y puedes respirar tranquilo...
lunes, 26 de abril de 2010
Suscribirse a:
Enviar comentarios (Atom)
Solo pude dar hasta el paso de la 2da sentencia, pero cuando habro el administrador no puedo verificar mi base de datos en el estado de emergencia.
ResponderEliminarQue me falta hacer?
Slds,
Jesús, puedes hacer un select sobre sysdatabases, modo admin, y enviarlo a mi correo? Veamos por ese lado el tema para no alargar tanto los comentarios. luego publicamos solo la solución.
ResponderEliminarSaludos!
Saludos,
ResponderEliminarAl tratar de importar una nueva tabla de otra B.D he sustituido todas mis tablas.. UFFF entonces ¿Cómo puedo hacer para restaurarla a una versión anterior esa B.D? No tenía un plan de mantenimiento ni un backup previo, así que supongo debe ser a partir del archivo Log.LDF.
Agradeciendo de antemano su ayuda;
Noel Flores.
hola eduardo, te quería felicitar por la solución que diste por la recuperación de la base de datos, me hago un mea culpa por no haber realizado el back up correspondiente pero buno te agradezco mucho tus conocimientos ..saludos..Gerardo
ResponderEliminarMuchas gracias Eduardo, por compartir tu experiencia.
ResponderEliminarNo sabes el tiempo que he perdido hasta encontrar tu solución.
Saludos.
Pau.
Muy bueno tu post , me sirvió de mucho , muchas gracias Eduardo
ResponderEliminarAtte.: Fernando (Queco)
grasias eduardo
ResponderEliminarde donde eres muy bueno tu post claro y consiso
recupere mis datos
saludes
Funciona excelente. Muchas gracias, eres muy bueno en esto. Busque y probe muchas soluciones en la red y ninguna funciono.
ResponderEliminarNecesito su ayuda urgente, realice todo lo q comento, sin embargo al intentar importar la información y al elegir la base de datos en emergencia:
ResponderEliminarOrigen del error: Microsoft OLE DB Provider for SQL Server
Descripción del error: Error en la conexión
Y cuando intento darle en propiedades a mi BD (en emergencia) me muestra lo siguiente:
Microsoft SQL-DMO (ODBC SQLState: HY000)
Error 823:
Por favor ayudame... q es una base de datos transaccional
NO PUEDO PASAR A MODO DE EMERGENCIA, AYUDA POR FAVOR!!!!!!!!!!!!
ResponderEliminarME MANDA EL SIG ERROR.
MSG 259, LEVEL 16, STATE 2, LINE 1
AD HOC UPDATES TO SYSTEM CATALOGS ARE NOT ENABLE
Estimado
ResponderEliminarAun cuando tengas una urgencia te agradecería no GRITASES al momento de preguntar. Las urgencias tuyas no son las del resto e incluso haces que se vayan las ganas de ayudar. La desesperación es propia de los inseguros y no de un profesional informático. Respecto al error, favor ejecuta estos comandos en la base de datos master:
sp_configure 'Allow updates',1
go
reconfigure with override
go
Prueba con eso y cuentas.
Disculpa por escribir en mayúsculas, mi intención no era que pensaras que grito.
ResponderEliminarAl ejecutar las sentencias me manda un mensaje que dice que no existe esa opción
cual opción no existe? Manda un pantallazo o el error en más detalle para saber cual es la falla.
ResponderEliminaral ejecutar las sentencias
ResponderEliminaruse master
go
exec sp_configure 'Allow updates',1
go
reconfigure with override
go
update sysdatabases
set status = 32768
where name = 'my_base'
GO
exec sp_configure 'ALLOW',0
go
reconfigure with override
go
manda los siguientes mensajes:
Server: Msg 15123, Level 16, State 1, Procedure sp_configure, Line 78
The configuration option 'Allow updates' does not exist, or it may be an advanced option.
Valid configuration options are:
Server: Msg 259, Level 16, State 2, Line 1
Ad hoc updates to system catalogs are not enabled. The system administrator must reconfigure SQL Server to allow this.
Server: Msg 15123, Level 16, State 1, Procedure sp_configure, Line 78
The configuration option 'ALLOW' does not exist, or it may be an advanced option.
en el mandato donde reconfiguras a 0 el allow updates estas poniendo solo ALLOW. debes poner igual "allow updates".
ResponderEliminarEso es para restablecer la condición de seguridad que se cambió inicialmente.
Con eso deberías estar ok.
Saludos!
Es que ni poniendo el 'allow updates' en las sentencias me toma esa opción, si revisas a detalle los mensajes de errores que te envie, desde la primera sentencia dice que no existe la opcion 'allow updates'
ResponderEliminarTendrás alguna otra solución que se pueda probar.
hola
ResponderEliminarSoy nueva con SQL Server, tengo los dos archivos pero en el equipo que tengo esta instalado MySQL Server 5.1 y ya intente con este codigo y nada
USE master
GO
CREATE DATABASE RESPALDO
ON
( NAME = RESPALDO_dat,
FILENAME = 'C:\tmp\RESPALDO.mdf',
SIZE = 100,
MAXSIZE = 500,
FILEGROWTH = 5 )
LOG ON
( NAME = RESPALDO_log,
FILENAME = 'C:\tmp\RESPALDO.ldf',
SIZE = 50MB,
MAXSIZE = 1500MB,
FILEGROWTH = 5MB )
GO
Ayuda porfissssssssss
Es muy urgente si no puedo me corren :(
al correr el scrip
ResponderEliminaruse master
go
exec sp_configure 'Allow updates',1
go
reconfigure with override
go
update sysdatabases
set status = 32768
where name = 'mdb'
GO
me aparecen los siguientes errores
Server: Msg 15123, Level 16, State 1, Procedure sp_configure, Line 79
The configuration option 'Allow updates' does not exist, or it may be an advanced option.
Valid configuration options are:
Server: Msg 259, Level 16, State 2, Line 1
Ad hoc updates to system catalogs are not enabled. The system administrator must reconfigure SQL Server to allow this.
que debo hacer
gracias
Lo primero es saber qué versión de SQL Server es la que estás intentando corregir.
EliminarHola Eduardo, muchas gracias por la información que aportas aquí, muy conciso y claro. Ya tengo mi bd de sql 2000 en modo de emergencia, pero cuando voy a tareas, las opciones de importar o exportar datos están deshabilitadas, al igual que todas las que aparecen en ese menú contextual. Me pregunto si sabrías porqué?, Tengo otras bd en el mismo sql y las opciones de importar/exportar si están disponibles. Muchas gracias por tu tiempo y conocimientos
ResponderEliminarQue tal Eduardo, Soy Victor..
ResponderEliminarMuy bueno tu post. Pude llegar a poner mi base de datos en modo emergencia.
Solo que al tratar de exportar los datos, solo exporta dos tablas. Cuál sería el problema en ese caso.
Estoy atento a tus comentarios