alunablue - stock.adobe.com
SQL Server Migration Assistant for Db2 richtig einsetzen
Wenn ein Umzug von IBM Db2-Datenbanken zu Microsoft SQL Server ansteht, kann SQL Server Migration Assistant für Db2 sinnvoll sein. Der Beitrag zeigt die Vorgehensweise.
Wenn Datenbanken von externen Datenbankservern zu Microsoft SQL Server umgezogen werden sollen, ist der Einsatz von SQL Server Migration Assistant (SSMA) oft der richtige Weg. Das Tool unterstützt hier zusätzlich, Datenbanken zu Microsoft Azure zu migrieren.
Microsoft stellt eine Version des SSMA für IBM Db2 zur Verfügung. Mit dem SSMA für Db2 lassen sich von allen aktuellen IBM-Db2-Installationen ab Version 9.0 Datenbanken zu ebenfalls allen aktuellen Microsoft SQL Server-Versionen umziehen, bis hin zu SQL Server 2019. Aktuell unterstützt SSMA die neue Version SQL Server 2022 noch nicht offiziell.
Das ist die Aufgabe des SQL Server Migration Assistant für Db2
Microsoft SQL Server Migration Assistant für Db2 konvertiert die Datenbanken, Tabellen und andere Objekte aus IBM Db2 so, dass diese für Microsoft SQL Server genutzt werden können. Anschließend kann der Assistent die Daten auf den Ziel-Server mit Microsoft SQL-Server oder nach Microsoft Azure migrieren. Der Ablauf besteht nach der Installation von SSMA aus mehreren Schritten:
Zunächst wird eine Verbindung zur IBM-Db2-Instanz hergestellt. Danach verbindet sich SSMA mit dem Ziel-SQL-Server oder zu Microsoft Azure. Wenn die Verbindung zwischen den Servern steht, liest das Tool die Daten aus den gewünschten Datenbanken aus und konvertiert sie in ein für Microsoft-SQL-Server lesbares Format. Im Anschluss darauf übernimmt der SSMA die Daten zum Ziel-Server. Die Daten auf dem Quell-Server bleiben dabei natürlich erhalten.
Nach dem Start von SSMA auf einem der beteiligten Server kann mit File\New Project ein neues Migrationsprojekt innerhalb von SSMA erstellt werden. Über dieses Projekt werden alle notwendigen Daten für die Migration angegeben. Die Daten speichert der Assistent in der ausgewählten Projektdatei, sodass diese jederzeit durch das Öffnen des Projektes erneut genutzt werden können.
Im ersten Schritt wird dazu der Name des Projektes und die Version des Ziel-Servers angegeben. An dieser Stelle ist es möglich Azure SQL als Ziel für die Migration zu verwenden. In diesem Fall kann der SSMA für Db2 direkt auf dem Server mit IBM Db2 installiert werden.
Verbindungsaufbau zu IBM Db2 und Microsoft SQL Server im SSMA konfigurieren
Wenn das Projekt erstellt ist, kann über die beiden Schaltflächen Connect to Db2 und Connect to SQL Server eine Verbindung zum Quell- und Ziel-Server aufgebaut werden. Bei der Verbindung sind Kennwörter notwendig, die das Tool aber nicht speichert. Das ist nach dem Start des Tools daran zu sehen, dass die Verbindung zum jeweiligen Server mit offline angezeigt wird. Mit Reconnect baut SSMA eine neue Verbindung auf.
Für die Verbindung zu IBM Db2 sind zum Teil noch Visual C++ Redistributable Packages for Visual Studio 2013 als 32-Bit und als 64-Bit-Version notwendig (beides installieren) sowie Microsoft OLE DB Provider for DB2 Version 6.0. Im Anmeldefenster für IBM Db2 muss bei Manager die Option DB2 for LUW ausgewählt werden. Danach folgt der Name oder die IP-Adresse des Servers und bei Initial Catalog der Name einer Datenbank, die migriert werden soll. Bei Package Collection kann der Wert bei NULLID verbleiben und bei User Name wird Benutzername und das Kennwort für die Verbindung angegeben.
Wichtig ist für die Verbindung zu IBM Db2 der verwendete Port. Dieser ist in der Datei %systemroot%\system32\drivers\etc\services über den Eintrag db2c_DB2 zu finden.
Datenbankobjekte prüfen, zuordnen und Schemas konvertieren
Sobald die Verbindung aufgebaut ist, muss die Zuordnung von DB2-Schemas zu den SQL-Server-Schemas erfolgen. Generell können DB2-Schemas auf zwei verschiedenen Wegen zu SQL-Schemas umgewandelt werden. Es ist möglich, alle Datenbanken von Db2 als eigenständige Datenbank zu Microsoft SQL Server zu übernehmen. Es ist aber auch umsetzbar, mehrere IBM Db2-Datenbanken zu einer einzelnen Microsoft SQL-Server-Datenbank zu übernehmen. Beide Wege lassen sich mit dem SSMA erledigen. Nach der Zuordnung der Datenbankschemas können die Datentypen zugeordnet werden.
Mit Create Report kann der Assistent Berichte erstellen, in denen angezeigt wird, wie lange die Migration dauern kann, welche Objekte Probleme machen, und was sonst noch eine Rolle spielt, um die einzelnen Bereiche für SQL Server zu konvertieren. Es ist in den meisten Fällen nicht möglich, alle Db2-Objekte für Microsoft SQL Server umzuwandeln. Das ist im Bericht erkennbar. Probleme machen vor allem Views, gespeicherte Prozeduren und Funktionen. Diese müssen teilweise neu geschrieben werden, wenn die Daten migriert sind. Dazu kommen Datums- und andere Zeitwerte, die häufig nicht korrekt übernommen werden können.
Wenn alle Objekte vorbereitet sind, kann mit Convert Schema die Aktion zum Konvertieren gestartet werden. Der Vorgang kann natürlich einige Zeit dauern. Wichtig sind an dieser Stelle die Informationen auf der Registerkarte Error List. Hier ist zu sehen, bei welchen Objekten es zu Problemen im Rahmen der Konvertierung gekommen ist.
Sind alle Objekte richtig zugeordnet und die Schemas konvertiert, lassen sich die Daten mit Migrate Data übernehmen. Dazu wird zunächst nochmal die Verbindung zu IBM DB2 verifiziert, und auch zum SQL Server muss noch einmal eine Verbindung aufgebaut werden. Dazu sind die Anmeldedaten notwendig. Tabellen, die sich nicht problemlos übernehmen lassen, zeigt der Assistent im Fenster an. Der Bericht dazu kann als CSV-Datei gespeichert werden.
Erweiterte Möglichkeiten mit Skripten und SSIS-Packages
Parallel zu den Standardfunktionen zur Übernahme der Daten, stehen über dem Menüpunkt Tools noch weitere Funktionen zur Verfügung. An dieser Stelle ist es möglich die Daten als SSIS-Package zu speichern. Dadurch speichert SSMA die Schemas als DTSX-Datei. Zusätzlich können an dieser Stelle die globalen Einstellungen für alle Migrationsprojekte oder für das einzelne Projekt gespeichert werden. Sinnvoll ist das zum Beispiel, wenn mehrere Db2-Server zu Microsoft SQL Server migriert werden sollen. Darüber hinaus lassen sich an dieser Stelle die Mappings vordefinieren.
Nachdem die Daten übernommen sind, muss darauf geachtet werden, dass Authentifizierung und Berechtigungen auf Microsoft SQL Server richtig gesetzt sind. Dazu kommen die Verbindungen der Anwendungen, die auf die Datenbanken setzen. Besonders wichtig sind Berechtigungen für die einzelnen Daten, da diese in vielen Fällen nach der Übernahme nicht richtig übernommen wurden, sondern in den meisten Fällen noch angepasst werden müssen. Im Gegensatz zu IBM Db2 erfolgt die Authentifizierung der Anwender immer auf dem Server. Beim Einsatz von IBM Db2 kann die Authentifizierung auf dem Client, auf dem Server oder auf einem Gateway erfolgen.