Jak zduplikować bazę danych MSSQL na tym samym lub innym serwerze?

15

Próbuję wykonać następujące czynności:

  1. Zrobić migawkę oryginalnej bazy danych, utworzyć i wykonać dokładną kopię na innym serwerze?
  2. Zrób migawkę oryginalnej bazy danych, utwórz duplikat na tym samym serwerze pod inną nazwą DB

Nie mogę jednak ze względu na bardzo ograniczone doświadczenie z MSSQL. Jakieś sugestie?

Dodatkowe informacje:

Serwer bazy danych Origin: SQL Server 2000

Docelowy serwer DB: SQL Server 2005

Alex N.
źródło

Odpowiedzi:

17
  1. wykonać kopię zapasową bazy danych
  2. przywróć bazę danych pod nową nazwą i / lub na innym serwerze

Obie te operacje można wykonać z poziomu Enterprise Manager (SQL2000) lub jego zastępczego SQL Management Studio (SQL2005 +) lub komend TSQL BACKUP i RESTORE .

Uwaga: możesz przywrócić kopię zapasową bazy danych z SQL2000 na SQL2005 bez problemów w większości przypadków, ale nie na odwrót.

David Spillett
źródło
1
Dziękuję David. Jak mogę przywrócić DB pod nową nazwą na innym serwerze?
Alex N
Utworzenie kopii zapasowej bazy danych powoduje utworzenie pliku kopii zapasowej (lub rozszerzenie istniejącego). Prześlij ten plik na inny serwer, a następnie użyj Management Studio (lub wydano komendę RESTORE w celu przywrócenia bazy danych z tego pliku). Proces przywracania umożliwia dyktowanie nazwy bazy danych po jej przywróceniu.
David Spillett,
7

Dodając to, natknąłem się na to, wykonując powyższe kroki.
W SQL Server 2008 R2 przynajmniej można pominąć krok w celu uzyskania lokalnej kopii zapasowej na serwerze.

  1. Bazy danych prawym przyciskiem myszy
  2. Kliknij Przywróć bazę danych.
  3. Ustaw opcję Z bazy danych na bazę danych, którą kopiujesz
  4. Ustaw opcję Do bazy danych na nową nazwę
  5. Kliknij OK
Chris
źródło
5

Prawdopodobnie jest to najlepsze rozwiązanie:

1) Na źródłowym serwerze DB - Utwórz kopię zapasową pliku lokalnego

DECLARE @fileName nvarchar(400);
DECLARE @DB_Name nvarchar(50);

SET @DB_Name = 'NameOfSourceDatabase'
SET @fileName = 'c:\Test\original.bak'

BACKUP DATABASE @DB_Name TO DISK = @fileName

2) Skopiuj plik źródłowy na serwer docelowy.
Jeśli oba serwery znajdują się na tym samym komputerze, możesz utworzyć kopię tego pliku:

EXEC master.dbo.xp_cmdshell 'COPY c:\Test\original.bak   c:\Test\clone.bak'

3) Na docelowym serwerze DB : Przywróć bazę danych z pliku kopii zapasowej

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'
Stefano Rosati
źródło
0

używając MS SQLServer 2012, musisz najpierw wykonać 3 podstawowe kroki, wygenerować plik .sql zawierający tylko strukturę źródłowej DB => kliknij prawym przyciskiem myszy źródłową DB, a następnie Zadania, a następnie Generuj skrypty => postępuj zgodnie z kreatorem i możesz zapisać plik .sql lokalnie Po drugie, zamień w pliku .sql źródłową bazę danych na docelową = = kliknij plik docelowy prawym przyciskiem myszy i naciśnij Nowe zapytanie i Ctrl-H lub (edytuj - znajdź i zamień - Quack replce) w końcu, zapełnij danymi => kliknij prawym przyciskiem myszy DB detekcji, następnie Zadania, a następnie Importuj dane => Lista rozwijana źródła danych ustawiona na „Moduł przetwarzania danych .NET Framework dla serwera SQL” + ustaw pole tekstowe ciągu połączenia w obszarze DANE np .: Źródło danych = Mehdi \ SQLEXPRESS; Początkowy katalog = test_db; Identyfikator użytkownika = sa; Hasło = sqlrpwrd15 => To samo dotyczy miejsca docelowego =>zaznacz tabelę, którą chcesz przenieść lub zaznacz pole „Źródło: .....”, aby zaznaczyć je wszystkie

skończyłeś.

Mehdi Benkirane
źródło