Wie dupliziere ich eine MSSQL-Datenbank auf demselben oder einem anderen Server?


15

Ich versuche folgendes zu erreichen:

  1. Einen Schnappschuss der ursprünglichen Datenbank machen, ein Duplikat auf einem anderen Server erstellen und ausführen?
  2. Machen Sie einen Schnappschuss der ursprünglichen Datenbank und erstellen Sie ein Duplikat auf demselben Server unter einem anderen DB-Namen

Ich kann jedoch aufgrund sehr begrenzter Erfahrung mit MSSQL nicht. Irgendwelche Vorschläge?

Zusätzliche Information:

Origin DB-Server: SQL Server 2000

Ziel-DB-Server: SQL Server 2005

Antworten:


17
  1. Sichern Sie die Datenbank
  2. Stellen Sie die Datenbank unter einem neuen Namen und / oder auf einem anderen Server wieder her

Beide Vorgänge können mit Enterprise Manager (SQL2000) oder dessen Ersatz SQL Management Studio (SQL2005 +) oder den TSQL-Befehlen BACKUP und RESTORE ausgeführt werden .

Hinweis: Sie können eine von SQL2000 unter SQL2005 gesicherte Datenbank in den meisten Fällen ohne Probleme wiederherstellen, jedoch nicht umgekehrt.


1
Vielen Dank, David. Wie kann ich die Datenbank unter einem neuen Namen auf einem anderen Server wiederherstellen?
Alex N

Durch das Sichern der Datenbank wird eine Sicherungsdatei erstellt (oder eine vorhandene erweitert). Übertragen Sie diese Datei auf den anderen Server, und stellen Sie mit Management Studio (oder einem auf andere Weise ausgegebenen RESTORE-Befehl) eine Datenbank aus dieser Datei wieder her. Der Wiederherstellungsprozess bietet Ihnen die Möglichkeit, einen Namen für die Datenbank festzulegen, sobald diese wiederhergestellt ist.
David Spillett

7

Fügte dies hinzu, als ich darauf stieß, während ich den obigen Schritten folgte.
Zumindest in SQL Server 2008 R2 können Sie einen Schritt zum Abrufen einer lokalen Sicherung auf dem Server überspringen.

  1. Rechtsklick auf Datenbanken
  2. Klicken Sie auf Datenbank wiederherstellen.
  3. Setzen Sie die Option Von Datenbank auf die Datenbank, die Sie kopieren
  4. Setzen Sie die Option An Datenbank auf den neuen Namen
  5. OK klicken

5

Wahrscheinlich ist dies die beste Lösung:

1) Auf dem Quell-DB-Server - Backup in lokale Datei erstellen

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) Kopieren Sie die Quelldatei auf den Zielserver.
Wenn sich beide Server auf demselben Computer befinden, möchten Sie möglicherweise eine Kopie dieser Datei erstellen:

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

3) Auf dem Ziel-DB-Server : Stellen Sie die Datenbank aus der Sicherungsdatei wieder her

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'

0

Unter MS SQLServer 2012 müssen Sie zunächst drei grundlegende Schritte ausführen. Generieren Sie eine .sql-Datei, die nur die Struktur der Quell-DB enthält. Klicken Sie mit der rechten Maustaste auf die Quell-DB und dann auf Aufgaben und dann auf Skripte generieren. Folgen Sie dem Assistenten, und speichern Sie die .sql-Datei .sql-Datei lokal Zweitens ersetzen Sie in der .sql-Datei die Quell-DB durch die Ziel-DB => klicken Sie mit der rechten Maustaste auf die Zieldatei und drücken Sie New Query und Ctrl-H oder (Bearbeiten - Suchen und Ersetzen - Quaken-Replizieren) füllen Sie sie abschließend mit Daten => Rechtsklick auf die Erkennungsdatenbank, dann auf Aufgaben und dann auf Daten importieren => Datenquellen-Dropdown auf ".net Framework-Datenprozessor für SQL-Server" setzen + Textfeld für Verbindungszeichenfolge unter DATEN setzen ex: Datenquelle = Mehdi \ SQLEXPRESS; Initial Catalog = db_test; Benutzer-ID = sa; Passwort = sqlrpwrd15 => Gleiches gilt für das Ziel =>Aktivieren Sie die Tabelle, die Sie übertragen möchten, oder aktivieren Sie das Kontrollkästchen neben "source: .....", um alle zu überprüfen

du bist fertig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.