sql >> Database teknologi >  >> RDS >> Sqlserver

Bedste måde at kopiere en database (SQL Server 2008)

Den nemmeste måde er faktisk et script.

Kør dette på produktion:

USE MASTER;

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

Denne ene kommando laver en komplet sikkerhedskopi af databasen til en enkelt fil uden at forstyrre produktionstilgængelighed eller sikkerhedskopieringsplan osv.

For at gendanne skal du bare køre dette på din dev eller teste 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

Gem derefter disse scripts på hver server. Et-klik bekvemmelighed.

Rediger:
hvis du får en fejl under gendannelse, at de logiske navne ikke stemmer overens, kan du få dem sådan her:

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

Hvis du bruger SQL Server-logins (ikke Windows-godkendelse), kan du køre dette efter gendannelse hver gang (på dev/testmaskinen):

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


  1. MySQL join og COUNT() på flere tabeller

  2. Se om lat / lang falder inden for en polygon ved hjælp af mysql

  3. Flyway på produktionsdatabase - Migration Checksum mismatch

  4. Forespørgsel om at beregne både kumulativ og samlet SUM over løn