sql >> Databasteknik >  >> RDS >> Sqlserver

Bästa sättet att kopiera en databas (SQL Server 2008)

Det enklaste sättet är faktiskt ett manus.

Kör detta på produktion:

USE MASTER;

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

Det här kommandot gör en fullständig säkerhetskopia av databasen till en enda fil, utan att störa produktionstillgänglighet eller säkerhetskopieringsschema, etc.

För att återställa, kör bara detta på din dev eller testa 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

Spara sedan dessa skript på varje server. Bekvämlighet med ett klick.

Redigera:
om du får ett felmeddelande när du återställer att de logiska namnen inte matchar, kan du få dem så här:

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

Om du använder SQL Server-inloggningar (inte Windows-autentisering) kan du köra detta efter återställning varje gång (på dev/testmaskinen):

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


  1. Logga frågetid i SQLite på Android

  2. Frågehastighet baserat på kolumnernas ordning

  3. Start RAC-databasen misslyckas med fel ORA-12547

  4. Hämta datatypinformation för kolumner i en Oracle OCCI ResultSet