Tabellenattribute zwischen Quelle und Ziel koordinieren
Führen Sie diese Schritte aus, um ein Attribut einer Quelltabelle zu ändern, wenn das Oracle GoldenGate-DDL-Feature für Ihre Datenbank nicht unterstützt wird. Die Attributänderungen umfassen das Hinzufügen oder Ändern von Spalten oder Partitionen. Sie werden angewiesen, wie Sie dieselbe Änderung an der Zieltabelle vornehmen, ohne dass eine Replikationslatenz auftritt.
Hinweis: Bei Oracle- und MySQL-Datenbanken können Sie das DDL-Supportfeature von Oracle GoldenGate aktivieren, um die DDL-Änderungen an das Ziel zu propagieren, anstatt diese Prozedur zu verwenden.
- Erstellen Sie auf dem Quell- und Zielsystem eine Tabelle, die als Markertabelle bezeichnet wird und zum Generieren eines Markers verwendet werden kann, der einen Haltepunkt im Transaktionslog angibt. Erstellen Sie einfach zwei einfache Spalten: eine als Primärschlüssel und die andere als reguläre Spalte. Beispiel:
CREATE TABLE marker
(
id int NOT NULL,
column varchar(25) NOT NULL,
PRIMARY KEY (id)
);
- Fügen Sie eine Zeile sowohl auf dem Quell- als auch auf dem Zielsystem in die Markertabelle ein.
INSERT INTO marker VALUES (1, 1);
COMMIT;
-
Führen Sie auf dem Quellsystem den Admin Client aus.
-
Öffnen Sie die Extract-Parameterdatei zur Bearbeitung.
Achtung: Verwenden Sie den Befehl
VIEW PARAMSoderEDIT PARAMSnicht zum Anzeigen oder Bearbeiten einer vorhandenen Parameterdatei mit einem anderen Zeichensatz als dem des lokalen Betriebssystems (z.B. wenn ein anderes Zeichensatz als die OptionCHARSETangegeben wurde). Zeigen Sie die Parameterdatei von außerhalb der Befehlszeilenschnittstelle an, wenn dies der Fall ist. Andernfalls kann der Inhalt beschädigt werden. -
Fügen Sie die Markertabelle in einer
TABLE-Anweisung zur Extract-Parameterdatei hinzu.
TABLE marker;
-
Speichern und schließen Sie die Parameterdatei.
-
Fügen Sie die Markertabelle der
TABLE-Anweisung der Data Pump hinzu, falls eine verwendet wird. -
Stoppen Sie die Extract- und Data Pump-Prozesse, und starten Sie sie dann sofort neu, um Capture Lag zu verhindern.
STOP EXTRACT *group*
START EXTRACT *group*
-
Führen Sie auf dem Zielsystem den Admin-Client aus.
-
Öffnen Sie die Replicat-Parameterdatei zur Bearbeitung.
Achtung: Verwenden Sie den Befehl
VIEW PARAMSoderEDIT PARAMSnicht zum Anzeigen oder Bearbeiten einer vorhandenen Parameterdatei mit einem anderen Zeichensatz als dem des lokalen Betriebssystems (z.B. wenn ein anderes Zeichensatz als die OptionCHARSETangegeben wurde). Zeigen Sie die Parameterdatei von einem externen Admin Client an, wenn dies der Fall ist. Andernfalls kann der Inhalt beschädigt werden. -
Fügen Sie die Markertabelle in einer
MAP-Anweisung zur Replicat-Parameterdatei hinzu, und verwenden Sie den ParameterEVENTACTIONS(siehe Abbildung), um Replicat zu stoppen und Vorgänge in der Markertabelle zu ignorieren.
MAP marker, TARGET marker, EVENTACTIONS (STOP, IGNORE);
-
Speichern und schließen Sie die Parameterdatei.
-
Stoppen Sie den Replicat-Prozess, und starten Sie ihn sofort neu.
STOP REPLICAT *group*
START REPLICAT *group*
-
Wenn Sie bereit sind, die Tabellenattribute für Quell- und Zieltabellen zu ändern, stoppen Sie alle Benutzeraktivitäten für diese Tabellen.
-
Führen Sie im Quellsystem einen
UPDATE-Vorgang für die Markertabelle als einzigen Vorgang in der Transaktion aus.
UPDATE marker
SET column=2,
WHERE id=1;
COMMIT;
- Geben Sie auf dem Zielsystem den folgenden Befehl aus, bis angezeigt wird, dass Replicat als Ergebnis der Regel
EVENTACTIONSgestoppt wurde.
STATUS REPLICAT *group*
-
Führen Sie die DDL für die Quell- und Zieltabellen aus, lassen Sie jedoch noch keine Benutzeraktivität zu.
-
Replicat starten.
START REPLICAT *group*
- Benutzeraktivität in Quell- und Zieltabellen zulassen.