Importe el archivo .bak a una base de datos en el servidor SQL

230

Tengo un archivo con .bakextensión.

¿Cómo puedo importar esta fecha a una base de datos en SQL Server?

alex
fuente
Supongo que está utilizando MSSQL, aquí hay un hilo que explica algunas formas en que puede restaurar.
Andrew Keith
Puede crear una base de datos vacía y restaurar los datos a la base de datos vacía, utilizando su .bak
Michel Ayres
La forma más sencilla es la tercera respuesta, hacer clic con el botón derecho en las bases de datos, importar, dispositivo, seleccionar el archivo .bak, finalizar.
Mafii
¿Alguien puede ampliar la respuesta para una solución amigable de automatización? Pasar por la interfaz de usuario y hacer varios clics no es muy eficiente.
L. Holanda

Respuestas:

251

En SQL Server Management Studio

  1. Haga clic con el botón derecho en Bases de datos en el panel izquierdo (Explorador de objetos)
  2. Haga clic en Restaurar base de datos ...
  3. Elija Dispositivo , haga clic ...y agregue su archivo .bak
  4. Haga clic en Aceptar , luego en Aceptar nuevamente

Hecho.

Marcelo Mason
fuente
44
Esto funciona como un encanto. Estas son excelentes instrucciones simplificadas, y son esencialmente las mismas instrucciones del enlace oficial de Microsoft que se menciona en la respuesta más votada aquí.
Leonardo Lopez
3
Si esto falla, probablemente necesite borrar una base de datos existente.
DigitalDesignDj
3
Esto no está funcionando para mí. Señalo la carpeta correcta y ni siquiera ve los archivos. Pego el nombre exacto del archivo en el cuadro de diálogo y dice que el archivo no existe. Además, el cuadro de diálogo ve una unidad que no existe en mi servidor. ¿La base de datos recuerda la ubicación de la última copia de seguridad y solo aceptará una restauración desde ese punto? Me resulta muy extraño que no pueda seleccionar un archivo de copia de seguridad para restaurar.
James
13
Mi archivo .BAK estaba en el directorio "Descargas" que existía debajo de mi cuenta de usuario. Tuve que mover el archivo .BAK a la raíz de la C: para que esta herramienta lo vea y me permita restaurarlo. Los archivos debajo de mi usuario simplemente no se vieron por alguna razón.
jeremysawesome
66
Esto no funciona. Hago clic derecho en "Bases de datos" pero no hay "Restaurar base de datos ...".
user34660
53

Los archivos .bak son copias de seguridad de la base de datos. Puede restaurar la copia de seguridad con el siguiente método:

Cómo: restaurar una copia de seguridad de la base de datos (SQL Server Management Studio)

Jon Schoning
fuente
8
Esto no funciona. El artículo dice: "... 2) Expandir bases de datos. Dependiendo de la base de datos, seleccione una base de datos de usuario o expanda Bases de datos del sistema y luego seleccione una base de datos del sistema. 3) Haga clic con el botón derecho en la base de datos , seleccione Tareas y luego haga clic en Restaurar." ¡NO! ¡No puede hacer clic derecho en una base de datos que no existe! Después de todo, está intentando restaurar o importar la base de datos dada. ¿Cómo puede hacer clic derecho en una base de datos que no está cargada? Extraño de MSDN, y se agrava esa funcionalidad de restauración en SSMS, pero no funciona. ¿Por qué? Afortunadamente, los comandos SQL que otros dan aquí funcionan.
Nicholas Petersen
14
Hay un artículo diferente para restaurar a una nueva base de datos que se encuentra aquí: msdn.microsoft.com/en-us/library/ms186390(v=sql.90).aspx
Jon Schoning
35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

y tienes que mover los archivos mdf, ndf y ldf apropiados usando

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'
RameshVel
fuente
1
Esto fue muy útil para mí, ya que quería restaurar un archivo .bak en un contenedor sql Docker con un host macOS con Azure Data Studio. Todo lo que tenía que hacer era copiar el .bak en el contenedor, ajustar la ruta y cambiar a /, y pude restaurar con éxito.
andrewb
Me alegra que haya ayudado @andrewb :)
RameshVel
30

Simplemente puede restaurar estos archivos de copia de seguridad de la base de datos utilizando métodos nativos de SQL Server, o puede usar la herramienta de restauración ApexSQL para adjuntar rápidamente los archivos y acceder a ellos como bases de datos completamente restauradas.

Descargo de responsabilidad: trabajo como ingeniero de soporte de productos en ApexSQL

Ivan Stankovic
fuente
18

En lugar de elegir Restaurar base de datos ..., seleccione Restaurar archivos y grupos de archivos ...

Luego ingrese el nombre de una base de datos, seleccione la ruta del archivo .bak como fuente, marque la casilla de verificación restaurar y haga clic en Aceptar. Si el archivo .bak es válido, funcionará.

(Los nombres de opciones de restauración de SQL Server no son intuitivos para lo que debería ser una tarea muy simple).

James Lawruk
fuente
Este es un buen consejo, hice esto e informó que la restauración fue exitosa. Pero aún persiste un pequeño problema ... la base de datos no figura en el explorador de objetos. Intento "adjuntar", e incluso tiene el archivo .mdf correcto disponible (supongo que es un producto de la restauración). Si intento adjuntar, arroja un error que ya está en uso. ¿Tienes algún consejo para esta etapa?
AlanSE
Asegúrese de hacer una actualización al final para ver su nueva base de datos. Esta puede ser la solución más rápida para comenzar a trabajar.
demongolem
Esta es la opción que funcionó para mí cuando quería importar la misma base de datos .bak como una nueva base de datos localmente
Gurnzbot
7
  1. Conéctese a un servidor que desea almacenar su base de datos
  2. Haga clic derecho en la base de datos
  3. Haga clic en Restaurar
  4. Elija el botón de opción Dispositivo en la sección de fuente
  5. Haz clic en Agregar.
  6. Navegue a la ruta donde está almacenado su archivo .bak, selecciónelo y haga clic en Aceptar
  7. Ingrese el destino de su base de datos
  8. Ingrese el nombre con el que desea almacenar su DB
  9. Haga clic en Aceptar

Hecho

Yash Saraiya
fuente
4

Simplemente use

sp_restoredb 'Nombre de su base de datos', 'Ubicación desde la que desea restaurar'

Ejemplo: sp_restoredb 'omDB', 'D: \ abc.bak'

Omprakash tomar
fuente
¿Cuál es la diferencia entre esto y RESTORE DATABASEcomo en msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx ?
Martillo
1
Restaurar la base de datos realiza la operación de restauración solo si la estructura de su base de datos es la misma que la del archivo de respaldo, pero sp_restoredbrealice la restauración incluso si su base de datos tiene una estructura diferente o está completamente vacía (nueva).
Omprakash tomar
3
  1. Copie su archivo .bak de respaldo en la siguiente ubicación de su PC: C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA
  2. Conéctese a un servidor que desea almacenar su base de datos
  3. Haga clic derecho en la base de datos
  4. Haga clic en Restaurar
  5. Elija el botón de opción Dispositivo en la sección de fuente
  6. Haz clic en Agregar.
  7. Navegue a la ruta donde está almacenado su archivo .bak, selecciónelo y haga clic en Aceptar
  8. Ingrese el destino de su base de datos
  9. Ingrese el nombre con el que desea almacenar su DB
  10. Haga clic en Aceptar

Las soluciones anteriores se perdieron dónde guardar su archivo de copia de seguridad (.bak). Esto debería funcionar. Funcionó para mi.

Madhumita
fuente
1

Puede usar el paquete de nodos, si a menudo necesita restaurar bases de datos en el proceso de desarrollo.

Instalar en pc:

npm install -g sql-bak-restore

Uso:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

Argumentos:

  • bakpath, ruta relativa o absoluta al archivo
  • dbName, a qué base de datos restaurar (¡la base de datos con este nombre se eliminará si existe!)
  • oldDbName, nombre de la base de datos (si no sabe, especifique algo y ejecute, verá las bases de datos disponibles después de la ejecución).
  • propietario, nombre de usuario para hacer y darle privilegios db_owner (contraseña "1")

!! sqlcmd utilidad de línea de comandos debe estar en su variable PATH.

https://github.com/vladimirbuskin/sql-bak-restore/

Vladimir Buskin
fuente
1

En Microsoft SQL Server Management Studio 2019:

ingrese la descripción de la imagen aquí

En la ventana Restaurar base de datos:

  1. Elegir dispositivo

  2. Elija Agregar y elija el archivo de destino

  3. OK para confirmar

  4. OK para confirmar restaurar

ingrese la descripción de la imagen aquí

Weky
fuente