recuperacion - Crear/restaurar la base de datos desde la copia de seguridad de SQL Server Express
script para hacer backup sql server (5)
¿Por qué no obtienes SQL Managment Studio Express? Es gratuito y debería permitirle administrar instancias de SQL Express locales.
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796
BACKUP DATABASE [AdventureWorks] TO
DISK = N''//nas/Backup/L40/SQL2005/AdventureWorks_backup_200702120215.bak''
WITH NOFORMAT, NOINIT, NAME = N''AdventureWorks-Full Database Backup'',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
RESTORE DATABASE [AdventureWorksNew]
FROM DISK = N''//nas/Backup/L40/SQL2005/AdventureWorks_backup_200702120215.bak''
WITH FILE = 1,
MOVE N''AdventureWorks_Data'' TO N''C:/Data/MSSQL.1/MSSQL/Data/AdventureWorksNew_Data.mdf'',
MOVE N''AdventureWorks_Log'' TO N''C:/Data/MSSQL.1/MSSQL/Data/AdventureWorksNew_Log.ldf'',
NOUNLOAD, STATS = 10
No tengo SQL Server Management Studio en mi máquina.
Tengo una copia de seguridad de la base de datos (SQL Server 2008 R2). Hay un SQL Server Express que se instaló con Visual Studio 2010 ultimate instalado en mi máquina.
¿Cómo puedo restaurar esta copia de seguridad en una base de datos y adjuntarla a SQL Server Express?
¿Hay alguna solución sin usar SQL Managment Studio Express?
El siguiente enlace proporciona una solución similar a la de marc_s, y va incluso más allá. Pude crear con éxito una nueva base de datos a partir del archivo de respaldo con la solución provista en el siguiente enlace.
http://codeonaboat.wordpress.com/2012/02/16/sql-server-2008-creating-a-database-from-a-bak-file/
La solución a continuación se copia desde el enlace de arriba:
En SSMS, abra una ventana de consulta en la base de datos maestra del servidor de base de datos. Ahí es donde ejecutarás las siguientes consultas.
Vea cuál es el "Nombre lógico" de la base de datos que se ha respaldado en el archivo .bak
RESTORE FILELISTONLY FROM DISK = ''c: / DatabaseBackups / dev2012021601.bak''
Esto le dará el nombre lógico de la base de datos y su archivo de registro asociado. Supongamos que los nombres son " dbname " y " dbname_log "
- Ahora ejecuta el siguiente comando de restauración. Asegúrese de que no exista una base de datos con el nombre que está intentando crear (en el ejemplo de código a continuación, dbForSocialMigration no existe).
RESTORE DATABASE dbForSocialMigration FROM DISK = ''c:/DatabaseBackups/dev20120307.bak'' WITH MOVE ''dbname'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS/MSSQL/DATA/dbForSocialMigration.mdf'', MOVE ''dbname_log'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS/MSSQL/DATA/dbForSocialMigration_log.mdf''
C:/Program Files/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS/MSSQL/DATA
es el directorio donde SQL Express generalmente guarda sus archivos de datos. Puede encontrar el directorio que usa su servidor de base de datos seleccionando una base de datos, haciendo clic con el botón derecho y abriendo el cuadro de diálogo de propiedades y seleccionando la opción "Archivos" de la izquierda.
Eso debería funcionar y, en ese momento, debería poder acceder a la base de datos "dbForSocialMigration" que contiene todas las tablas y datos del archivo .bak.
Incluso con SQL Server Management Studio Express, no podrá restaurar esta copia de seguridad. La edición Express que se está instalando con Visual Studio 2010 es la versión 2008 de SQL Server (su copia de seguridad es una de una versión de SQL Server 2008 R2) .
Necesitará descargar la versión de SQL Server 2008 R2 Express , y mientras lo hace, ¡obtenga la versión con Management Studio! Instala esto, y luego podrás restaurar la copia de seguridad de tu base de datos.
Si realmente desea restaurar su base de datos sin usar Mgmt Studio, por supuesto, puede usar una instrucción RESTORE
en T-SQL y ejecutarla con la herramienta de línea de comandos sqlcmd
:
RESTORE DATABASE YourDatabaseName
FROM DISK = N''(path to your BAK file)''
WITH FILE = 1,
MOVE N''(your DB name)'' TO N''(your SQL path)database.MDF'',
MOVE N''(your DB name)_LOG'' TO N''(your SQL path)database_LOG.LDF'',
NOUNLOAD,
REPLACE,
STATS = 10
GO
(y, por supuesto, también hay un comando BACKUP
que puede usar de manera similar: ¡los libros en línea de MSDN son sus amigos para obtener detalles sobre la sintaxis!).
La copia de seguridad es similar. Aquí se restaura utilizando Management Studio Express: http://www.serverintellect.com/support/sqlserver/restore-database-ssmse.aspx
Una tarde, pero espero que sea útil para otros que están viendo esto ...
Si el problema es la restauración sin el estudio de administración, esto se puede resolver fácilmente utilizando sqlcmd como marc_s ya se señaló.
Sin embargo, si el problema real es restaurar la copia de seguridad 2008 R2 en SQL 2008 sin usar SSMS, entonces la única solución es usar herramientas de terceros que pueden leer la copia de seguridad y generar scripts para crear esquemas e insertar datos.
La idea es crear una base de datos vacía en SQL 2008 y usar una herramienta de terceros para compararla con la copia de seguridad generada con 2008 R2.
He utilizado ApexSQL Diff y ApexSQL Data Diff con éxito en mi trabajo anterior, pero también hay buenas herramientas de Red Gate (SQL Compare) e Idera (conjunto de herramientas de comparación). Si busca en línea, probablemente encontrará mucho más ...
Descargo de responsabilidad: no estoy afiliado a ninguna de las compañías mencionadas anteriormente ...