Datenbankkonfiguration
Datenbanksoftware für Capture
Um Daten aus einer PostgreSQL-Datenbank zu erfassen, muss in Oracle GoldenGate das Datenbank-Plug-in test_decoding für die Datenbank installiert sein. Dieses Plug-in wurde möglicherweise nicht standardmäßig installiert, als die Datenbank installiert wurde.
Stellen Sie sicher, dass das Package postgresqlversion#-contrib auf dem Datenbankserver installiert ist, wie im Beispiel dargestellt:
sudo yum install postgresql14-contrib
Parameter in der Datenbankkonfigurationsdatei PostgreSQL
Konfigurieren Sie für Oracle GoldenGate die folgenden Parameter in der Datenbankkonfigurationsdatei PostgreSQL, $PGDATA/postgresql.conf:
Hinweis: Diese Änderungen sind für die primäre PostgreSQL-Datenbank erforderlich, aus der Oracle GoldenGate erfasst, sowie für alle Standbydatenbanken, die Oracle GoldenGate erfassen kann, wenn die Primärdatenbank nicht erfolgreich ist.
-
Legen Sie für die Remotekonnektivität eines Extract- oder Replicats den Wert PostgreSQL
listen_addressesfest, um die Remote-Datenbankkonnektivität zu ermöglichen. Beispiel:listen_addresses=remotehost_ip_addressHinweis: Stellen Sie sicher, dass die Clientauthentifizierung so festgelegt ist, dass Verbindungen von einem Oracle GoldenGate-Host zulässig sind, indem Sie die Datei
pg_hba.confkonfigurieren. Weitere Informationen finden Sie in folgendem Dokument: The pg_hba.conf File -
Um Oracle GoldenGate Extract zu unterstützen, muss das Write-Ahead-Logging auf
logicalgesetzt werden. Dadurch werden Informationen hinzugefügt, die zur Unterstützung der Dekodierung von Transaktionsdatensätzen erforderlich sind.Die Anzahl der maximalen Replikations-Slots muss für einen offenen Slot pro Extract festgelegt werden. Im Allgemeinen ist nur ein Extract pro Datenbank erforderlich. Wenn z.B. die native PostgreSQL-Replikation bereits verwendet wird und alle aktuell konfigurierten Replikationsslots verwendet, erhöhen Sie den Wert, um die Registrierung eines Extract zuzulassen.
Die maximalen Write-Ahead-Absender müssen so eingestellt werden, dass sie dem maximalen Wert für Replikations-Slots entsprechen.
Optional können Commit-Zeitstempel im Write-Ahead-Log aktiviert werden. Wenn diese Option gleichzeitig aktiviert ist, wird der erste DML-Commit-Datensatz ab diesem Zeitpunkt mit dem richtigen Zeitstempelwert verfolgt. Andernfalls weist der erste Datensatz, der von Oracle GoldenGate Capture erkannt wird, einen falschen Commit-Zeitstempel auf.
wal_level = logical # set to logical for Capture max_replication_slots = 1 # max number of replication slots, # one slot per Extract/client max_wal_senders = 1 # one sender per max repl slot track_commit_timestamp = on # optional, correlates tx commit time # with begin tx log record (useful for # timestamp-based positioning) -
Nachdem Sie eine der oben genannten Änderungen vorgenommen haben, starten Sie die Datenbank neu.
Verwenden Sie diese Anweisungen, um die Datenbankeinstellungen für Azure for PostgreSQL, Amazon Aurora PostgreSQL, Amazon RDS for PostgreSQL, Google AlloyDB for PostgreSQL und Google Cloud SQL for PostgreSQL zu verwalten.
Azure Database for PostgreSQL
Wenn Sie Oracle GoldenGate für PostgreSQL Extract für eine Azure-Datenbank für PostgreSQL konfigurieren, muss die logische Decodierung aktiviert und auf LOGICAL gesetzt werden.
Anweisungen finden Sie in der Microsoft-Dokumentation:
https://learn.microsoft.com/en-us/azure/postgresql/
Andere Datenbankeinstellungen für Azure Database for PostgreSQL können über den Abschnitt "Serverparameter" der Datenbankinstanz verwaltet werden.
Für Verbindungen zu einer Azure Database for PostgreSQL-Instanz erfordern die standardmäßigen Azure Connection Security-Einstellungen SSL-Verbindungen. Um diese Anforderung zu erfüllen, sind weitere Schritte erforderlich, um SSL-Verbindungen mit Oracle GoldenGate zu unterstützen.
Weitere Informationen finden Sie unter SSL-Unterstützung für PostgreSQL konfigurieren.
Amazon Aurora PostgreSQL und Amazon RDS für PostgreSQL
Für Amazon Aurora PostgreSQL und Amazon RDS for PostgreSQL werden Datenbankeinstellungen innerhalb von Parametergruppen geändert.
In der Dokumentation zu Amazon AWS finden Sie Informationen darüber, wie Sie Datenbankeinstellungen in einer neuen Parametergruppe bearbeiten und einer Datenbankinstanz zuweisen können:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
-
Stellen Sie sicher, dass die zuvor aufgeführten Datenbankkonfigurationseinstellungen korrekt sind, indem Sie sie in der der Instanz zugewiesenen Parametergruppe prüfen.
-
Die Einstellung
wal_levelfür Amazon-Datenbankservices wird mit dem Parameterrds.logical_replicationkonfiguriert, dessen Standardwert0ist. Sie muss auf1gesetzt werden, wenn die Datenbank eine Quelldatenbank für Oracle GoldenGate Extract verwenden soll. -
Amazon RDS unterstützt das Vorbereiten oder Starten des Replikationsschlitznamens mit der Zeichenfolge
rdsnicht. Der Befehl, mit dem Oracle GoldenGate Extract den Replikations-Slot erstellt, gibt einen Fehler zurück, wenn der Replikations-Slot-Name mit der Zeichenfolgerdsbeginnt. Beispiel: Um diesen Fehler zu vermeiden, können Sie den Replikationsslot alsordscdcanstelle vonrdscdcbenennen, wie im folgenden Beispiel dargestellt:select slot_name from pg_create_logical_replication_slot('ordscdc', 'test_decoding');Mit diesem Befehl wird der Replikations-Slot
ordscdchinzugefügt. Wenn Sie den Replikations-Slot-Namen jedoch alsrdscdcverwenden, tritt der folgende Fehler auf:ERROR: must be superuser or replication role to use logical replication slots in the 'rds' namespace
Beschränkung:
Wenn auf Amazon Aurora PostgreSQL Version 12.17 der Befehl SHOW in Großbuchstaben ausgeführt wird, wird der folgende Fehler gemeldet:
"ERROR: must be superuser or replication role to run this operation."
Um diesen Fehler zu vermeiden, müssen Sie den SHOW-Befehl in Kleinbuchstaben verwenden.
Google AlloyDB for PostgreSQL
Ab Oracle GoldenGate Release 21.14 unterstützt Oracle GoldenGate Google AlloyDB für PostgreSQL. Wenn Sie Oracle GoldenGate für PostgreSQL Extract für eine Google AlloyDB für PostgreSQL konfigurieren, muss der Parameter alloydb.logical_decoding configuration (Flag) auf ON gesetzt werden.
Google Cloud SQL for PostgreSQL
Wenn Sie Oracle GoldenGate für PostgreSQL Extract für eine Google Cloud SQL for PostgreSQL-Datenbank konfigurieren, muss die logische Decodierung festgelegt werden. Setzen Sie dazu die Variable cloudsql.logical_decoding auf ON. Befolgen Sie die Anweisungen von Google, wie Sie dieses Datenbank-Flag aktivieren. Weitere Informationen finden Sie unter https://cloud.google.com/sql/docs/postgres/flags#postgres-l.