will una the taken source script restaurar que para page montar log instancia how from datos bak sql-server sql-server-2008 backup restore

una - Abrir un archivo.bak de SQL Server(¡No restaurar!)



restaurar.bak sql server (5)

He estado leyendo MUCHAS publicaciones de google y preguntas de StackOverflow sobre cómo restaurar una base de datos en SQL Server desde un archivo .bak.

Pero ninguno de ellos indica cómo LEER las tablas en la base de datos de copia de seguridad. (¿Ninguno que pueda encontrar de todos modos?)

Solo quiero ver información antigua que ahora se ha eliminado, sin restaurar realmente la base de datos completa. es posible?

.

EDITAR:

Solo quería publicar mi solución T-SQL al problema, para que otros puedan usarlo y pueda volver y buscarlo;)

Primero creé una nueva base de datos llamada backup_lookup y la desconecté. Después de esto, pude restaurar mi antigua base de datos mydb a la nueva, sin tocar mi original.

USE master GO RESTORE DATABASE backup_lookup FROM DISK = ''D:/backup/mydb.bak'' WITH REPLACE, MOVE ''mydb'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.MSSQLSERVER/MSSQL/DATA/backup_lookup.mdf'', MOVE ''mydb_log'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.MSSQLSERVER/MSSQL/DATA/backup_lookup_log.ldf'' GO

Espero que esto ayude :)


Desde SQL Server 2008 SSMS (SQL Server Management Studio), simplemente:

  1. Conéctese a su instancia de base de datos (por ejemplo, "localhost / sqlexpress")
  2. Ya sea:

    • a) Seleccione la base de datos a la que desea restaurar; o alternativamente
    • b) Simplemente crea una base de datos nueva y vacía para restaurar.
  3. Haga clic con el botón derecho, Tareas, Restaurar, Base de datos

  4. Dispositivo, [...], Agregar, Buscar en su archivo .bak
  5. Seleccione la copia de seguridad.
    Elija "sobrescribir = Y" debajo de las opciones.
    Restaurar la base de datos
  6. Debe decir "100% completado", y su base de datos debe estar en línea.

PD: Una vez más, enfatizo: puede hacer esto fácilmente en una "base de datos reutilizable": no necesita sobrescribir su base de datos actual. Pero necesitas RESTAURAR .

PPS: también puede lograr lo mismo con los comandos de T-SQL, si desea crear un script.


La única solución factible es restaurar el archivo .bak . Los contenidos y la estructura de esos archivos no están documentados y, por lo tanto, no hay forma (para que no sea un truco horrible) de hacer que esto funcione, ¡definitivamente no vale la pena el tiempo y el esfuerzo!

La única herramienta que conozco que puede dar sentido a los archivos .bak sin restaurarlos es Red-Gate SQL Compare Professional (y la comparación de datos SQL que lo acompaña) que le permiten comparar la estructura de su base de datos con el contenido de un archivo .bak . Las herramientas de Red-Gate son absolutamente maravillosas, muy recomendables y vale la pena cada centavo que cuestan.

Y acabo de comprobar su sitio web: parece que puede restaurar una sola tabla desde un archivo .bak con SQL Compare Pro. :-)


No hay una forma estándar de hacer esto. Debe utilizar herramientas de terceros, como ApexSQL Restore o SQL Virtual Restore . Estas herramientas realmente no leen el archivo de copia de seguridad directamente. Consiguen que SQL Server "piense" en los archivos de respaldo como si fueran bases de datos en vivo.



Solo para agregar mi solución de script TSQL:

Ante todo; agregue una nueva base de datos llamada backup_lookup . A continuación, ejecute este script, insertando la ruta de acceso raíz de sus propias bases de datos y la ruta de acceso de la copia de seguridad.

USE [master] GO RESTORE DATABASE backup_lookup FROM DISK = ''C:/backup.bak'' WITH REPLACE, MOVE ''Old Database Name'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.MSSQLSERVER/MSSQL/DATA/backup_lookup.mdf'', MOVE ''Old Database Name_log'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.MSSQLSERVER/MSSQL/DATA/backup_lookup_log.ldf'' GO