blog.Mainzer Datenfabrik

MS SQL Migration nach Oracle

cover image of blog article 'MS SQL Migration nach Oracle'

In den meisten Artikeln über die Migration von MSSQL nach Oracle wird die Vorgehensweise einfach dargestellt. Beispielsweise wie ein Windows Applikations Installer "Next > Next > Finish" und damit sei die Sache abgehakt. Wer aber eine Migration schon einmal ausprobiert hat, wird schnell merken, dass das nicht so einfach ist. Die Antwort liegt meistens in den Datentypen und wie sie von Oracle migriert und erkannt werden. Alternativ können auch Berechtigungsprobleme vorliegen oder aber falsch interpretierte Prozeduren/Funktionen von TSQL.

In diesem Artikel werden wir Microsofts AdventureWorks Datenbank mit Oracle SQL Developer nach Oracle migrieren und dabei die häufigsten und bei uns aufgetretenen Fehler und deren Problemlösung beschreiben.

Vorbereitung der Oracle Datenbank

Für die Migration haben wir eine separate Pluggable Datenbank erstellt:

CREATE PLUGGABLE DATABASE MSSQL ADMIN USER msadmin IDENTIFIED BY "msadmin" ROLES=(DBA);

Der SQL Developer braucht ein Schema, in dem das Migrations-Repository erstellt werden kann. Dieses Schema kann nach der Migration gelöscht werden. Wir können also ruhig alle Rechte vergeben - alles andere wird automatisch von SQL Developer erstellt.

grant dba to migration_repo identified by migration_repo;

Oracle hat mit dem ersten Release von 12c die maximale Länge der Datentypen VARCHAR2, NVARCHAR2 und RAW auf 32767 Bytes erweitert. Um dieses Feature nutzen zu können, muss jedoch zuvor der Parameter max_string_size auf extended geändert werden und im Upgrade-Mode das Skript utl32k.sql ausgeführt werden:

SQL>  alter pluggable database close immediate;

Pluggable database altered.

SQL> alter pluggable database open upgrade;

Pluggable database altered.

SQL> ALTER SYSTEM SET max_string_size='EXTENDED' SCOPE=both SID='*';

System altered.

SQL> @?/rdbms/admin/utl32k.sql

SQL> alter pluggable database close immediate;

Pluggable database altered.

SQL> alter pluggable database open;

Pluggable database altered.

SQL>

Die Konfiguration der PDB ist damit fertig.

SQL Developer Konfiguration

SQL Developer kann hier heruntergeladen werden.

Um sich mit dem SQL Developer auf die MSSQL Instanz zu verbinden brauchen wir folgendes Plugin: Download : jtds-1.3.1-dist.zip

Diese Datei müssen wir zunächst entpacken und dann im SQL Developer unter Preferences > Database > Third Party JDBC Drivers das jar-File im ausgepackten Verzeichnis auswählen.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Erstellen wir eine Verbindung zu dem Migrations-Repository

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Erstellen wir anschließend eine Verbindung für die MSSQL Quellinstanz (Adventure Works)

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Danach erstellen wir eine Verbindung für die Oracle Zielinstanz der Migration:

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Wenn alle drei Verbindungen erstellt sind, können wir das Repository erstellen. Dies nehmen wir durch die Auswahl von “Migration Repository” > “Associate Migration Repository” im Kontextmenü der migration_repo Verbindung vor.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Nach dem Klick wird das Repository installiert.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Migration nach Oracle

Wenn das Repository erstellt ist, können wir mit einem Rechtsklick auf die Quellinstanz klicken und Migrate to Oracle auswählen.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Der erste Schritt gibt einen Überblick über die auszuführenden Schritte. Hier empfehlen wir einfach den Next-Button zu drücken.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Danach wählen wir die Verbindung zum Migrations-Repository aus

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Im nächsten Fenster des Migrations-Wizards wird nach einem frei wählbaren Projektnamen gefragt.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Ferner muss ein Zielverzeichnis für Log- und Migrationsdateien erstellt werden

Mainzer Datenfabrik - MS SQL Migration nach Oracle

In Schritt 4 wählen wir die Verbindung zur Quellinstanz (hier MSSQL) aus

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Wenn in der Quellinstanz mehrere Datenbanken sind, können wir im nächsten Schritt die DB auswählen, die wir migrieren möchten.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Danach kann man die Datentypkonversionen anpassen. Es gibt ein paar Datentypen, die nicht erkannt werden und diese kann man leider weder unter Add New Rule, noch unter advanced options zu den Datentypen hinzufügen. So werden diese Typen als RAW erkannt und mit einer Länge von 8000 erstellt.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

In Schritt 7 wählen wir, welche Objekte wir konvertieren möchten.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Im nächsten Schritt wählen wir die Verbindung zur Zielinstanz aus. Hier können wir noch einstellen, ob eventuell vorhandene Zielobjekte gleichen Namens zuvor gelöscht werden sollen. Da wir aber eine neuen PDB benutzen, brauchen wir das nicht.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

In Schritt 9 wählen wir aus, ob die Daten Online oder Offline kopiert werden sollen. Dazu müssen wir noch die Quelle und das Ziel auswählen und auf Next drücken.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Die Zusammenfassung bestätigen wir mit Finish und warten bis die Konvertierung erfolgreich endet.

Mainzer Datenfabrik - MS SQL Migration nach Oracle

Seitennavigation

Zur Artikel Übersicht

Auf dieser Seite

SQL Server 2014 Migration SupportNEU
Im Sommer 2024 endet der Extended Support des Microsoft SQL Server 2014 SP3. Erfahren sie wie wir Sie bei Ihrer Migration unterstützen können! mehr erfahren