Prepara connessione al database
Informazioni sulla configurazione delle impostazioni di connessione al database, sistema e parametri per Oracle GoldenGate for PostgreSQL.
Oracle GoldenGate for PostgreSQL si connette ai database PostgreSQL utilizzando un driver ODBC preimpostato. Le connessioni possono essere stabilite utilizzando un nome di origine dati (DSN, Data Source Name) o utilizzando una connessione diretta e fornendo l'host, la porta, il database del database server e altre informazioni.
L'utilizzo delle connessioni DSN richiede che i dettagli di connessione vengano elencati in un file odbc.ini, mentre l'utilizzo delle voci dirette viene immesso manualmente quando si aggiunge una connessione al database all'interfaccia Web del servizio di amministrazione o tramite il client di amministrazione.
Nota: PgBouncer non è supportato per le connessioni a Oracle GoldenGate.
Nota: Oracle GoldenGate non supporta le connessioni a PostgreSQL che utilizzano Pgpool.
Dopo aver eseguito i passi riportati di seguito per creare le voci DSN o si prevede di utilizzare connessioni dirette, passare all'argomento Aggiungi connessioni al database per sapere come creare le connessioni al database.
Configurare una connessione DSN in Linux
Per creare una connessione DSN per i processi Oracle GoldenGate, sarà innanzitutto necessario aggiungere una variabile di ambiente per la distribuzione Oracle GoldenGate per PostgreSQL, quindi creare un file odbc.ini per memorizzare gli attributi di connessione.
-
Eseguire il login all'interfaccia Web Service Manager.
-
Nel riquadro di navigazione a sinistra fare clic su Distribuzioni, quindi selezionare la distribuzione PostgreSQL di Oracle GoldenGate. Ciò espande le varie impostazioni per la distribuzione.
-
Fare clic su Configurazione, quindi sul segno più (+) accanto a Variabili di ambiente.
-
Fornire le seguenti informazioni nei due campi disponibili. Per il campo Valore variabile di ambiente, assicurarsi che sia il percorso assoluto del file
odbc.ini:Nome variabile di ambiente =
ODBCINIValore variabile di ambiente =
/ogg/deployment/pgsql/odbc.ini
-
Fare clic su Sottometti per creare la nuova variabile, quindi riavviare la distribuzione dal riquadro Distribuzioni per rendere effettive le modifiche.
-
Nella cartella
deploymentdell'installazione di Oracle GoldenGate, creare manualmente un fileodbc.inie aggiungere origini dati in questo file.
Utilizzare le seguenti impostazioni minime durante la creazione del file DSN:
-
Data Source Name: nome definito dall'utente di una connessione al database di origine o di destinazione a cui i processi Oracle GoldenGate fanno riferimento, ad esempio Extract o Replicat. I nomi DSN possono avere una lunghezza massima di 32 caratteri alfanumerici e possono includere solo caratteri di sottolineatura (_) e trattini (-) a partire da caratteri speciali. -
IANAAppCodePage=4: è l'impostazione predefinita, ma può essere modificata in base alle indicazioni specificate nella pagina https://docs.progress.com/bundle/datadirect-connect-odbc-71/page/IANAAppCodePage_9.html#IANAAppCodePage_9 quando il set di caratteri del database non è Unicode. -
InstallDir: nome del percorso del driver del protocollo wirePostgreSQL di Oracle GoldenGate e può utilizzare un percorso relativo, ad esempio:InstallDir =./datadirect -
Driver: è il nome del file del driver PostgreSQL Wire Protocol di Oracle GoldenGate e può utilizzare un percorso relativo, ad esempioDriver=./datadirect/lib/ggpsql25.so. -
Database: nome del database di origine o di destinazione. -
Hostname: è l'indirizzo IP o il nome host dell'host del database. -
PortNumber: è la porta di ascolto del database. -
Oracle GoldenGate per PostgreSQL supporta più host e porte per le connessioni PostgreSQL. Questa funzione è utile nell'impostazione HA (High Availability) di Oracle GoldenGate. In un'impostazione HA PostgreSQL è presente un server di standby primario e più server di standby. È possibile impostare il formato della stringa di connessione per specificare più host:
Stringa di connessione Descrizione db-user@host1,host2,host3/db-nameLe connessioni verranno tentate utilizzando la porta di database PostgreSQL predefinita 5432 per tutti gli host ( host1,host2,host3).db-user@host1:1234,host2:2345,host3:3456/db-nameLe connessioni vengono tentate utilizzando le porte associate a ciascun host specificato nella stringa di connessione. db-user@host1,host2,host3:1234/db-nameTutti gli host che utilizzano lo stesso numero di porta (1234) su tutti gli host ( host1,host2,host3). Le connessioni verranno tentate utilizzando la porta 1234 per tutti gli host (host1,host2,host3).db-user@host1,host2,host3:1234/db-nameTutti gli host che utilizzano lo stesso numero di porta (1234) su tutti gli host ( host1,host2,host3). Le connessioni sarebbero tentate utilizzando la porta 1234 per tutti gli host.db-user@host1:3456,host2,host3:1234/db-nameSe la stringa di connessione viene specificata in altri formati in cui il numero di porta viene specificato per alcuni host mentre gli altri host vengono specificati senza porte, la specifica dell'ultima porta o dell'ultima porta a destra verrà utilizzata come numero di porta per tutti gli host che non dispongono di un numero di porta specificato nella stringa di connessione. Come mostrato nella stringa di connessione:
db-user@host1:3456,host2,host3:1234/db-nameIl numero di porta per
host2sarebbe 1234, ovvero il numero di porta più a destra specificato nella stringa di connessione. -
È anche possibile fornire
LogonIDePasswordper l'utente Extract o Replicat, ma questi verranno memorizzati in chiaro. Si consiglia di lasciare questi campi fuori dal DSN e di memorizzarli invece nel wallet Oracle GoldenGate come alias di credenziale e di fare riferimento a tali campi con il parametroUSERIDALIASin Extract e Replicat.
Di seguito è riportato un esempio di file odbc.ini con due voci DSN. I nomi delle origini dati utilizzati nell'esempio seguente sono PG_src e PG_tgt.
|
|
| — |
|
-
Salvare e chiudere il file
odbc.ini. -
Per impostare la connessione al database da Oracle GoldenGate per una distribuzione PostgreSQL, vedere Aggiungi connessioni al database.
Connessione a un sistema PostgreSQL abilitato per FIPS con versione 14 o inferiore
Quando Oracle GoldenGate Extract viene eseguito da un sistema abilitato per FIPS (Federal Information Processing Standards) installato con un database PostgreSQL precedente alla versione 14, viene generato il seguente errore:
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.
L'algoritmo di cifratura md5 è l'algoritmo di cifratura predefinito nella versione del database PostgreSQL precedente a 14 e causa l'interruzione di Extract con un errore.
Per eseguire Extract su un sistema abilitato per FIPS che esegue una versione del database PostgreSQL precedente a 14, effettuare le operazioni riportate di seguito.
-
Modificare il file
postgresql.confper impostare l'opzionepassword_encryptionsuscram-sha-256. -
Modificare il file
pg_hba.confper impostare l'opzioneMethodsuscram-sha-256, in quantomd5non è supportato in un sistema abilitato per FIPS. Si tratta tuttavia di un'operazione facoltativa.La password per l'utente del database utilizzato da Oracle GoldenGate Extract deve essere rigenerata o modificata se l'utente del database è già stato creato, dopo che l'opzione
password_encryptionè stata impostata suscram-sha-256. È possibile utilizzare la stessa password per essere rigenerata.Ad esempio, se l'utente del database denominato
adminutilizza la password comepassword123, è possibile rigenerare la stessa password utilizzando la cifraturascram-sha-256.
Configurazione del supporto SSL per PostgreSQL
SSL può essere abilitato impostando il parametro di configurazione SSL su on nel file di configurazione PostgreSQL ($PGDATA/postgresql.conf ). Se SSL è abilitato, la voce hostssl corrispondente deve essere presente o aggiunta nel file pg_hba.conf.
Quando SSL è abilitato, Oracle GoldenGate utilizza il certificato radice, l'elenco di revoca della certificazione radice (CRL), il certificato client del server e la chiave dalle posizioni predefinite, come mostrato nello snippet riportato di seguito.
~/.postgresql/root.crt
~/.postgresql/root.crl
~/.postgresql/postgresql.crt
~/.postgresql/postgresql.key
È necessario creare le entità desiderate da questo elenco e memorizzarle nelle posizioni appropriate.
Se la configurazione SSL viene impostata utilizzando posizioni non predefinite, è necessario impostare le variabili di ambiente riportate di seguito in base all'ambiente.
PGSSLROOTCERT
PGSSLCRL
PGSSLCERT
PGSSLKEY
Modifiche richieste nel file odbc.ini
Il supporto SSL può essere abilitato impostando l'attributo EncryptionMethod DSN su 1 o 6 nel file $ODBCINI.
Se impostato su 0 (Nessuna cifratura), i dati non vengono cifrati.
Se l'impostazione è 1 (SSL), i dati vengono cifrati utilizzando i protocolli SSL specificati nell'opzione di connessione Crypto Protocol Version. Se il metodo di cifratura specificato non è supportato dal database server, la connessione non riesce e il driver restituisce un errore.
Se impostato su 6 (RequestSSL), la richiesta di login e i dati vengono cifrati utilizzando SSL se il server è configurato per SSL. Se il server non è configurato per SSL, viene stabilita una connessione non cifrata. Il protocollo SSL utilizzato è determinato dall'impostazione dell'opzione di connessione Crypto Protocol Version.
Se è necessario convalidare anche i certificati database server/client, è necessario creare il file KeyStore corrispondente e gli attributi DSN ODBC seguenti devono essere impostati di conseguenza nel file odbc.ini.
KeyStore=path to .p12 keystore file KeyStorePassword=keystore-passwd TrustStore=path to root certificate ValidateServerCertificate=1
Tuttavia, il file KeyStore non è obbligatorio per la convalida dei certificati client (da parte del server) quando sono già forniti SSLCert e SSLKey. Nota: per impostazione predefinita il database Azure per PostgreSQL applica le connessioni SSL. Per soddisfare questo requisito, eseguire i requisiti elencati qui o, facoltativamente, è possibile disabilitare l'applicazione delle connessioni SSL dalle impostazioni di sicurezza della connessione dell'istanza di database utilizzando il portale Microsoft Azure.