Préparer la connexion à la base de données
Découvrez comment configurer les paramètres de connexion de base de données, de système et de paramètre pour Oracle GoldenGate for PostgreSQL.
Oracle GoldenGate pour PostgreSQL se connecte aux bases de données PostgreSQL à l'aide d'un pilote ODBC prêtes à l'emploi. Les connexions peuvent être établies à l'aide d'un nom de source de données (DSN) ou à l'aide d'une connexion directe et en fournissant l'hôte, le port, la base de données et d'autres informations du serveur de base de données.
L'utilisation de connexions DSN nécessite que les détails de connexion soient répertoriés dans un fichier odbc.ini, tandis que les entrées directes sont saisies manuellement lors de l'ajout d'une connexion de base de données à l'interface Web du service d'administration ou via le client d'administration.
Remarque : PgBouncer n'est pas pris en charge pour les connexions Oracle GoldenGate.
Remarque : Oracle GoldenGate ne prend pas en charge les connexions à PostgreSQL qui utilisent Pgpool.
Après avoir effectué les étapes indiquées ci-dessous pour créer les entrées DSN ou pour utiliser des connexions directes, passez à la rubrique Ajouter des connexions de base de données pour savoir comment créer des connexions de base de données.
Configuration d'une connexion DSN sous Linux
Pour créer une connexion DSN pour les processus Oracle GoldenGate, vous devez d'abord ajouter une variable d'environnement pour le déploiement Oracle GoldenGate for PostgreSQL, puis créer un fichier odbc.ini pour stocker les attributs de connexion.
-
Connectez-vous à l'interface Web de Service Manager.
-
Dans le panneau de navigation de gauche, cliquez sur Déploiements, puis sélectionnez le déploiement Oracle GoldenGate PostgreSQL. Les différents paramètres du déploiement sont développés.
-
Cliquez sur Configuration, puis sur le signe plus (+) en regard de Variables d'environnement.
-
Fournissez les informations suivantes dans les deux champs disponibles. Pour le champ Valeur de variable d'environnement, assurez-vous qu'il s'agit du chemin absolu du fichier
odbc.ini:Nom de variable d'environnement =
ODBCINIValeur de variable d'environnement =
/ogg/deployment/pgsql/odbc.ini
-
Cliquez sur Soumettre pour créer la variable, puis redémarrez le déploiement à partir du panneau Déploiements pour que les modifications prennent effet.
-
Dans le dossier
deploymentde l'installation d'Oracle GoldenGate, créez manuellement un fichierodbc.iniet ajoutez des sources de données dans ce fichier.
Utilisez les paramètres minimum suivants lors de la création du fichier DSN :
-
Data Source Name: nom défini par l'utilisateur d'une connexion de base de données source ou cible qui sera référencée par les processus Oracle GoldenGate, tels que l'extraction ou la réplication. Les noms DSN peuvent comporter jusqu'à 32 caractères alphanumériques et ne peuvent inclure que des traits de soulignement (_) et un tiret (-) à partir de caractères spéciaux. -
IANAAppCodePage=4: paramètre par défaut, mais il peut être modifié en fonction des instructions indiquées sur la page https://docs.progress.com/bundle/datadirect-connect-odbc-71/page/IANAAppCodePage_9.html#IANAAppCodePage_9 lorsque le jeu de caractères de la base de données n'est pas Unicode. -
InstallDir: nom du chemin du pilote de protocole de connexion PostgreSQL d'Oracle GoldenGate. Il peut utiliser un chemin relatif, tel que :InstallDir =./datadirect -
Driver: nom du fichier de pilote Oracle GoldenGate PostgreSQL Wire Protocol et peut utiliser un chemin relatif, tel queDriver=./datadirect/lib/ggpsql25.so. -
Database: nom de la base de données source ou cible. -
Hostname: adresse IP ou nom d'hôte de la base de données. -
PortNumber: port d'écoute de la base de données. -
Oracle GoldenGate pour PostgreSQL prend en charge plusieurs hôtes et ports pour les connexions PostgreSQL. Cette fonctionnalité est utile dans la configuration de la haute disponibilité d'Oracle GoldenGate. Dans une configuration HA PostgreSQL, il existe un serveur principal et plusieurs serveurs de secours. Vous pouvez configurer le format de chaîne de connexion pour indiquer plusieurs hôtes :
Chaîne de connexion Description db-user@host1,host2,host3/db-nameLes connexions sont tentées à l'aide du port de base de données PostgreSQL par défaut 5432 pour tous les hôtes ( host1,host2,host3).db-user@host1:1234,host2:2345,host3:3456/db-nameLes connexions doivent être tentées à l'aide des ports associés à chaque hôte spécifié dans la chaîne de connexion. db-user@host1,host2,host3:1234/db-nameTous les hôtes utilisant le même numéro de port (1234) sur tous les hôtes ( host1,host2,host3). Les connexions sont tentées à l'aide du port 1234 pour tous les hôtes (host1,host2,host3).db-user@host1,host2,host3:1234/db-nameTous les hôtes utilisant le même numéro de port (1234) sur tous les hôtes ( host1,host2,host3). Les connexions seraient tentées à l'aide du port 1234 pour tous les hôtes.db-user@host1:3456,host2,host3:1234/db-nameSi la chaîne de connexion est spécifiée dans d'autres formats où le numéro de port est spécifié pour certains hôtes alors que les autres hôtes sont spécifiés sans aucun port, la dernière spécification de port ou la spécification la plus à droite sera utilisée comme numéro de port pour tous les hôtes qui n'ont pas de numéro de port spécifié dans la chaîne de connexion. Comme indiqué dans la chaîne de connexion :
db-user@host1:3456,host2,host3:1234/db-nameLe numéro de port pour
host2est 1234, qui est le numéro de port le plus à droite spécifié dans la chaîne de connexion. -
Vous pouvez également fournir des valeurs
LogonIDetPasswordpour l'utilisateur Extract ou Replicat, mais celles-ci seront stockées en texte clair. Il est recommandé de laisser ces champs hors du DSN et de les stocker dans le portefeuille Oracle GoldenGate en tant qu'alias d'informations d'identification, et de les référencer avec le paramètreUSERIDALIASdans le processus Extract et Replicat.
Voici un exemple de fichier odbc.ini avec deux entrées DSN. Les noms de source de données utilisés dans l'exemple ci-dessous sont PG_src et PG_tgt.
|
|
| — |
|
-
Enregistrez et fermez le fichier
odbc.ini. -
Afin de configurer la connexion de base de données à partir d'Oracle GoldenGate pour un déploiement PostgreSQL, reportez-vous à Ajout de connexions de base de données.
Connexion à un système PostgreSQL compatible FIPS avec la version 14 ou inférieure
Lorsque l'extraction Oracle GoldenGate est exécutée à partir d'un système FIPS (Federal Information Processing Standards) installé avec une base de données PostgreSQL inférieure à la version 14, l'erreur suivante est générée :
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'algorithme de cryptage md5 est l'algorithme de cryptage par défaut sur la version de base de données PostgreSQL inférieure à 14. Il entraîne un abandon de l'extraction avec une erreur.
Pour exécuter le processus Extract sur un système compatible FIPS exécutant la version de base de données PostgreSQL inférieure à 14, procédez comme suit :
-
Modifiez le fichier
postgresql.confpour définir l'optionpassword_encryptionsurscram-sha-256. -
Modifiez le fichier
pg_hba.confpour définir l'optionMethodsurscram-sha-256, carmd5n'est pas pris en charge sur un système compatible FIPS. Toutefois, il s'agit d'une étape facultative.Le mot de passe de l'utilisateur de base de données utilisé par le processus d'extraction Oracle GoldenGate doit être régénéré ou modifié si l'utilisateur de base de données a déjà été créé, une fois l'option
password_encryptiondéfinie surscram-sha-256. Vous pouvez utiliser le même mot de passe pour être régénéré.Par exemple, si l'utilisateur de base de données nommé
adminutilise le mot de passe en tant quepassword123, le même mot de passe peut être regénéré à l'aide du cryptagescram-sha-256.
Configuration de la prise en charge de SSL pour PostgreSQL
SSL peut être activé en définissant le paramètre de configuration SSL sur Activé dans le fichier de configuration PostgreSQL ($PGDATA/postgresql.conf ). Si SSL est activé, l'entrée hostssl correspondante doit être présente ou ajoutée dans le fichier pg_hba.conf.
Lorsque SSL est activé, Oracle GoldenGate utilise le certificat racine, la liste de certificats révoqués (CRL), le certificat client de serveur et la clé des emplacements par défaut, comme indiqué dans le fragment de code suivant :
~/.postgresql/root.crt
~/.postgresql/root.crl
~/.postgresql/postgresql.crt
~/.postgresql/postgresql.key
Vous devez créer les entités souhaitées à partir de cette liste et les stocker aux emplacements appropriés.
Si la configuration SSL est configurée à l'aide d'emplacements autres que ceux par défaut, les variables d'environnement suivantes doivent être configurées conformément à l'environnement.
PGSSLROOTCERT
PGSSLCRL
PGSSLCERT
PGSSLKEY
Modifications requises dans le fichier odbc.ini
La prise en charge de SSL peut être activée en définissant l'attribut EncryptionMethod DSN sur 1 ou 6 dans le fichier $ODBCINI.
Si la valeur est définie sur 0 (pas de chiffrement), les données ne sont pas cryptées.
Si elle est définie sur 1 (SSL), les données sont cryptées à l'aide des protocoles SSL spécifiés dans l'option de connexion Crypto Protocol Version. Si la méthode de cryptage indiquée n'est pas prise en charge par le serveur de base de données, la connexion échoue et le pilote renvoie une erreur.
Si la valeur est 6 (RequestSSL), la demande de connexion et les données sont cryptées à l'aide de SSL si le serveur est configuré pour SSL. Si le serveur n'est pas configuré pour SSL, une connexion non chiffrée est établie. Le protocole SSL utilisé est déterminé par le paramètre de l'option de connexion de la version du protocole cryptographique.
Si les certificats serveur/client de base de données doivent également être validés, le fichier KeyStore correspondant doit être créé et les attributs DSN ODBC suivants doivent être configurés en conséquence dans le fichier odbc.ini.
KeyStore=path to .p12 keystore file KeyStorePassword=keystore-passwd TrustStore=path to root certificate ValidateServerCertificate=1
Toutefois, le fichier KeyStore n'est pas obligatoire pour la validation des certificats client (par le serveur) lorsque SSLCert et SSLKey sont déjà fournis. Remarque : la base de données Azure pour PostgreSQL est définie par défaut pour appliquer les connexions SSL. Pour respecter cette exigence, effectuez les exigences répertoriées ici ou, si vous le souhaitez, vous pouvez désactiver l'application des connexions SSL à partir des paramètres de sécurité Connexion de l'instance de base de données à l'aide du portail Microsoft Azure.