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

So kopieren Sie SQL Server-Datenbanken von einer Instanz auf eine andere

Das Kopieren oder Verschieben von Datenbanken ist eine der häufigsten Aufgaben für Datenexperten, die sich regelmäßig mit der Bereitstellung von Skripts oder neuen Lösungen in verschiedenen Umgebungen befassen. Mit SQL Server haben wir mehrere Möglichkeiten, wie wir dies nativ erreichen können, ohne Tools von Drittanbietern zu verwenden.

Native Lösungen innerhalb von SQL Server

Hier sind einige Möglichkeiten, wie wir diese Aufgabe nativ in SQL Server ausführen können:

  • In SQL Server führen wir normalerweise vollständige Datenbanksicherungen auf der Quelldatenbank durch, kopieren sie auf den Zielserver und stellen sie dann wieder her. Dies könnte sich als herausfordernde Aufgabe für Neulinge oder für Fachleute herausstellen, die nicht in der Rolle des DBA sind. Wenn Sie keine geeignete Skripting-Lösung haben, können Sie auf Probleme stoßen und Schwierigkeiten haben, dies zu erreichen, während Sie mit riesigen Datenbanken arbeiten.
  • Eine weitere Option ist die Methode „detach\attach“. Diese Methode wird häufig verwendet, aber auch hier müssen Sie vorsichtig sein, wenn Sie mit großen Datenbanken oder mit Datenbanken arbeiten, die eine Reihe von Daten oder Protokolldateien enthalten. Außerdem würde die Quelldatenbank bei diesem Ansatz offline gehen. Wenn Sie kein erfahrener Datenbankadministrator sind, können Sie beim Umgang mit großen Datenbanken immer noch Probleme haben.

Es gibt andere Optionen, die verwendet werden können, z. B. die Verwendung des Assistenten zum Kopieren von Datenbanken oder des Assistenten zum Importieren/Exportieren von Daten zum Zwecke des Datenimports/-exports. Sie müssen auch sicherstellen, dass die Anmeldungen und Berechtigungen vom Quellserver korrekt auf den Zielserver migriert werden, da sonst Anwendungsbenutzer Probleme haben könnten, sich korrekt mit der Datenbank zu verbinden.

Verwendung von dbForge Studio für SQL Server zum Kopieren oder Verschieben von Datenbanken von einer Instanz zu einer anderen oder von einem Server zu einem anderen

Was die Software von Drittanbietern betrifft, so hat Devarts dbForge Studio für SQL Server eine coole Funktion, die in das Produkt integriert ist, um das Kopieren oder Verschieben von Datenbanken in wenigen einfachen Schritten durchzuführen. Wir werden den Prozess mit einer Demo in diesem Artikel überprüfen.

Die Testversion dauert einen Monat und gibt Ihnen ausreichend Zeit, um die anderen in das Produkt eingebetteten Funktionen zu testen. Für diese Demo wird die Enterprise-Testversion 5.5 verwendet.

Sobald Sie dbForge Studio ausführen, erhalten Sie diesen Bildschirm, um die Datenbankverbindungsdetails zu aktualisieren. Damit können Sie sich mit Ihrer SQL Server-Instanz verbinden.

Um weitere Verbindungen zu anderen SQL-Instanzen herzustellen, klicken Sie auf das Symbol, das das Fenster für eine neue Datenbankverbindung öffnet.

Unten sehen Sie, dass ich bereits eine Verbindung zu einer bestehenden SQL-Instanz hergestellt habe.

Nachdem Sie eine Verbindung zu Ihren SQL Server-Instanzen hergestellt haben, können Sie die Datenbanken anzeigen, die Sie kopieren oder zwischen den Instanzen verschieben möchten. In dieser Demo kopieren wir die Datenbank test von der SQL-Instanz:Boulcott nach Boulcott\INST2.

Um den Test zu kopieren Datenbank zu INST2, gehen Sie zu Datenbank-Sync Option auf der Hauptregisterkarte und klicken Sie auf Datenbank kopieren .

Das Fenster Datenbank kopieren wird geöffnet. Dort können Sie die Details der Quell- und Zielserver eingeben. In dieser Demo kopieren wir die Datenbank über Instanzen hinweg, die sich auf demselben Computer befinden. Sie können das dbForge-Tool auch verwenden, um Datenbanken über verschiedene Server zu kopieren. Geben Sie die Serverdetails wie gezeigt ein, vergewissern Sie sich, dass die Verbindung erfolgreich ist, und klicken Sie dann auf Weiter .

Anschließend wird die Liste der verfügbaren Datenbanken auf dem Quellserver angezeigt. Wählen Sie die Datenbank aus, die Sie kopieren möchten. In unserem Beispiel ist es der test Datenbank. Wählen Sie Kopieren aus Kontrollkästchen und klicken Sie auf Weiter . Hier habe ich nur eine zu kopierende Datenbank ausgewählt. Das Tool ist jedoch nicht auf jeweils eine Datenbank beschränkt, da wir mehrere Datenbanken auswählen können, die gleichzeitig kopiert oder verschoben werden sollen.

Optionen für den Speicherort der Zieldatenbank auswählen

Wie Sie sehen können, können die Daten- und Protokolldateispeicherorte für die Zieldatenbank in die Speicherorte geändert werden, die Sie verwenden wollten. Die Werte werden automatisch generiert, können aber leicht geändert werden. Der Name der Zieldatenbank kann ebenfalls geändert werden.

Klicken Sie auf Weiter . Das Fenster Übertragungseinstellungen wird angezeigt. Sie müssen sicherstellen, dass das SQL Server-Agent-Konto über ausreichende Berechtigungen zum Ausführen des Kopiervorgangs verfügt. Lesen Sie diesen Abschnitt sorgfältig durch, da es zu Problemen kommen kann, wenn das SQL Server-Agent-Konto nicht über die erforderlichen Berechtigungen verfügt. Da sich die Instanzen in meinem Fall auf demselben Server befinden, ist kein freigegebenes Ordnerverzeichnis erforderlich. Allerdings ist ein freigegebenes Ordnerverzeichnis mit ausreichenden Berechtigungen für das SQL Agent-Konto erforderlich, wenn Sie die Datenbank über SQL-Instanzen auf verschiedenen Servern kopieren müssen. Wenn Sie mit der Überprüfung fertig sind, klicken Sie auf Weiter .

Auf der Registerkarte Logins kopieren können Sie je nach Anforderung die richtige Option auswählen. Standardmäßig Alle Logins kopieren, die von ausgewählten Datenbanken verwendet werden aktiviert. Treffen Sie die entsprechende Auswahl für Ihren Fall, überprüfen Sie sie und klicken Sie auf Weiter .

Führen Sie den Kopiervorgang mit dbForge Studio durch

Der folgende Screenshot zeigt, wo Sie den Ausführungsprozess für den Kopierauftrag starten können. Wir haben die Möglichkeit, die Arten der Fehlerbehandlung zu wählen, die während des Ausführungsprozesses möglich sind. Standardmäßig einen Benutzer zu einer Aktion auffordern ist ausgewählt. In dieser Demo habe ich auch die Option zum Schreiben eines Berichts in eine Protokolldatei aktiviert was praktisch wäre, um mit jeder Art von Fehlern umzugehen. Das Fehlerprotokoll ist ziemlich ausführlich und gibt Ihnen den Grund für jeden Prozessfehler im Detail an. Wenn Sie fertig sind, klicken Sie auf Ausführen Option, die den Ausführungsprozess startet.

Sie können den Fortschritt der Ausführungsaufgabe anzeigen.

Abschluss des Kopiervorgangs

Sobald der Vorgang abgeschlossen ist, sehen Sie diese Benachrichtigung, die bestätigt, dass der Kopiervorgang abgeschlossen ist.

Durch Klicken auf Protokolldatei anzeigen Option können Sie die Details der Prozessausführung und den Status der abgeschlossenen Aufgaben sehen. Sie können weitere Kopiervorgänge durchführen, indem Sie auf Mehr kopieren klicken Option.

Überprüfen Sie die SQL-Zielinstanz

Der nächste Schritt wäre, eine Verbindung zu Ihrer SQL-Zielinstanz herzustellen und zu überprüfen, ob die Datenbank kopiert wurde. Auf der Ziel-SQL-Instanz gibt es den test Datenbank, die erfolgreich mit dbForge Studio für SQL Server kopiert wurde.

Datenbanken von der Quell- zur Ziel-SQL-Instanz verschieben

Zuvor konnten wir erfolgreich eine Datenbank vom Quellserver auf den Zielserver kopieren. Wir könnten auch dieses Tool und die vorherige Demo verwenden, wenn Sie stattdessen Datenbanken verschieben müssen.

Wählen Sie im Fenster Datenbanken auswählen die Option Verschieben aus Option.

Dies würde im Grunde die Datenbanken vom Quellserver auf den Zielserver migrieren. Gehen Sie einfach die zuvor beschriebenen Schritte durch. Ich hatte den SQL Server-Agent auf dem Zielserver absichtlich angehalten und wurde mit diesem Fehlerbildschirm konfrontiert.

Wenn Sie auf Nein klicken , gelangen Sie zur Option zum Anzeigen der Protokolldateien.

Über die Schaltfläche Protokolldatei anzeigen… gelangen Sie zur detaillierten Protokolldatei, in der die tatsächliche Fehlerursache identifiziert werden kann.

Hier sehen Sie genau den Grund für die fehlgeschlagene Operation. Sie werden auch sehen, dass während der Ausführung ein SQL-Agent-Job auf dem Zielserver erstellt wird und angezeigt werden kann.

Dieser Job existiert nur für die Dauer des Ausführungsprozesses und wird gelöscht, sobald der Prozess abgeschlossen ist. Stellen Sie eine Verbindung sowohl mit der Ziel- als auch mit der Quell-SQL-Instanz her, um zu bestätigen, dass die Datenbanken tatsächlich verschoben wurden. Der folgende Screenshot bestätigt, dass die Datenbanken 1 und 2 erfolgreich vom Quellserver auf den Zielserver verschoben wurden.

Datenbanken von der Quell-SQL-Instanz in die Zielinstanz kopieren und überschreiben

Bisher haben wir Datenbanken vom Quellserver auf den Zielserver kopiert und verschoben. Führen Sie dann einen zusätzlichen Schritt aus, um die WideWorldImporters-Datenbanken zu kopieren und zu überschreiben.

Dieser Vorgang ähnelt den vorherigen Schritten zum Kopieren oder Verschieben von Datenbanken mit nur einem zusätzlichen Schritt zum Auswählen der Überschreibung Option.

Befolgen Sie einfach die restlichen Schritte ähnlich wie zuvor, und der Vorgang würde erfolgreich sein, sobald er abgeschlossen ist. Zusammenfassend die Verwendung der Datenbank kopieren Option im dbForge Studio-Tool können Sie die folgenden Funktionen ausführen:

  • Datenbanken vom Quellserver auf den Zielserver kopieren
  • Datenbanken vom Quellserver auf den Zielserver verschieben
  • Datenbanken vom Quellserver auf den Zielserver kopieren und überschreiben
  • Datenbanken vom Quellserver auf den Zielserver verschieben und überschreiben

Schlussfolgerung

  • Mit dieser Demo haben Sie gesehen, wie einfach eine Datenbank mit dbForge Studio mit sehr wenig Benutzereingabe von einer SQL-Instanz zu einer anderen kopiert werden kann
  • Ein weiterer Vorteil dieses Tools besteht darin, dass mehrere Datenbanken gleichzeitig zwischen verschiedenen Instanzen kopiert oder verschoben werden können
  • Für diese Aufgaben ist nur sehr wenig technisches Fachwissen erforderlich, da das Tool benutzerfreundlich und GUI-basiert ist
  • Dieses Tool kann sehr praktisch sein, besonders wenn Sie Bereitstellungen schnell in verschiedenen Serverumgebungen einführen und die Zeit knapp ist

Nützliches Tool:

dbForge Studio für SQL Server – leistungsstarke IDE für die Verwaltung, Verwaltung, Entwicklung, Datenberichterstattung und -analyse von SQL Server.