SQL-Replikation - Änderungen der Schema-Versionen
Übersicht der Struktur-Änderungen je Schema-Version der SQL-Replikation und was Sie bei einem Versionswechsel beachten müssen.
Die SQL-Replikation legt die Struktur der Zieltabellen abhängig von der eingestellten Schema-Version an (Automatisierungsaufgabe - Aktion "SQL-Replikation" - Feld "Schema Version"). Bestehende Replikationen behalten ihre Version, bis Sie sie über die Schaltfläche zum Migrieren ausdrücklich auf die neueste Version anheben.
Beachten Sie
Beim Wechsel der Schema-Version werden die betroffenen Tabellen auf der Zieldatenbank vollständig neu aufgebaut und komplett neu repliziert - nicht nur die Änderungen seit dem letzten Lauf. Je nach Datenmenge kann der erste Lauf nach der Migration entsprechend lange dauern. Der Wechsel kann nicht rückgängig gemacht werden.
Prüfen Sie vorab eigene Abfragen, Views, Auswertungen und Schnittstellen, die auf der Zieldatenbank aufsetzen, auf die neue Struktur.
Die Versionen bauen aufeinander auf: Version 1.3 enthält alle Änderungen aus 1.1 und 1.2.
Version 1.1 (gegenüber 1.0)
Selektionsfelder in einer eigenen Tabelle
Bei Datengruppen, die Selektionsfelder besitzen, werden diese Felder (einschließlich der zugehörigen Selektions-Blobkennzeichen) nicht mehr in der Haupttabelle abgelegt, sondern in einer eigenen Tabelle mit dem Namenszusatz _Sel:
<Tabelle>- Haupttabelle (ohne Selektionsfelder)<Tabelle>_Sel- Selektionsfelder
Die Tabelle <Tabelle>_Sel enthält dieselben Schlüsselfelder wie die Haupttabelle (insbesondere die RefNr), sodass beide Tabellen über den Schlüssel verknüpft werden können.
Hintergrund
PostgreSQL begrenzt die Größe einer einzelnen Tabellenzeile. Bei Datengruppen mit sehr vielen bzw. sehr breiten Feldern konnte diese Grenze überschritten werden, wodurch die Replikation fehlschlug. Durch die Auslagerung der Selektionsfelder wird die Haupttabelle entsprechend schmaler.
Was Sie anpassen müssen: Alle eigenen Abfragen und Auswertungen, die Selektionsfelder verwenden, müssen zusätzlich die Tabelle <Tabelle>_Sel einbinden und über das Schlüsselfeld mit der Haupttabelle verknüpfen.
Version 1.2 (gegenüber 1.1)
Textspalten ohne Längenbegrenzung
Felder vom Typ Zeichenfolge werden auf der Zieldatenbank nicht mehr als VARCHAR mit der in microtech ERP definierten Feldlänge angelegt, sondern als TEXT - also ohne Längenbegrenzung.
Das bewirkt zweierlei:
- Feldinhalte, die länger sind als die in microtech ERP hinterlegte Feldlänge, führen nicht mehr zum Abbruch der Replikation.
- Ändert sich in microtech ERP lediglich die Länge eines Zeichenfolgen-Feldes, ändert sich die Struktur der Zieltabelle dadurch nicht mehr. Ein vollständiger Neuaufbau der betroffenen Tabellen allein wegen einer geänderten Feldlänge entfällt damit.
Was Sie anpassen müssen: Werkzeuge und Skripte, die sich auf den Zielspaltentyp character varying bzw. auf die dort hinterlegte Maximallänge verlassen - etwa Typprüfungen, Feldlängen-Vorgaben in ETL-Strecken oder Spaltenbreiten in Auswertungen -, müssen auf TEXT umgestellt werden.
Version 1.3 (gegenüber 1.2)
Verlässliches Aufräumen von Überlauf- und Selektionstabellen
Umfasst eine Tabelle mehr Spalten, als die Zieldatenbank je Tabelle zulässt, verteilt die Replikation die Felder auf zusätzliche Überlauftabellen mit dem Namenszusatz _1, _2 und _3.
- Überlauftabellen: Diese Tabellen werden beim Neuaufbau jetzt für alle Tabellenarten entfernt. Bisher geschah das nur für die Haupttabellen einer Datengruppe - die eigenständigen Tabellen für Blob- und Untertabellen wurden dabei ausgelassen. Dadurch konnten dort Überlauftabellen aus einem früheren Lauf im Zielschema zurückbleiben und veraltete Daten enthalten.
- Selektionstabellen: Ob zu einer Blob- bzw. Untertabelle eine
_Sel-Tabelle aufzuräumen ist, wird jetzt anhand dieser Tabelle selbst entschieden und nicht mehr anhand der übergeordneten Haupttabelle. Damit bleiben keine veralteten_Sel-Tabellen mehr stehen.
Beachten Sie
Legen Sie im Replikations-Schema keine eigenen Tabellen an, deren Name einer replizierten Tabelle mit dem Zusatz _1, _2, _3 oder _Sel entspricht - solche Tabellen werden beim Neuaufbau entfernt.
Mehrfach verwendete Felder in Indizes
Enthält ein Index in microtech ERP dasselbe Feld mehrfach, wird die betreffende Spalte im Index auf der Zieldatenbank nur noch einmal angelegt. Bisher wurde sie entsprechend oft wiederholt.
Weiterführende Informationen
- SQL-Replikation - Grundlagen und Einrichtung der SQL-Replikation