Eigentlich nichts. Wir hatten vor dem Switch alle GoldenGate Extracts mit "info all" auf Lag geprüft, es wurden keine Probleme angezeigt, also haben wir die Extracts und Replicats gestoppt und anschließend mit dgmgrl den Rollenwechsel der Datenbank durchgeführt.
Der Rollenwechsel ging problemlos, die Datenbanken waren wie erwartet synchron. Der Start der Extracts schlug jedoch mit der Meldung "Missing log for upstream capture..." fehl.
Das für den Extract fehlende Archivelog hatte eine Sequence-Nummer, die 9 Tage zurück lag. Wie kann das sein? Die Extracts waren doch synchron!
Ursachensuche
Eine weitere Analyse inklusive eines Service Requests bei Oracle brachte zunächst keine weiteren Hinweise. Erst nach einem längeren Telefongespräch mit einem Oracle-Mitarbeiter kamen wir dem Problem auf die Spur.
Wenn GoldenGate bei der Ausgabe von "info all" kein LAG oder GAP anzeigt, heißt das nicht, dass nicht noch alte Transaktionen für einen Extract offen sind! Diese alten Transaktionen sieht man aber erst mit "info extract <extract_name> showch"!
Bei einem Rollenwechsel oder Neustart der Datenbank, werden alte offene Transaktionen von der Datenbank automatisch bearbeitet. GoldenGate erfährt von dieser Bearbeitung jedoch nichts.
Die Empfehlung
Vor einem Rollenwechsel oder generell dem Neustart einer Datenbank empfiehlt es sich daher, GoldenGate auf alte Transaktionen zu prüfen und diese zu bereinigen. Erst dann ist gewährleistet, dass GoldenGate Extracts nach einem DB-Neustart wieder in den Tritt kommen. Ist das nicht möglich, muss die fehlende oder alte Transaktion ausgelesen und dann mit "send extract <extract_name> skiptrans <Transaktion>" übersprungen werden.
Ernst Leber
Principal
------


