2008-09-17 2 views
20

Ich muss etwa 40 Datenbanken von einem Server auf einen anderen kopieren. Die neuen Datenbanken sollten neue Namen haben, aber dieselben Tabellen, Daten und Indizes wie die ursprünglichen Datenbanken. Bisher habe ich gewesen:Wie kopiert man am besten ganze Datenbanken in MS SQL Server?

1) Erstellen jeder Zieldatenbank
2), um die „Tasks->Export Data“ Befehl Tabellen zu erstellen und füllen für jede Datenbank einzeln
3) alle Indizes für jede Datenbank mit einem Wiederaufbau SQL-Skript

Nur drei Schritte pro Datenbank, aber ich wette, es gibt einen einfacheren Weg. Haben irgendwelche MS SQL Server-Experten da draußen einen Rat?

Antwort

43

Vorausgesetzt, dass Sie dies in mehreren Datenbanken durchführen - Sie möchten eine einfache Skriptlösung, keine Point-and-Click-Lösung.

Dies ist ein Backup-Skript, das ich behalte. Holen Sie es für eine Datei arbeiten und dann für viele ändern.

(on source server...) 
BACKUP DATABASE Northwind 
    TO DISK = 'c:\Northwind.bak' 

(target server...) 
RESTORE FILELISTONLY 
    FROM DISK = 'c:\Northwind.bak' 

(look at the device names... and determine where you want the mdf and 
ldf files to go on this target server) 

RESTORE DATABASE TestDB 
    FROM DISK = 'c:\Northwind.bak' 
    WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf', 
    MOVE 'Northwind_log' TO 'c:\test\testdb.ldf' 
GO 
2

Backup -> Restore ist die einfachste, wenn nicht die Replikation zu verwenden.

1

Sichern Sie die Datenbanken mit dem standardmäßigen SQL-Sicherungstool in Enterprise Manager. Wenn Sie dann auf dem zweiten Server wiederherstellen, können Sie den Namen der neuen Datenbank angeben.

Dies ist der beste Weg, um das Schema in seiner Gesamtheit zu erhalten.

0

Verwenden Sie Sicherungen, um die Datenbanken auf dem neuen Server mit den neuen Namen wiederherzustellen.

13

Vielleicht am einfachsten ist es, zu trennen/wieder anhängen. Klicken Sie mit der rechten Maustaste in den Server-Manager auf der DB, Aufgaben -> Trennen. Kopieren Sie dann die MDF/LDF-Dateien auf den neuen Server und schließen Sie sie erneut an, indem Sie auf das Serversymbol und Aufgaben -> Anfügen klicken. Es fragt Sie nach der MDF-Datei - stellen Sie sicher, dass der Name usw. korrekt ist.

+0

Mit Abstand am einfachsten, solange Sie genug Speicherplatz haben, um sowohl MDF als auch LDF zu kopieren. –

+0

Entschuldigung rob - ich denke, er braucht einen skriptgesteuerten Ansatz, keinen Punkt-Klick-Ansatz. –

+0

Das ist eine gute Antwort, aber ich denke, ich stimme Leon zu, ein Skript ist besser. –

4

Um Leichtigkeit

  • stop server/fcopy/attach ist wahrscheinlich am einfachsten.
  • Backup/Restore - kann ziemlich einfach und leicht
  • Transfer DTS-Task getrennt durchgeführt werden - muss Berechtigungen Dateikopie
  • Replikation - am weitesten von einfach zu installieren

Dinge zu Berechtigungen, Benutzer denken und Gruppen am Zielserver esp. wenn Sie übertragen oder wiederherstellen.

+0

Berechtigungen, Benutzer und Gruppen sind gute Punkte. Ich würde dir einen up-mod geben, aber ich habe nicht den Ruf ... –

+0

yeah Ich habe meine Zahlen verbrannt Datenbank übertragen wo Rollenmitglieder waren (ungültig) unregistrierte Logins oder Domain-Mitglieder aus einer anderen Domäne. – stephbu

0

Redgate SQL Vergleichen und SQL Daten vergleichen. Das Comparison Bundle war mit Abstand die beste Investition, für die ich je gearbeitet habe. Das Verschieben von E-Training-Inhalten war ein Kinderspiel.

4

Es gibt schon bessere Antworten, aber das ist ein 'auch ran', weil es nur eine andere Option ist.

Für den niedrigen niedrigen Preis von kostenlos können Sie die Microsoft SQL Server Database Publishing Wizard betrachten. Mit diesem Tool können Sie das Schema, die Daten oder Daten und das Schema skripten. Plus ist kann von einer UI oder Kommandozeile < ausgeführt werden - denke CI-Prozess.

+0

So würde ich es machen ... Das Tool ist ein Lebensretter, da es Schema und Daten in ein Skript kopiert - sogar für Blob-Objekte – Doug

2

Wenn Sie die Backup/Restore-Lösung verwenden, haben Sie wahrscheinlich verwaiste Benutzer. Achten Sie also darauf, this article <Microsoft> auf, wie Sie sie beheben.

Verwandte Themen