none
mostrar contenido de un archivo.bak en sql RRS feed

  • Pregunta

  • hola.

    Me dejaron una tarea donde me pasan un archivo.BAK

    desde ahí tengo que sacar las bases de datos que se encuentran ahí, pero no tengo idea como hacerlo, por cierto tiene que ser con puro CÓDIGO.

    espero haberme explicado correctamente. gracias.
    sábado, 4 de junio de 2011 1:47

Respuestas

  • Con RESTORE FILELISTONLY Podras ver los nombres logicos de los ficheros de bbdd, que tiene tu .bak, de la forma:

    RESTORE FILELISTONLY
    FROM DISK = 'Unidad:\Directorio\tu_fichero.bak';
    GO

    Te mostrara los nombres logicos y fisicos que tiene la bbdd de la cual se ha realizado el backup, por ejemplo:

    Nombrelogico    Nombrefisico
    Base_Data    D:\MSSQL2005\MSSQL.1\MSSQL\Data\Database.mdf
    Base_Log     D:\MSSQL2005\MSSQL.1\MSSQL\Data\Database_log.ldf

    Luego para restaurar, podras indicar nuevo directorio para los ficheros, y haz un MOVE por tantos ficheros tenga la bbdd:

    RESTORE database NombreDeTuBBDD
    from disk = 'Unidad:\Directorio\tu_fichero.bak'
    with RECOVERY,
    MOVE 'Base_Data' to 'Unidad:\NuevoDirectorio\Database.mdf',
    MOVE 'Base_Log' to 'Unidad:\NuevoDirectorio\Database_log.ldf'
    go


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    sábado, 4 de junio de 2011 20:57
  • 1.- copia ese archivo a un directorio del servidor

    2.- abre SQL Server management studio

    3.- Abre un nuevo query

    4.- Ejecuta la instrucción RESTORE DATABASE TuNombreDeBaseDeDatos FROM DISK='c:\xxxxxx\xxx\xx\tuarchivo.bak'

    Si esto te funciona directamente genial, si te da errores de que no puede encontrar alguna ruta, tendrás que usar la cláusula with move, casi mejor si esto te pasa nos copias el error aquí y te decimos.

    Ojo, necesitas instalar una versión igual o superior de SQL Server para poder restaurar, además si luego tu vas a tener que mandar una copia a quien te dió el bak entonces necsitas exactamente la misma versio´n de SQL o ellos no podrán restaurar. 


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com</a
    sábado, 4 de junio de 2011 8:03
    Moderador
  • DatabaseName es nombre de la base de datos de la que se realizó la copia de seguridad.

    Position es la Posición del conjunto de copia de seguridad en el volumen (para utilizarlo con la opción FILE =).

    Backupname es el nombre del conjunto de copia de seguridad.

    ------------------

    Por los datos que nos das, hay 3 bases de datos distintas en tu fichero de backup.

    De todas formas el comando ha de darte mas información. Dejanos ver la salida completa del comando RESTORE FILELISTONLY, RESTORE HEADERONLY y RESTORE LABELONLY.
     


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    • Marcado como respuesta choki2012 viernes, 8 de julio de 2011 4:15
    domingo, 5 de junio de 2011 21:49

Todas las respuestas

  • 1.- copia ese archivo a un directorio del servidor

    2.- abre SQL Server management studio

    3.- Abre un nuevo query

    4.- Ejecuta la instrucción RESTORE DATABASE TuNombreDeBaseDeDatos FROM DISK='c:\xxxxxx\xxx\xx\tuarchivo.bak'

    Si esto te funciona directamente genial, si te da errores de que no puede encontrar alguna ruta, tendrás que usar la cláusula with move, casi mejor si esto te pasa nos copias el error aquí y te decimos.

    Ojo, necesitas instalar una versión igual o superior de SQL Server para poder restaurar, además si luego tu vas a tener que mandar una copia a quien te dió el bak entonces necsitas exactamente la misma versio´n de SQL o ellos no podrán restaurar. 


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com</a
    sábado, 4 de junio de 2011 8:03
    Moderador
  • Con RESTORE FILELISTONLY Podras ver los nombres logicos de los ficheros de bbdd, que tiene tu .bak, de la forma:

    RESTORE FILELISTONLY
    FROM DISK = 'Unidad:\Directorio\tu_fichero.bak';
    GO

    Te mostrara los nombres logicos y fisicos que tiene la bbdd de la cual se ha realizado el backup, por ejemplo:

    Nombrelogico    Nombrefisico
    Base_Data    D:\MSSQL2005\MSSQL.1\MSSQL\Data\Database.mdf
    Base_Log     D:\MSSQL2005\MSSQL.1\MSSQL\Data\Database_log.ldf

    Luego para restaurar, podras indicar nuevo directorio para los ficheros, y haz un MOVE por tantos ficheros tenga la bbdd:

    RESTORE database NombreDeTuBBDD
    from disk = 'Unidad:\Directorio\tu_fichero.bak'
    with RECOVERY,
    MOVE 'Base_Data' to 'Unidad:\NuevoDirectorio\Database.mdf',
    MOVE 'Base_Log' to 'Unidad:\NuevoDirectorio\Database_log.ldf'
    go


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    sábado, 4 de junio de 2011 20:57
  • Mil gracias al parecer boi mejor que antes gracias a ustedes..

     

    la base de datos se llama MEDIOS y MEDIOS_LOG

    Norman . Hice todo lo que has puesto y me muestra una BD con el nombre:::: "NombreDeTuBBDD" dentro de esa BD me aparecen 11 Tablas, acaso esas son otras BD?? o como puedo saber los demás nombres de las BD que se encuentran?

     

    gracias por contestar.

    domingo, 5 de junio de 2011 19:37
  • Con RESTORE FILELISTONLY Podras ver los nombres logicos de los ficheros de bbdd, que tiene tu .bak, de la forma:

    RESTORE FILELISTONLY
    FROM DISK = 'Unidad:\Directorio\tu_fichero.bak';
    GO

    Te mostrara los nombres logicos y fisicos que tiene la bbdd de la cual se ha realizado el backup, por ejemplo:

    Nombrelogico    Nombrefisico
    Base_Data    D:\MSSQL2005\MSSQL.1\MSSQL\Data\Database.mdf
    Base_Log     D:\MSSQL2005\MSSQL.1\MSSQL\Data\Database_log.ldf

    Luego para restaurar, podras indicar nuevo directorio para los ficheros, y haz un MOVE por tantos ficheros tenga la bbdd:

    RESTORE database NombreDeTuBBDD
    from disk = 'Unidad:\Directorio\tu_fichero.bak'
    with RECOVERY,
    MOVE 'Base_Data' to 'Unidad:\NuevoDirectorio\Database.mdf',
    MOVE 'Base_Log' to 'Unidad:\NuevoDirectorio\Database_log.ldf'
    go


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    MIl gracias, despues de lo que me dijo puse lo siguiente::

    restore headeronly from DISK = 'd:\BACKUP\TAREAFIN.bak'; 

    con eso me aparece esto en los resultados:::

     

    BACKUPNAME|||||||||||||||POSITION|||||||||||||DATABASENAME

    CSC medios|||||||||||||||||||1||||||||||||||||||||||||||||MEDIOS

    CSC TF|||||||||||||||||||||||||2||||||||||||||||||||||||||||TF

    CSD TF|||||||||||||||||||||||||3||||||||||||||||||||||||||||TF

    CSC USODESUELO|||||||||||4|||||||||||||||||||||||||||USODESUELO

    CSD TF|||||||||||||||||||||||||5||||||||||||||||||||||||||||TF

    espero que se vea algo claro..

    me imagino que ahora tengo que restaurar por dispositivo? o algo así, me podría ayudar como hacerle?

    el usuario yoniti7784 soy yo solo que me confundí de CORREO para contestar..



    domingo, 5 de junio de 2011 20:49
  •  SQL Server ofrece algunos comandos adicionales que puedes utilizar con los archivos de copia de seguridad de base de datos para determinar su contenido. Como ves, algunos ya los estas usando. Estas opciones incluyen:
    RESTORE HEADERONLY – contiene una lista de información de encabezado de copia de seguridad para un dispositivo de copia de seguridad
    RESTORE FILELISTONLY – contiene una lista de los archivos de datos y registro que figuran en la copia de seguridad
    RESTORE LABELONLY – contiene información acerca del medio de la copia de seguridad

    Estos comandos son útiles si escribes varias copias de seguridad en el mismo archivo físico o tal vez si tienes copias de seguridad de base de datos de otro sistema y no estás seguro de lo que se almacena en el archivo.

    Segun mis indicación del otro día, tienes que modificar "NombreDeTuBBDD" por el nombre la base de datos... y ya casi lo tienes. Las 11 tablas son objetos de la propia base de datos restaurada. Parece que tienes desconocimiento de como es la estructura de una base de datos SQL...

     Instrucciones RESTORE para restaurar, recuperar y administrar copias de seguridad (Transact-SQL) -> http://msdn.microsoft.com/es-es/library/ms190372.aspx

    Si ves que te atascar recurre ver el contenido de una cinta o un archivo de copia de seguridad (SQL Server Management Studio) -> http://msdn.microsoft.com/es-es/library/ms190747.aspx


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    domingo, 5 de junio de 2011 21:33
  • DatabaseName es nombre de la base de datos de la que se realizó la copia de seguridad.

    Position es la Posición del conjunto de copia de seguridad en el volumen (para utilizarlo con la opción FILE =).

    Backupname es el nombre del conjunto de copia de seguridad.

    ------------------

    Por los datos que nos das, hay 3 bases de datos distintas en tu fichero de backup.

    De todas formas el comando ha de darte mas información. Dejanos ver la salida completa del comando RESTORE FILELISTONLY, RESTORE HEADERONLY y RESTORE LABELONLY.
     


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    • Marcado como respuesta choki2012 viernes, 8 de julio de 2011 4:15
    domingo, 5 de junio de 2011 21:49