Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Najlepszy sposób kopiowania bazy danych (SQL Server 2008)

Najłatwiejszy sposób to właściwie skrypt.

Uruchom to w wersji produkcyjnej:

USE MASTER;

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

To jedno polecenie tworzy pełną kopię zapasową bazy danych w jednym pliku, bez zakłócania dostępności produkcyjnej lub harmonogramu tworzenia kopii zapasowych itp.

Aby przywrócić, po prostu uruchom to na swoim deweloperze lub przetestuj 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

Następnie zapisz te skrypty na każdym serwerze. Wygoda jednym kliknięciem.

Edytuj:
jeśli podczas przywracania pojawi się błąd, że nazwy logiczne nie pasują, możesz je uzyskać w ten sposób:

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

Jeśli używasz loginów SQL Server (nie uwierzytelniania systemu Windows), możesz uruchomić to po przywróceniu za każdym razem (na maszynie deweloperskiej/testowej):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. System.AccessViolationException w .NET 4.0 podczas łączenia się z bazą danych SQL

  2. dołącz do kolumny danych rozdzielanych przecinkami

  3. Jak sprawić, by SQL Server zapisywał datetime w formacie AM/PM?

  4. Jak uzyskać wartości parametrów dla zapytania SQL Server w programie SQL Server Profiler?

  5. SQL Server 2008 - oddzielanie pola Adres