Welche Optionen stehen mir zur Verfügung, wenn ich eine Datenbank von SQL Server 2012 (32 Bit) auf SQL Server 2005 (64 Bit) verschieben muss?
Ich weiß, ich kann nicht:
- Herstellen Sie eine Sicherung der Datenbank in SQL Server 2005 wieder
- abnehmen und anbringen
Ich weiss ich kann:
- Verwenden Sie den Assistenten zum Importieren von Daten, und versuchen Sie es mit einer einzigen Datenbank. Es werden jedoch nur Daten verschoben, und selbst das war mühsam, da ich viel Arbeit beim Erstellen von temporären Tabellen zur Verwaltung von Identitätsspalten, zum Neuerstellen aller FKs, Indizes usw. benötigte.
Gibt es eine einfachere Möglichkeit?
sql-server
migration
downgrade
Greg Balajewicz
quelle
quelle
Antworten:
Sie können einer der folgenden Methoden folgen:
Hinweis: Wenn Sie neue Funktionen wie neue Datentypen usw. verwenden, müssen Sie diese testen, da dies zu Fehlern führt.
METHODE 1: Verwenden nativer Tools
Skript aus der Datenbank SCHEMA_ONLY und erstellen Sie eine leere Datenbank auf dem Zielserver neu. Unten sind die Screenshots:
Verwenden Sie BCP OUT und BULK INSERT, um Daten einzufügen.
Unten finden Sie das Skript, das Ihnen bei Teil 2 hilft.
Methode 2: Verwenden von Tools von Drittanbietern
Erstellen Sie eine leere Datenbank auf dem Zielserver. Verwenden Sie den Schema- und Datenvergleich von Redgate, um Daten zu erstellen und auf den Zielserver zu laden.
Hinweis: Ich habe Redgates Schema und Datenvergleich verwendet und sie sind die besten Tools für solche Aufgaben. Wenn Sie also Tools von Drittanbietern verwenden, würde meine Empfehlung Redgate lauten.
quelle
Zusätzlich zu den hier bereits vorgeschlagenen Methoden können Sie auch versuchen, eine BACPAC-Datei zu erstellen und in Ihr Ziel zu importieren. Dies ist vergleichbar mit der Empfehlung von Microsoft, Ihre Datenbanken von On-Prem- auf Azure Cloud-Datenbanken zu migrieren.
Der Vorteil besteht darin, dass sowohl das Schema als auch die Daten exportiert werden und dass dies nicht von der Datenbankversion abhängt. Sie können also theoretisch Datenbanken von jeder Version in jede Version importieren.
Der Nachteil ist, dass vor dem Generieren der BACPAC-Datei an der Quelle ein strenger Validierungsprozess ausgeführt wird, der leicht fehlschlagen kann, wenn Sie auf Objekte außerhalb Ihrer Datenbank verweisen (ob Benutzer- oder Systemdatenbanken) oder wenn Sie dies tun verschlüsselte Objekte. Aber wenn Sie Glück haben und es nicht scheitert, kann es eine ziemlich einfache Lösung sein.
Sie benötigen lediglich eine der neueren SSMS-Versionen (17 oder 18): https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
Um mit dem Erstellen einer BACPAC-Datei zu beginnen, klicken Sie mit der rechten Maustaste auf eine Datenbank und wählen Sie "Datenebenenanwendung exportieren ..." (nicht mit "Datenebenenanwendung extrahieren ..." verwechseln, da dies etwas anderes ist):
Sie erhalten einen einfachen Assistenten, der Sie durch die einzelnen Schritte führt. Wenn Sie fertig sind, können Sie auf Ihrem Zielserver die Option "Datenebenenanwendung importieren ..." verwenden, die angezeigt wird, wenn Sie mit der rechten Maustaste auf den Knoten "Datenbanken" klicken Anwendung ... "):
Auch hier wird ein einfacher Assistent angezeigt, der Sie durch die einzelnen Schritte führt.
quelle
Die Version von SQL Server zu verkleinern ist sehr mühsam.
Es gibt einige Möglichkeiten, wie zu verringern;
Erstellen Sie zunächst das gesamte Datenbankobjektskript und führen Sie es auf dem Zielserver aus.
Danach können Sie verwenden;
Aber für RedGate Data Compare Tool,
quelle
Ein Downgrade einer Datenbank unter SQL Server ist nicht möglich. Eine Problemumgehung besteht jedoch darin, alle DB-Objekte zu skripten und das Skript auf die Zieldatenbank anzuwenden. SSIS ist eine großartige Möglichkeit, dies zu unterstützen.
quelle