Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Ablauf einer Umsetzung  Dokument im Navigationsbaum lokalisieren

Das folgende Beispiel erläutert, wie eine Tabellenumsetzung abläuft, wenn Sie die Definition der Tabelle im ABAP Dictionary ändern.

Ausgangssituation:

Die Tabelle TAB wurde im ABAP Dictionary verändert. Dabei wurde die Länge eines Feldes (Feld 3) von 60 auf 30 Stellen gekürzt. Im ABAP Dictionary ist eine aktive Version (in der das Feld eine Länge von 60 Stellen besitzt) und eine überarbeitete Version der Tabelle (in der das Feld 30 Stellen besitzt) vorhanden.

Auf der Datenbank wird die Tabelle mit der aktiven Version angelegt, d.h. auf der Datenbank hat Feld 3 momentan 60 Stellen. Für die Tabelle sind im ABAP Dictionary zwei Sekundärindizes definiert, die auf der Datenbank ebenfalls angelegt wurden. Die Tabelle enthält bereits Daten.

Das Verkürzen eines Feldes führt zu einer Umsetzung der Tabelle. Die folgenden sieben Schritte beschreiben die Tabellenumsetzung im Detail.

...

       1.      Sperre setzen

Die Tabelle wird gegen weitere Strukturänderungen gesperrt. Dieser Sperrmechanismus  soll verhindern, dass eine neue Strukturänderung durchgeführt wird, solange die Umsetzung noch nicht korrekt abgeschlossen wurde.

Alle Views, die die Tabelle verwenden, werden auf der Datenbank gelöscht.

       2.      Tabelle umbenennen

Die auf der Datenbank vorhandene Tabelle wird umbenannt. Alle Indizes zur Tabelle werden dabei gelöscht. Der Name der neuen Tabelle setzt sich aus dem Präfix QCM und dem Tabellennamen zusammen. Der Name der temporären Tabelle zur Tabelle TAB ist also QCMTAB. Falls auf der Datenbank schon eine Tabelle unter dem Namen QCMTAB vorhanden ist (z.B. aus einem vorhergehenden Umsetzversuch), so wird diese vor der Umbenennung gelöscht.

Diese Grafik wird im zugehörigen Text erklärt

       3.      Tabelle aktivieren

Die überarbeitete Version der Tabelle wird im ABAP Dictionary aktiviert. Im ABAP Dictionary ist damit nur noch eine aktive Version der Tabelle TAB vorhanden, in der Feld 3 die Länge 30 hat.

Die Tabelle TAB wird mit ihrer neuen Struktur auf der Datenbank unter dem Namen QCM8TAB angelegt. Außerdem wird der Primärindex zur Tabelle auf der Datenbank angelegt. Die Struktur der Datenbanktabelle QCM8TAB entspricht also nach diesem Schritt der Struktur der Tabelle TAB im ABAP Dictionary. Die Datenbanktabelle enthält noch keine Daten.

Diese Grafik wird im zugehörigen Text erklärt

       4.      Daten zurückladen

Die Daten werden aus der Tabelle QCMTAB in die Tabelle QCM8TAB kopiert (mit dem ABAP Befehl MOVE-CORRESPONDING). Die Daten sind nach diesem Schritt in beiden Tabellen vorhanden. Deshalb entsteht bei der Umsetzung ein erhöhter Platzbedarf.

Achtung

Sie sollten vor der Umsetzung größerer Tabellen deshalb prüfen, ob im betreffenden Tablespace genügend Platz vorhanden ist.

Informationen, wie vorhandene Einträge in einem Feld bei einer Typänderung des Feldes behandelt werden, können Sie der ABAP Dokumentation zum Befehl MOVE-CORRESPONDING entnehmen.

Beim Kopieren der Daten aus der Tabelle QCMTAB in die Tabelle QCM8TAB wird nach 16 MB ein Datenbank-Commit abgesetzt. Ein Umsetzprozess benötigt 16 MB Resourcen im Rollback-Segment.

Diese Grafik wird im zugehörigen Text erklärt

Bei Feldverkürzungen werden die überschüssigen Stellen beim Zurückladen abgeschnitten. Bei Schlüsselverkürzungen kann von mehreren Sätzen, die sich im Hinblick auf den neuen Schlüssel nicht mehr unterscheiden, nur einer zurückgeladen werden. Welcher Satz dies ist, ist nicht vorhersehbar. In einem solchen Fall müssen Sie den Datenbestand der Tabelle vor der Umsetzung bereinigen.

       5.      QCM-Tabelle löschen

Der in der Tabelle QCMTAB vorhandene Datenbestand wird nach dem Ende der Umsetzung nicht mehr benötigt. Die Tabelle wird gelöscht, falls alle Datensätze aus der Tabelle QCMTAB in die Tabelle QCM8TAB kopiert werden konnten. Sind Duplikate in der Tabelle QCM8TAB aufgetreten, z.B. weil der Schlüssel der Tabelle TAB verkürzt wurde, bleibt die Tabelle QCMTAB aus Sicherheitsgründen erhalten.

       6.      Tabelle umbenennen und Sekundärindizes anlegen

Die Tabelle QCM8TAB wird in TAB umbenannt. Die im ABAP Dictionary zur Tabelle definierten Sekundärindizes werden auf der Datenbank neu angelegt. Die im ersten Schritt der Umsetzung gelöschten Views auf die Tabelle werden auf der Datenbank ebenfalls wieder angelegt.

       7.      Sperre zurücknehmen

Die zu Beginn der Umsetzung gesetzte Sperre wird gelöscht.

Diese Grafik wird im zugehörigen Text erklärt

Hinweis

Während der Umsetzung ist die Tabelle unter ihrem Originalnamen nicht auf der Datenbank vorhanden. Der Datenbestand der Tabelle ist erst nach Beendigung von Schritt 4 wieder konsistent. Daher dürfen keine Programme auf die Tabelle zugreifen, solange die Umsetzung läuft. Ansonsten könnte ein Programm beim Lesezugriff auf die Tabelle falsche Schlüsse ziehen, da noch nicht alle Sätze aus der temporären Tabelle zurückkopiert wurden. Umsetzungen laufen daher nicht während des Produktivbetriebs. Zumindest müssen alle Anwendungen deaktiviert werden, die die umzusetzende Tabelle verwenden.

Bricht die Umsetzung ab, so bleibt die Tabelle gesperrt und es wird ein Aufsetzprotokoll geschrieben. Jeder erfolgreich durchgeführte Schritt der Umsetzung wird in diesem Aufsetzprotokoll vermerkt. Das Aufsetzprotokoll wird nach dem erfolgreichen Ablauf der Umsetzung zusammen mit der Sperre gelöscht. Falls die Umsetzung abbricht, können Sie im Aufsetzprotokoll die Abbruchstelle (letzter ausgeführter Schritt) finden. Weitere Informationen über eventuelle Probleme finden Sie unter Probleme bei Umsetzungen.

Achtung

Abgebrochene Umsetzungen müssen unbedingt bereinigt werden.

Programme, die auf die Tabelle zugreifen, laufen sonst möglicherweise nicht mehr korrekt. Sie müssen die Ursache für den Abbruch (z.B. Überlauf des entsprechenden Tablespace) ermitteln und bereinigen. Anschließend müssen Sie die abgebrochene Umsetzung fortsetzen. Weitere Informationen finden Sie unter Abgebrochene Umsetzungen  fortsetzen.

Hinweis

Der beschriebene Ablauf einer Umsetzung ist nur für transparente Tabellen gültig. Bei Pool- und Clustertabellen wird eine der Struktur der Pool-/Clustertabelle entsprechende Datenbanktabelle mit Namen QCM<Tabellenname> angelegt und die Daten werden in diese Tabelle kopiert. Dann werden die Daten aus dem physischen Tabellenpool/Tabellencluster gelöscht. Abschließend werden die Daten aus der QCM-Tabelle gemäß der neuen Tabellendefinition in den physischen Tabellenpool-/Tabellencluster zurückkopiert.

Siehe auch:

Probleme bei Umsetzungen

Auffinden abgebrochener Umsetzungen

 

 

 

 

 

Ende des Inhaltsbereichs