transact son solo restaurar recuperar qué ndf los log ldf importar datos crear con bak attach archivos archivo sql-server-2008 database-restore

son - Restauración de la base de datos de archivos.mdf y.ldf de SQL Server 2008



restaurar.bak sql server (5)

De un script (uno que funciona):

CREATE DATABASE Northwind ON ( FILENAME = ''C:/Program Files/Microsoft SQL Server/MSSQL11.SQLEXPRESS/MSSQL/DATA/Northwind.mdf'' ) LOG ON ( FILENAME = ''C:/Program Files/Microsoft SQL Server/MSSQL11.SQLEXPRESS/MSSQL/DATA/Northwind_log.ldf'') GO

obviamente actualizar la ruta:

C:/Program Files/Microsoft SQL Server/MSSQL11.SQLEXPRESS/MSSQL/DATA

Hacia donde residen su .mdf y .ldf.

Por alguna razón, tengo que desinstalar SQL Server 2008 R2, pero antes copié dos archivos ( .mdf y .ldf ) de mi base de datos de

C: / Archivos de programa (x86) / Microsoft SQL Server / MSSQL10_50.MSSQL2008 / MSSQL / DATA

Ahora, la pregunta es, ¿es posible para mí recuperar la base de datos de estos archivos en mi nuevo SQL Server 2008 R2 instalado?

En caso afirmativo, ¿cómo puedo hacer esto?


La primera búsqueda en google me dio esta respuesta. Así que pensé en actualizar esto con la versión más nueva de adjuntar, separar.

Create database dbname On ( Filename= ''path where you copied files'', Filename =''path where you copied log'' ) For attach;

Además, si su base de datos se cierra limpiamente (no hay transacciones activas mientras la base de datos se cerró) y no tiene un archivo de registro, puede usar el siguiente método, el servidor SQL creará un nuevo archivo de registro de transacciones.

Create database dbname On ( Filename= ''path where you copied files'' ) For attach;

si no especifica el archivo de registro de transacciones, SQL intentará buscar en la ruta predeterminada e intentará usarlo, independientemente de si la base de datos se ha cerrado o no.

Esto es lo que MSDN tiene que decir sobre esto ...

Si una base de datos de lectura y escritura tiene un solo archivo de registro y no especifica una nueva ubicación para el archivo de registro, la operación de adjuntar se ve en la ubicación anterior del archivo. Si se encuentra, se utiliza el archivo de registro anterior, independientemente de si la base de datos se cerró limpiamente. Sin embargo, si no se encuentra el archivo de registro anterior y la base de datos se cerró limpiamente y no tiene una cadena de registro activa, la operación adjunta intenta crear un nuevo archivo de registro para la base de datos.

Hay algunas restricciones con este enfoque y algunos efectos secundarios también ..

Las operaciones 1.attach-and-detach deshabilitan el encadenamiento de propiedad entre bases de datos para la base de datos
2. La base de datos confiable está desactivada
3.Descartar una base de datos de solo lectura pierde información sobre las bases diferenciales de las copias de seguridad diferenciales.

Lo más importante ... no puede adjuntar una base de datos con versiones recientes a una versión anterior

Referencias
https://msdn.microsoft.com/en-in/library/ms190794.aspx


Sí, es posible. Los pasos son:

  1. Primero .ldf archivo .mdf y .ldf en la carpeta C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/

  2. Luego vaya al software sql, haga clic con el botón derecho en "Bases de datos" y haga clic en la opción "Adjuntar" para abrir el cuadro de diálogo Adjuntar bases de datos

  3. Haga clic en el botón "Agregar" para abrir y localizar archivos de base de datos desde la carpeta C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/

  4. Haga clic en el botón "Aceptar". SQL Server Management Studio carga la base de datos desde el archivo .MDF .


Tengo una respuesta para ti Sí, es posible.

Ir

SQL Server Management Studio> seleccione Base de datos> haga clic en adjuntar

Luego seleccione y agregue archivos .mdf y .ldf. Haga clic en Aceptar.


use test go alter proc restore_mdf_ldf_main (@database varchar(100), @mdf varchar(100),@ldf varchar(100),@filename varchar(200)) as begin begin try RESTORE DATABASE @database FROM DISK = @FileName with norecovery, MOVE @mdf TO ''D:/sql samples/sample.mdf'', MOVE @ldf TO ''D:/sql samples/sample.ldf'' end try begin catch SELECT ERROR_MESSAGE() AS ErrorMessage; print ''Restoring of the database '' + @database + '' failed''; end catch end exec restore_mdf_ldf_main product,product,product_log,''c:/Program Files/Microsoft SQL Server/MSSQL10_50.MSSQLSERVER/MSSQL/Backup/product.bak''