sql >> Base de Datos >  >> RDS >> Sqlserver

La mejor manera de copiar una base de datos (SQL Server 2008)

La forma más fácil es en realidad un script.

Ejecute esto en producción:

USE MASTER;

BACKUP DATABASE [MyDatabase]
TO DISK = 'C:\temp\MyDatabase1.bak' -- some writeable folder. 
WITH COPY_ONLY

Este único comando realiza una copia de seguridad completa de la base de datos en un solo archivo, sin interferir con la disponibilidad de producción o el programa de copia de seguridad, etc.

Para restaurar, simplemente ejecute esto en su desarrollador o pruebe SQL Server:

USE MASTER;

RESTORE DATABASE [MyDatabase]
FROM DISK = 'C:\temp\MyDatabase1.bak'
WITH
MOVE 'MyDatabase'   TO 'C:\Sql\MyDatabase.mdf', -- or wherever these live on target
MOVE 'MyDatabase_log'   TO 'C:\Sql\MyDatabase_log.ldf',
REPLACE, RECOVERY

Luego guarde estos scripts en cada servidor. Comodidad con un solo clic.

Editar:
si obtiene un error al restaurar que los nombres lógicos no coinciden, puede obtenerlos así:

RESTORE FILELISTONLY
FROM disk = 'C:\temp\MyDatabaseName1.bak'

Si usa inicios de sesión de SQL Server (no autenticación de Windows), puede ejecutar esto después de restaurar cada vez (en la máquina de desarrollo/prueba):

use MyDatabaseName;
sp_change_users_login 'Auto_Fix', 'userloginname', null, 'userpassword';