Aus der Praxis–Konvertierung eines SQL-Backups von SQL 2008 R2 zu SQL 2008
avatar

Neulich hatte ich eine interessante Herausforderung. Ich habe dem Kunden das Backup einer Datenbank geschickt, damit er mit Testdaten testen kann. Er konnte es leider nicht einspielen, da ich es ihm im Format von SQL 2008 R2 geschickt habe und er nur SQL 2008 auf seinem System hatte. Leider konnte ich auch nach einer Such keine Möglichkeit finden um das Backup direkt zu konvertieren oder im SQL 2008 R2 das Backup für SQL 2008 anzulegen.

In meinem Fall durfte das Backup auch für keine tiefere Version erstellt werden, da ich eine Spalte vom Typ “geography” in einer Tabelle hatte, welche  es erst seit 2008 gibt. Ich musste es über einen Umweg versuchen.

Schritt1: Aufsetzen einer Virtuellen Maschine mit SQL Server 2008

Als erstes habe ich eine VM mit SQL Server 2008 erstellt. Da ich immer eine Vorlage zur Verfügung habe, musste ich nur SQL Server 2008 R2 deinstallieren und SQL Server 2008 installieren.

Schritt2: Bilden eines virtuellen Netzwerks mit VM Workstation

Wir benutzen bei uns in der Entwicklung VM Workstation 8 um auch mal ein kleines Netzwerk aus Maschinen testen zu können (z.B. mit Active Directory oder Lync Server). Ich wollte nun ein kleines Netzwerk erstellen. Das ist eigentlich ganz  einfach.

Zunächst öffnet man EDIT->Virtual Network Editor. Dort konfiguriert man ein Netzwerk (beispielsweise das VMNet2) mit Host-Only. Möchte man Internetzugang auf den Maschinen dann muss statt Host-Only NAT gewählt werden. In beiden Varianten sollten Sie die DHCP-Einstellungen so wählen, dass automatisch IPs vergeben werden.

Anschließend sollten beide Maschinen (im ausgeschalteten Modus) über VM-> Settings-> Network Settings diesem Netzwerk zugeordnet werden. Anschließend sollten sich beide Maschinen, sogar mit Namen, pingen lassen.

Achtung: Vergessen Sie nicht die Firewall auszuschalten falls diese aktiv ist oder, falls Sie Internetzugang nutzen, dort einen entsprechenden Zugang für die andere Maschine einzurichten.

Eine ausführlichere Beschreibung finden Sie hier:
http://www.vmware.com/support/ws55/doc/ws_net_configurations_custom.html

Schritt3: Übertragen der Daten auf den anderen Server

Sie sollten nun auf dem Zielsystem eine Datenbank und die entsprechenden Tabellen erstellen. Als nächstes sollten Sie auf der Zieldatenbank den Quellserver als Linked Server hinzufügen.

Im Normalfall (wenn Sie nicht “geography” als Typ verwenden) können Sie nun eine einfache Abfrage für die Übertragung machen. Sie müssen dann z.B. im FROM eine SELECT-Anweisung den Linked Server vor die gewählte Datenbank schreiben.

In meinem Fall war es nur leicht schwerer. Der SQL-Server gab mir den Hinweis ich solle eine Pass-Trough-Query verwenden. Diese führt man aus indem man den Befehl OPENQUERY(Linked_Server, Query) angibt.

In meinem Fall sah das dann so aus:

Insert Into dbo.T_GeoDatenHH
Select *
From OPENQUERY(HANSEVIS13,'SELECT [StrHH_ID],[Hausnummer],[Koordinaten] FROM [GeoDataBackup].[dbo].[T_GeoDatenHH]')

Dann dauerte es nur ein klein wenig bis alle Daten übertragen wurden.

Schritt4: Backup erstellen und an den Kunden senden

Anschließend konnte ich dem Kunden das neue Backup mit Version SQL Server 2008 zusenden.

Ein Gedanke zu “Aus der Praxis–Konvertierung eines SQL-Backups von SQL 2008 R2 zu SQL 2008
avatar

  1. Pingback: Aus der Praxis–Konvertierung eines SQL-Backups von SQL 2008 R2 zu SQL 2008 - SharePoint Blogs in German - Bamboo Nation

Schreibe einen Kommentar