SSMS
 sql >> Datenbank >  >> Database Tools >> SSMS

SQL-Datenbankmigration mit SSMS

Die Migration von MSSQL zwischen Servern kann ohne die richtigen Richtlinien, die Sie auf Kurs halten, eine Herausforderung darstellen. In diesem Artikel werde ich die verschiedenen Möglichkeiten zum Migrieren von Microsoft SQL Server-Datenbanken zwischen Servern oder Instanzen skizzieren. Egal, ob Sie eine einzelne Datenbank, viele Datenbanken, Anmeldungen oder gespeicherte Prozeduren und Ansichten verschieben müssen, wir sind für Sie da!

Es gibt viele Situationen, in denen Sie eine Datenbank verschieben oder Datenbanken wiederherstellen müssen. Die häufigsten Gründe sind:

  • Umzug auf einen komplett neuen Server.
  • Verschieben zu einer anderen Instanz von SQL.
  • Einen Entwicklungsserver erstellen oder auf einem Produktionsserver live gehen.
  • Wiederherstellen von Datenbanken aus einer Sicherung.

Es gibt zwei Möglichkeiten, SQL-Datenbanken zu verschieben. Manuell mit Microsoft SQL Server Management Studio (SSMS) oder mit der Befehlszeile. Welche Methode Sie wählen, hängt davon ab, was Sie erreichen müssen. Wenn Sie eine einzelne Datenbank oder nur wenige verschieben, ist das manuelle Sichern und Wiederherstellen der Datenbanken mit SSMS der einfachste Ansatz. Wenn Sie viele Datenbanken verschieben (denken Sie an mehr als 10), beschleunigt die Verwendung der Befehlszeilenmethode den Vorgang. Die Befehlszeilenmethode erfordert vorher mehr Vorbereitungsarbeit, aber wenn Sie Dutzende von Datenbanken übertragen, lohnt es sich, das Skript zu konfigurieren, anstatt jede Datenbank einzeln zu migrieren. Wenn Sie sich nicht sicher sind, welche Methode Sie verwenden sollen, versuchen Sie zuerst den manuellen Ansatz, während Sie sich mit dem Prozess vertraut machen. Ich empfehle, den ganzen Weg durchzulesen, um die Methodik besser zu verstehen.

Nützliche Referenzen für Terminologie

SSMS – Ein Akronym für Microsoft S QL S immer M Verwaltung S Studio.

Quellserver – Der Server oder die Instanz, von der Sie Datenbanken verschieben oder aus .

Zielserver – Der Server oder die Instanz, auf die Sie Datenbanken auf verschieben .

Die manuelle Methode

Das manuelle Verschieben von SQL-Datenbanken kann sehr einfach sein. Es ist das bevorzugte Verfahren zum Übertragen weniger oder kleinerer Datenbanken. Um diesem Teil des Handbuchs folgen zu können, müssen MSSQL und Microsoft SQL Server Management Studio (SSMS) installiert sein.

Datenbanken auf dem Quellserver sichern

1. Melden Sie sich zunächst beim Quellserver an (dem Server, von dem Sie Datenbanken verschieben oder von dem Sie Datenbanken verschieben). Öffnen Sie Microsoft SQL Server Management Studio, indem Sie Start> Microsoft SQL Server>  Microsoft SQL Server Management Studio auswählen .

2.Melden Sie sich mit der Windows-Authentifizierung oder der SQL-Authentifizierung beim SQL-Server an.

3. Erweitern Sie den Server (in unserem Fall SQL01 ), erweitern Sie Datenbanken , wählen Sie die erste Datenbank aus, die Sie verschieben möchten (siehe Abbildung unten).

4. Klicken Sie mit der rechten Maustaste auf Ihre Datenbank und wählen Sie Aufgaben aus Klicken Sie dann auf Sichern .

5. Von hier aus befinden Sie sich jetzt in der Datenbank sichern Bildschirm. Sie können einen Sicherungstyp auswählen, z. B. Vollständig oder Differential , vergewissern Sie sich, dass die richtige Datenbank ausgewählt ist, und legen Sie das Ziel für die SQL-Sicherung fest. Für unser Beispiel können wir das Backup verlassen Typ als Voll .

6. Unter Sicherung Typ , aktivieren Sie das Kontrollkästchen für "Nur-Kopie-Sicherung". .“ Wenn Sie DPM oder eine andere Form der Serversicherung ausführen, sichern Sie ohne Nur kopieren -Flag verursacht eine Unterbrechung in der Sicherungsprotokollkette.

7. Sie sehen einen Ort unter Ziel für den Pfad der neuen Sicherung. Normalerweise werden Sie entfernen diesen Eintrag dann Hinzufügen eine neue, um einen Ordner auszuwählen, auf den SQL Lese-/Schreibzugriff hat. Hinzufügen eines neuen Sicherungsziels zeigt einen Pfad ähnlich dem folgenden:

C:\Programme\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

In diesem C:\-Pfad befindet sich Ihre gespeicherte Datenbanksicherung. Notieren Sie sich diesen Speicherort für spätere Referenzzwecke, da dies der Standardpfad zu gespeicherten Sicherungen ist und für SQL-Dienste ordnungsgemäßen Lese-/Schreibzugriff haben muss.

Hinweis:Fortgeschrittene Benutzer können das Ziel gerne so lassen, wie es ist, vorausgesetzt, die Berechtigungen für den Ausgabeordner sind korrekt.

8. Fügen Sie als Nächstes einen Dateinamen an das Ende dieses Pfads an, z. B. AdventureWorks2012-081418 .bak – Achten Sie darauf, den Dateinamen mit der Erweiterung .bak zu beenden und wählen Sie OK

10. Nachdem Sie OK gedrückt haben auf Sicherungsziel auswählen Sie sind bereit, die Datenbank zu sichern! Jetzt müssen Sie nur noch auf OK klicken , und die Datenbank beginnt mit der Sicherung. Unten links sehen Sie einen Fortschrittsbalken, und wenn die Sicherung abgeschlossen ist, erscheint ein Fenster mit der Meldung „Die Sicherung der Datenbank „AdventureWorks2012“ wurde erfolgreich abgeschlossen.“ '

Navigieren Sie zum zuvor erwähnten Zielpfad (in diesem Fall C:\Programme\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) sehen Sie Ihre neu erstellte Datei (in diesem Fall AdventureWorks2012-081418.bak ) - Herzliche Glückwünsche! Diese Datei ist der vollständige Export Ihrer Datenbank und kann auf den neuen Server importiert werden. Wenn Sie mehr Datenbanken haben, wiederholen Sie die obigen Schritte für jede Datenbank, die Sie verschieben. Nach dem Kopieren aller Datenbankprozesse zum nächsten Schritt der Wiederherstellung der Datenbanken auf dem Zielserver.

Datenbanken auf dem Zielserver wiederherstellen

Sie sollten jetzt eine .bak-Datei aller Ihrer Datenbanken auf dem Quellserver haben. Diese Datenbankdateien müssen auf den Zielserver übertragen werden. Es gibt zahlreiche Möglichkeiten, Ihre Daten auf den Zielserver zu verschieben; Sie können USB, Robocopy oder FTP verwenden. Nachdem Sie eine Datenbank kopiert haben, können Sie sie auf Ihrem Zielserver speichern. In unserem Beispiel haben wir sie auf Laufwerk C:in einem Ordner mit dem Namen C:\dbbackups . gespeichert

1. Öffnen Sie Microsoft SQL Server Management Studio.

2. Melden Sie sich mit der Windows-Authentifizierung oder der SQL-Authentifizierung beim SQL-Server an.

3. Erweitern Sie den Server und klicken Sie mit der rechten Maustaste auf Datenbanken und wählen Sie Datenbank wiederherstellen.

4. Die Datenbank wiederherstellen Bildschirm sieht der Datenbank sichern sehr ähnlich Bildschirm. Unter Quelle wählen Sie Gerät aus statt Datenbank . Auswählen von Gerät können Sie direkt aus einer Datei wiederherstellen. Nachdem Sie Gerät ausgewählt haben , klicken Sie auf das Durchsuchen-Symbol […]

5. Wählen Sie Hinzufügen , navigieren Sie dann zu dem Ordner, in dem sich Ihre .bak-Dateien befinden. (In diesem Fall C:\dbbackups ).

6. Wählen Sie die erste .bak-Datenbank aus, die Sie wiederherstellen möchten, und klicken Sie auf OK.

7. Klicken Sie auf OK und jetzt können Sie die Datenbank importieren. Werfen wir vor dem Import einen Blick auf den Abschnitt Optionen auf der linken Seite. Unter Optionen Sie werden andere Konfigurationen zum Wiederherstellen von Datenbanken sehen, wie z. B. Vorhandene Datenbank überschreiben , Behalten Sie die Replikationseinstellungen bei und Zugriff auf die wiederhergestellte Datenbank beschränken . In diesem Fall ersetzen wir keine vorhandene Datenbank, daher lasse ich alle diese Optionen deaktiviert. Wenn Sie eine vorhandene Datenbank ersetzen möchten (beispielsweise enthält die gesicherte Datenbank neuere Daten als auf dem Zielserver oder Sie ersetzen eine Entwicklungs- oder Produktionsdatenbank), wählen Sie einfach Vorhandene Datenbank überschreiben aus .

Hinweis:Fortgeschrittene Benutzer können das Ziel gerne so lassen, wie es ist, vorausgesetzt, die Berechtigungen für den Ausgabeordner sind korrekt.

8. Klicken Sie auf OK beginnt den Wiederherstellungsprozess, wie durch das Popup-Fenster mit der Meldung „Datenbank „AdventureWorks2012“ erfolgreich wiederhergestellt“ angezeigt wird. Sie haben Ihre Datenbank vom Quell- auf den Zielserver migriert.

Wiederholen Sie diesen Vorgang für jede Datenbank, die Sie migrieren. Sie können dann Pfadreferenzen in Ihren Skripten/Anwendung aktualisieren, um auf den neuen Server zu verweisen, überprüfen Sie, ob die Migration erfolgreich war.

Migration von Microsoft SQL Server-Anmeldungen

Wenn Sie nach dem Importieren Ihrer Datenbanken keine Verbindung mit Ihrer SQL-Anmeldung herstellen können, erhalten Sie möglicherweise die Fehlermeldung „Anmeldung für Benutzer „Beispiel“ fehlgeschlagen“. (Microsoft SQL Server, Fehler:18456). ' Weil sich die Datenbank im herkömmlichen Anmelde- und Benutzermodell befindet , Anmeldungen werden separat auf dem Quellserver gespeichert und Anmeldeinformationen sind nicht in der Datenbank selbst enthalten. Von diesem Punkt an kann der Zielserver so konfiguriert werden, dass er das Contained Database User Model verwendet Dadurch bleiben die Anmeldungen in Ihrer Datenbank und außerhalb des Quellservers. Bis dahin müssen wir uns im Rahmen des traditionellen Modells bewegen und mit den Benutzern interagieren. Fahren Sie unten fort, um mit der Migration Ihrer SQL-Benutzer fortzufahren.

Das Sichern und Wiederherstellen der Datenbanken hat Ihre SQL-Login-Relation zu den Datenbanken verschoben (Ihre Logins sind immer noch mit den richtigen Datenbanken mit den richtigen Berechtigungen verknüpft), aber die eigentlichen Logins selbst wurden nicht auf den neuen Server übertragen. Sie können dies überprüfen, indem Sie SSMS (SQL Server Management Studio) öffnen auf dem Zielserver und navigieren Sie zu Server> Sicherheit> Anmeldung s. Sie werden feststellen, dass alle benutzerdefinierten SQL-Anmeldungen, die Sie auf dem vorherigen Server erstellt haben, nicht hierher übertragen wurden, sondern wenn Sie zu Server> Datenbanken> Ihre Datenbank (in diesem Fall AdventureWorks2012)> Sicherheit> Benutzer gehen Sie sehen die korrekte Anmeldung, die der Datenbank zugeordnet ist.

Wenn Sie einen oder zwei SQL-Benutzer haben, können Sie einfach die Verknüpfung des Benutzers mit der Datenbank unter Server> Datenbanken> AdventureWorks2012> Sicherheit> Benutzer löschen , erstellen Sie den Benutzer unter Server> Sicherheit> Anmeldungen neu und ordnen Sie es der richtigen Datenbank zu.

Wenn Sie viele Anmeldungen haben, müssen Sie einen zusätzlichen Prozess befolgen, der unten beschrieben wird. Um alle SQL-Benutzer zu migrieren, öffnen Sie eine Neue Abfrage Fenster auf dem Quellserver und führen Sie das folgende Skript aus:

SQL-Anmeldeskript

+

Dieses Skript erstellt zwei gespeicherte Prozeduren in der Quelldatenbank, die bei der Migration dieser Anmeldungen helfen. Öffnen Sie ein Fenster Neue Abfrage und führen Sie Folgendes aus:
EXEC sp_help_revlogin

Diese Abfrage gibt ein Skript aus, das neue Anmeldungen für den Zielserver erstellt. Kopieren Sie die Ausgabe dieser Abfrage und speichern Sie sie für später. Sie müssen dies auf dem Zielserver ausführen.

Nachdem Sie die Ausgabe dieser Abfrage kopiert haben, melden Sie sich bei SSMS auf dem Zielserver an und öffnen Sie ein Fenster „Neue Abfrage“. Fügen Sie den Inhalt des vorherigen Skripts ein (es sollte eine Reihe von Zeilen enthalten, die ähnlich aussehen wie -- Login:BUILTIN\Administrators
CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE =[master]) und klicken Sie auf Execute.

Sie haben nun erfolgreich alle SQL-Anmeldungen importiert und können nun überprüfen, ob die Datenbanken auf den Zielserver migriert wurden, indem Sie Ihre vorherigen Anmeldeinformationen verwenden.

Migrieren von Ansichten und gespeicherten Prozeduren

Ansichten und gespeicherte Prozeduren werden mit der Datenbank migriert, wenn Sie die typischen SQL-Bandsicherungen verwenden. Befolgen Sie die nachstehenden Anweisungen, wenn Sie Ansichten und gespeicherte Prozeduren unabhängig voneinander migrieren müssen.

  1. Öffnen Sie Microsoft SQL Management Studio auf dem Quellserver.
  2. Melden Sie sich bei Ihrem SQL-Server an.
  3. Erweitern Sie den Server und sowie Datenbanken .
  4. Klicken Sie mit der rechten Maustaste auf den Namen Ihrer Datenbank und gehen Sie zu Aufgaben> Skripte generieren .
  5. Klicken Sie auf Weiter .
  6. Wir werden das Skript für die gesamte Datenbank und alle Datenbankobjekte ändern um bestimmte Datenbankobjekte auszuwählen und überprüfen Sie nur Ansichten und gespeicherte Prozeduren.
  7. Klicken Sie auf Weiter, beachten Sie die Option In Datei speichern. Notieren Sie sich den aufgelisteten Dateipfad. In meinem Fall ist es C:\Users\Administrator\Documents\script.sql - Der Pfad der gespeicherten Ansichten und gespeicherten Prozeduren.
  8. Klicken Sie auf Weiter>> Weiter>>Fertig stellen, und wählen Sie C:\Users\Administrator\Documents\script.sql aus und auf den Zielserver kopieren.
  9. Gehen Sie zum Zielserver, öffnen Sie SSMS und melden Sie sich beim SQL-Server an.
  10. Gehen Sie zu Datei> Öffnen> Datei oder verwenden Sie die Tastenkombination STRG+O, um das SQL-Skript zu öffnen. Wählen Sie die Datei C:\Users\Administrator\Documents\script.sql aus um es zu öffnen.
  11. Sie sehen das vom Quellserver generierte Skript, das alle Ansichten und gespeicherten Prozeduren enthält. Klicken Sie auf Ausführen oder verwenden Sie die Tastenkombination F5 und führen Sie das Skript aus.
Hinweis:Leider gibt es keine integrierte Möglichkeit, dies mit der Befehlszeile zu tun. Es gibt Tools von Drittanbietern und sogar ein Tool von Microsoft namens mssql-scripter für fortgeschritteneres Scripting.

Sie haben jetzt die Ansichten und gespeicherten Prozeduren auf Ihren Zielserver migriert! Wiederholen Sie diesen Vorgang für jede Datenbank, die Sie migrieren. Ein wenig Anleitung reicht bei der Datenbankverwaltung aus. Jeder SQL-Server hat seine eigenen Konfigurationen und Hindernisse, aber wir hoffen, dass dieser Artikel Ihnen eine solide Grundlage für Ihre Microsoft SQL Server-Migration gegeben hat.

Suchen Sie nach einem hochverfügbaren, plattformunabhängigen SQL-Dienst, der leicht skalierbar ist und mit Ihrem Unternehmen wachsen kann? Sehen Sie sich unser SQL-as-a-Service-Produkt an, das bei Liquid Web angeboten wird. Sprechen Sie mit einem unserer fantastischen Hosting-Berater, um die perfekte Lösung für Sie zu finden!


No