Datenbankverbindung vorbereiten
Hier erfahren Sie, wie Sie Datenbankverbindungs-, System- und Parametereinstellungen für Oracle GoldenGate für PostgreSQL konfigurieren.
Oracle GoldenGate for PostgreSQL stellt über einen vordefinierten ODBC-Treiber eine Verbindung zu PostgreSQL-Datenbanken her. Verbindungen können mit einem Data Source Name (DSN) oder über eine direkte Verbindung hergestellt und Host, Port, Datenbank und andere Informationen des Datenbankservers bereitgestellt werden.
Für die Verwendung von DSN-Verbindungen müssen Verbindungsdetails in einer odbc.ini-Datei aufgeführt werden, während Direkteinträge manuell eingegeben werden, wenn eine Datenbankverbindung zur Webschnittstelle des Administrationsservice oder über den Admin-Client hinzugefügt wird.
Hinweis: PgBouncer wird für Oracle GoldenGate-Verbindungen nicht unterstützt.
Hinweis: Oracle GoldenGate unterstützt keine Verbindungen zu PostgreSQL, die Pgpool verwenden.
Nachdem Sie die folgenden Schritte ausgeführt haben, um die DSN-Einträge zu erstellen, oder wenn Sie direkte Verbindungen verwenden möchten, fahren Sie mit dem Thema Datenbankverbindungen hinzufügen fort, um zu erfahren, wie Sie Datenbankverbindungen erstellen.
DSN-Verbindung in Linux konfigurieren
Um eine DSN-Verbindung für Oracle GoldenGate-Prozesse zu erstellen, müssen Sie zunächst eine Umgebungsvariable für das Oracle GoldenGate for PostgreSQL-Deployment hinzufügen und dann eine odbc.ini-Datei erstellen, um die Verbindungsattribute zu speichern.
-
Melden Sie sich bei der Service Manager-Webbenutzeroberfläche an.
-
Klicken Sie im linken Navigationsbereich auf Deployments, und wählen Sie das Oracle GoldenGate-Deployment PostgreSQL aus. Dadurch werden die verschiedenen Einstellungen für das Deployment erweitert.
-
Klicken Sie auf Konfiguration und dann auf das Pluszeichen (+) neben Umgebungsvariablen.
-
Geben Sie die folgenden Informationen in den beiden verfügbaren Feldern an. Stellen Sie für das Feld Umgebungsvariablenwert sicher, dass es sich um den absoluten Pfad der Datei
odbc.inihandelt:Name der Umgebungsvariablen =
ODBCINIUmgebungsvariablenwert =
/ogg/deployment/pgsql/odbc.ini
-
Klicken Sie auf Weiterleiten, um die neue Variable zu erstellen und das Deployment dann im Bereich Deployments neu zu starten, damit die Änderungen wirksam werden.
-
Erstellen Sie im Ordner
deploymentder Oracle GoldenGate-Installation manuell eineodbc.ini-Datei, und fügen Sie Datenquellen in dieser Datei hinzu.
Verwenden Sie die folgenden Mindesteinstellungen beim Erstellen der DSN-Datei:
-
Data Source Name: Ein benutzerdefinierter Name einer Quell- oder Zieldatenbankverbindung, die von Oracle GoldenGate-Prozessen wie Extract oder Replicat referenziert wird. DSN-Namen dürfen bis zu 32 alphanumerische Zeichen lang sein und dürfen nur Unterstriche (_) und Bindestriche (-) aus Sonderzeichen enthalten. -
IANAAppCodePage=4: Ist die Standardeinstellung, kann jedoch gemäß den Anweisungen auf der Seite https://docs.progress.com/bundle/datadirect-connect-odbc-71/page/IANAAppCodePage_9.html#IANAAppCodePage_9 geändert werden, wenn der Datenbankzeichensatz nicht Unicode ist. -
InstallDir– Ist der Name des Oracle GoldenGate PostgreSQL Wire-Protokolltreiberpfads und kann einen relativen Pfad verwenden, wie:InstallDir =./datadirect -
Driver: Ist der Name der Oracle GoldenGate-Treiberdatei PostgreSQL Wire Protocol und kann einen relativen Pfad verwenden, wie:Driver=./datadirect/lib/ggpsql25.so. -
Database: Dies ist der Name der Quell- oder Zieldatenbank. -
Hostname: Dies ist die IP-Adresse oder der Hostname des Datenbankhosts. -
PortNumber: Dies ist der Listening-Port der Datenbank. -
Oracle GoldenGate für PostgreSQL unterstützt mehrere Hosts und Ports für PostgreSQL-Verbindungen. Diese Funktion ist im Oracle GoldenGate High Availability-(HA-)Setup nützlich. In einem PostgreSQL-HA-Setup gibt es einen primären und mehrere Standby-Server. Sie können das Format der Verbindungszeichenfolge so einrichten, dass mehrere Hosts angegeben werden:
Verbindungszeichenfolge Beschreibung db-user@host1,host2,host3/db-nameDie Verbindungen werden mit dem standardmäßigen Datenbankport 5432 PostgreSQL für alle Hosts ( host1,host2,host3) versucht.db-user@host1:1234,host2:2345,host3:3456/db-nameDie Verbindungen werden über die Ports versucht, die mit jedem Host verknüpft sind, der in der Verbindungszeichenfolge angegeben ist. db-user@host1,host2,host3:1234/db-nameAlle Hosts, die dieselbe Portnummer (1234) auf allen Hosts verwenden ( host1,host2,host3). Die Verbindungen werden mit Port 1234 für alle Hosts (host1,host2,host3) versucht.db-user@host1,host2,host3:1234/db-nameAlle Hosts, die dieselbe Portnummer (1234) auf allen Hosts verwenden ( host1,host2,host3). Es wird versucht, die Verbindungen über Port 1234 für alle Hosts herzustellen.db-user@host1:3456,host2,host3:1234/db-nameWenn die Verbindungszeichenfolge in anderen Formaten angegeben wird, in denen die Portnummer für einige Hosts angegeben wird, während die anderen Hosts ohne Ports angegeben werden, wird die letzte oder die höchste Portspezifikation als Portnummer für alle Hosts verwendet, für die keine Portnummer in der Verbindungszeichenfolge angegeben ist. Wie in der Verbindungszeichenfolge dargestellt:
db-user@host1:3456,host2,host3:1234/db-nameDie Portnummer für
host2ist 1234. Dies ist die in der Verbindungszeichenfolge angegebene Portnummer ganz rechts. -
Sie können auch
LogonIDundPasswordfür den Extract- oder Replicat-Benutzer angeben. Diese werden jedoch in Klartext gespeichert. Es wird empfohlen, diese Felder aus dem DSN zu lassen und stattdessen im Oracle GoldenGate-Wallet als Zugangsdatenalias zu speichern und sie mit dem ParameterUSERIDALIASin Extract und Replicat zu referenzieren.
Im Folgenden finden Sie eine odbc.ini-Beispieldatei mit zwei DSN-Einträgen. Die im folgenden Beispiel verwendeten Datenquellennamen sind PG_src und PG_tgt.
|
|
| — |
|
-
Speichern Sie die Datei
odbc.ini, und schließen Sie sie. -
Informationen zum Einrichten der Datenbankverbindung von Oracle GoldenGate für ein PostgreSQL-Deployment finden Sie unter Datenbankverbindungen hinzufügen.
Verbindung zu einem FIPS-fähigen PostgreSQL-System mit Version 14 oder niedriger herstellen
Wenn Oracle GoldenGate Extract von einem FIPS-(Federal Information Processing Standards-)fähigen System ausgeführt wird, das mit einer PostgreSQL-Datenbank unter Version 14 installiert ist, generiert es den folgenden Fehler:
ERROR OGG-25359 Could not connect to server with database 'postgres', host 'localhost', port '5432' and user name 'postgres'. Error Message: connection to server at "localhost" (::1), port 5432 failed: could not encrypt password: disabled for FIPSfe_sendauth: error sending password authentication.
Der Verschlüsselungsalgorithmus md5 ist der Standardverschlüsselungsalgorithmus in der Datenbankversion PostgreSQL, der kleiner als 14 ist, und bewirkt, dass der Extract mit einem Fehler beendet wird.
Um Extract auf einem FIPS-fähigen System auszuführen, auf dem die Datenbankversion PostgreSQL niedriger als 14 ausgeführt wird, führen Sie die folgenden Schritte aus:
-
Ändern Sie die Datei
postgresql.conf, um die Optionpassword_encryptionaufscram-sha-256zu setzen. -
Ändern Sie die Datei
pg_hba.conf, um die OptionMethodaufscram-sha-256zu setzen, damd5auf einem FIPS-fähigen System nicht unterstützt wird. Dies ist jedoch ein optionaler Schritt.Das Kennwort für den Datenbankbenutzer, der von Oracle GoldenGate Extract verwendet wird, muss neu generiert oder geändert werden, wenn der Datenbankbenutzer bereits erstellt wurde, nachdem die Option
password_encryptionaufscram-sha-256gesetzt wurde. Sie können dasselbe Kennwort zur erneuten Generierung verwenden.Beispiel: Wenn der Datenbankbenutzer
admindas Kennwort alspassword123verwendet, kann dasselbe Kennwort mit derscram-sha-256-Verschlüsselung neu generiert werden.
SSL-Unterstützung für PostgreSQL konfigurieren
SSL kann aktiviert werden, indem der Konfigurationsparameter SSL in der Konfigurationsdatei PostgreSQL ($PGDATA/postgresql.conf ) aktiviert wird. Wenn SSL aktiviert ist, muss der entsprechende hostssl-Eintrag vorhanden sein oder in der Datei pg_hba.conf hinzugefügt werden.
Wenn SSL aktiviert ist, verwendet Oracle GoldenGate das Root-Zertifikat, die Root-Zertifizierungssperrliste (CRL), das Serverclientzertifikat und den Schlüssel aus den Standardverzeichnissen, wie im folgenden Snippet dargestellt:
~/.postgresql/root.crt
~/.postgresql/root.crl
~/.postgresql/postgresql.crt
~/.postgresql/postgresql.key
Sie müssen die gewünschten Entitys aus dieser Liste erstellen und an den entsprechenden Speicherorten speichern.
Wenn die SSL-Konfiguration mit nicht standardmäßigen Speicherorten eingerichtet wird, müssen die folgenden Umgebungsvariablen entsprechend der Umgebung eingerichtet werden.
PGSSLROOTCERT
PGSSLCRL
PGSSLCERT
PGSSLKEY
Änderungen in Datei odbc.ini erforderlich
Die SSL-Unterstützung kann aktiviert werden, indem das Attribut EncryptionMethod DSN in der Datei $ODBCINI auf 1 oder 6 gesetzt wird.
Bei 0 (Keine Verschlüsselung) werden die Daten nicht verschlüsselt.
Wenn dieser Wert auf 1 (SSL) gesetzt ist, werden Daten mit den SSL-Protokollen verschlüsselt, die in der Verbindungsoption "Crypto Protocol Version" angegeben sind. Wenn die angegebene Verschlüsselungsmethode vom Datenbankserver nicht unterstützt wird, verläuft die Verbindung nicht erfolgreich, und der Treiber gibt einen Fehler zurück.
Wenn dieser Wert auf 6 (RequestSSL) gesetzt ist, werden die Anmeldeanforderung und die Daten mit SSL verschlüsselt, wenn der Server für SSL konfiguriert ist. Wenn der Server nicht für SSL konfiguriert ist, wird eine unverschlüsselte Verbindung hergestellt. Das verwendete SSL-Protokoll wird durch die Einstellung der Verbindungsoption "Crypto Protocol Version" bestimmt.
Wenn die Datenbankserver-/Clientzertifikate ebenfalls validiert werden müssen, muss die entsprechende Datei KeyStore erstellt werden, und die folgenden ODBC-DSN-Attribute müssen entsprechend in der Datei odbc.ini eingerichtet werden.
KeyStore=path to .p12 keystore file KeyStorePassword=keystore-passwd TrustStore=path to root certificate ValidateServerCertificate=1
Die Datei KeyStore ist jedoch nicht für die Validierung von Clientzertifikaten (durch den Server) erforderlich, wenn SSLCert und SSLKey bereits angegeben sind. Hinweis: Azure Database for PostgreSQL setzt standardmäßig SSL-Verbindungen durch. Um diese Anforderung zu erfüllen, führen Sie die hier aufgeführten Anforderungen aus. Alternativ können Sie das Erzwingen von SSL-Verbindungen über die Verbindungssicherheitseinstellungen der Datenbankinstanz mit dem Microsoft Azure Portal deaktivieren.