sql >> Database >  >> RDS >> Sqlserver

Beste manier om een ​​database te kopiëren (SQL Server 2008)

De makkelijkste manier is eigenlijk een script.

Voer dit uit op productie:

USE MASTER;

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

Deze ene opdracht maakt een volledige back-up van de database naar een enkel bestand, zonder de productiebeschikbaarheid of het back-upschema, enz. te verstoren.

Om te herstellen, voert u dit gewoon uit op uw ontwikkelaar of test u 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

Sla deze scripts vervolgens op elke server op. Gemak met één klik.

Bewerken:
Als je een foutmelding krijgt bij het herstellen dat de logische namen niet overeenkomen, kun je ze als volgt krijgen:

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

Als u SQL Server-aanmeldingen gebruikt (geen Windows-authenticatie), kunt u dit na elke keer herstellen uitvoeren (op de dev/test-machine):

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


  1. Hoe kan ik een unieke index in Oracle maken, maar nulls negeren?

  2. NUMTOYMINTERVAL() Functie in Oracle

  3. Hoe de tijdzone voor Postgres 9.4 permanent in te stellen

  4. Heroku:PG::ConnectionBad:kan geen verbinding maken met server:verbinding geweigerd