Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Beste Methode zum Kopieren einer Datenbank (SQL Server 2008)

Der einfachste Weg ist eigentlich ein Skript.

Führen Sie dies in der Produktion aus:

USE MASTER;

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

Dieser eine Befehl erstellt eine vollständige Sicherungskopie der Datenbank in einer einzigen Datei, ohne die Produktionsverfügbarkeit oder den Sicherungsplan usw. zu beeinträchtigen.

Führen Sie zum Wiederherstellen einfach dies auf Ihrem Entwicklungs- oder Test-SQL-Server aus:

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

Speichern Sie diese Skripte dann auf jedem Server. Komfort mit einem Klick.

Bearbeiten:
Wenn Sie beim Wiederherstellen eine Fehlermeldung erhalten, dass die logischen Namen nicht übereinstimmen, können Sie sie folgendermaßen erhalten:

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

Wenn Sie SQL Server-Anmeldungen verwenden (keine Windows-Authentifizierung), können Sie dies jedes Mal nach der Wiederherstellung ausführen (auf dem Entwicklungs-/Testcomputer):

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