Pregunta

A nuestra base de datos de prueba le faltan filas de repente. Los queremos de vuelta.

¿Hay alguna manera de analizar todo lo que le ha sucedido a la base de datos hoy? Cada sentencia de SQL? Supongo que este tipo de cosas está en el registro de transacciones, pero no estoy seguro de cómo verlo.

¿Hay alguna forma de deshacer las operaciones de eliminación?

BTW: Sí, tenemos una copia de seguridad, pero preferiríamos encontrar la causa de la eliminación también ...

¿Fue útil?

Solución

Puedes hacer esto con algunas de las herramientas de Red Gate , pero cuesta. Eche un vistazo a SQL Log Rescue .

De lo contrario, me sentiría tentado a hacer una restauración.

Otros consejos

[respuesta tardía pero con suerte útil]

Hay una forma de recuperar filas eliminadas mediante el registro de transacciones, pero solo si utiliza herramientas de terceros y solo su base de datos está en modo de recuperación total.

Dell (anteriormente Quest) tiene Toad para SQL Server y ApexSQL tiene Registro de ApexSQL y ApexSQL Recover que también puede leer t-log y recuperar datos. Desafortunadamente, Log Rescue de Red Gate solo puede leer los registros en SQL Server 2000.

También hay una forma de leer t-log utilizando el comando dbcc log no documentado. Ver más detalles aquí .

Teniendo en cuenta que ya tiene copias de seguridad de la base de datos, puede restaurarlas en una base de datos separada y luego usar una de las muchas herramientas de comparación de datos que existen en el mercado para insertar datos faltantes en la base de datos de producción. Por supuesto, esto solo puede recuperar la eliminación de datos antes de crear una copia de seguridad.

Necesitas una herramienta de terceros para hacer esto. La herramienta debe poder ingresar a los registros de transacciones y ver las entradas del registro para que pueda ver lo que sucedió. No he usado ninguna de estas herramientas, pero probé el inicio de SQL Gate Rescue de Red Gate. Pruébalo:

http://www.red-gate.com/products/SQL_Log_Rescue /index.htm

Le daría a ChronicDB un intento que tiene una versión gratuita en lugar de pagar por Red Gate

http://chronicdb.com/blogs/undelete_from_whoops

Puede deshacer una transacción utilizando el comando Rollback en SQL Server. Sin embargo, debe saber que la transacción se puede revertir si la transacción se realizó dentro de la transacción Begin .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top