Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Know-how<br />
Unicode-Migration<br />
grafischen Werkzeuge schnell<br />
erkennbar sind.<br />
Die Migration<br />
Die eigentliche Migration erfolgt<br />
in vier Schritten (Abbildung<br />
2):<br />
n Aufbau einer neuen Datenbank.<br />
Die neue Datenbank<br />
wird entsprechend<br />
den Vorgaben des<br />
Unternehmens <strong>und</strong> von Oracle <strong>mit</strong><br />
dem neuen Zeichensatz (in der Regel<br />
»AL32UTF8«) aufgebaut. Als angenehmer<br />
Nebeneffekt ergibt sich dabei,<br />
dass sich die Datenbank komplett<br />
reorganisieren lässt, das heißt<br />
überflüssige Daten, die etwa durch die<br />
Installation von Beispielschemata in<br />
die Datenbank gelangten, kann man<br />
jetzt eliminieren.<br />
n Exportieren der Schemadefinitionen<br />
als ASCII-Datei. Danach exportiert<br />
man die Schemadefinitionen (Abbildung<br />
3) ohne Längensemantik als<br />
ASCII-Datei. Dadurch ergibt sich die<br />
Möglichkeit, anschließend eine Bereinigung<br />
vorzunehmen. Oracle bietet<br />
hierfür ein Package <strong>mit</strong> dem Namen<br />
»dbms_metadata« an. Der Autor hat<br />
sehr gute Erfahrungen <strong>mit</strong> Toad for<br />
Oracle gemacht, da das Tool über eine<br />
grafische Schnittstelle ganz einfach<br />
die komplette Definition auch mehrerer<br />
Schemata als ASCII-Datei erstellt<br />
Abbildung 2: Schematische Darstellung einer Migration.<br />
<strong>und</strong> in den Editor kopiert. Über »find«<br />
<strong>und</strong> »replace« lassen sich dann gegebenenfalls<br />
Änderungen (zum Beispiel<br />
Umstellung von »NVARCHAR2« auf<br />
»VARCHAR2«) durchführen.<br />
n Importieren der Schemadefinitionen.<br />
Das eben erstellte Skript <strong>mit</strong> der Schemadefinition<br />
wird dann in der neuen<br />
Datenbank ausgeführt. Vorher setzt<br />
man allerdings für die gesamte Session<br />
den Parameter »NLS_LENGTH_<br />
SEMANTICS«:<br />
SQL> ALTER SESSION U<br />
SET NLS_LENGTH_SEMANTICS=CHAR;<br />
Da<strong>mit</strong> wird dafür gesorgt, dass allen<br />
Zeichen-Spalten (also »CHAR«, »VAR-<br />
CHAR2«, etc.), die keine explizite Längensemantik<br />
verwenden, »CHAR« als<br />
Längensemantik zugewiesen wird. Da<strong>mit</strong><br />
passen die Umlaute auch wieder in<br />
die Felder.<br />
n Datensätze importieren. Als Letztes<br />
werden die Datensätze, also die<br />
Inhalte der Tabellen einfach<br />
per Export / Import oder Data<br />
Pump übertragen. Beim Importieren<br />
der Daten ist darauf<br />
zu achten, dass die Befehle<br />
ignoriert werden, die die Tabellen<br />
erstellen würden, denn<br />
die gibt es ja schon. Außerdem<br />
müssen die Foreign-Key-<br />
Contraints ausgeschaltet werden,<br />
da die Reihenfolge des<br />
Einfügens der Daten nicht<br />
festgelegt werden kann. Ansonsten<br />
könnte es dazu kommen, dass ein<br />
Detail-Datensatz (zum Beispiel die<br />
Adresse einer Person) nicht eingefügt<br />
werden kann, weil die Daten der Person<br />
selbst (also Vorname, Nachname,<br />
etc.) noch nicht vorhanden sind. Beim<br />
Importieren interessieren wir uns aber<br />
nur dafür, dass ganz am Ende alle<br />
Daten eingefügt sind, dann sollten die<br />
Personen zu den Adressen passen.<br />
Nötige Auszeiten<br />
Sicherlich ist die Auszeit für eine solche<br />
Migration nicht zu vernachlässigen. Bei<br />
kritischen Datenbanken wird daher empfohlen,<br />
eine Replikationssoftware zu nutzen,<br />
die die Änderungen der alten Datenbank<br />
protokolliert <strong>und</strong> nachdem die neue<br />
Datenbank aufgesetzt wurde, in die neue<br />
Datenbank nachträgt. Mit dem Werkzeug<br />
SharePlex for Oracle von Dell (vormals<br />
Quest) wurde so bei einem großen deutschen<br />
Automobilhersteller im Jahr 2010<br />
eine r<strong>und</strong> 10 Terabyte große Datenbank<br />
<strong>mit</strong> einer Auszeit von weniger als zwei<br />
St<strong>und</strong>en migriert, <strong>und</strong> 2011 wurde eine<br />
kleinere Datenbank, die allerdings höchst<br />
kritisch war, ohne jede Downtime von<br />
einem ISO-Zeichensatz auf Unicode umgestellt.<br />
Bei beiden Datenbanken gab es<br />
zudem den Nebeneffekt, dass man noch<br />
mehrere Wochen zum alten System hätte<br />
zurückkehren können. (jcb)<br />
n<br />
Abbildung 3: Export eines Datenbankschemas als ASCII-Datei.<br />
Der Autor<br />
Johannes Ahrends beschäftigt sich seit r<strong>und</strong> 20<br />
Jahren <strong>mit</strong> der Oracle Datenbank <strong>und</strong> den zugehörigen<br />
Tools. Seit 2011 hat er sein eigenes Unternehmen:<br />
CarajanDB – spezialisiert auf Themen<br />
r<strong>und</strong> um Oracle. Johannes Ahrends ist Co-Autor<br />
des Standardwerks „Oracle für den DBA“ <strong>und</strong><br />
wurde <strong>mit</strong> dem Oracle ACE Award geehrt.<br />
66 Ausgabe 06-2012 Admin www.admin-magazin.de