Configuration de la base de données
Logiciel de base de données pour la capture
Pour effectuer une capture à partir d'une base de données PostgreSQL, Oracle GoldenGate requiert l'installation du module d'extension de base de données test_decoding pour la base de données. Ce module d'extension n'a peut-être pas été installé par défaut lorsque la base de données a été installée.
Assurez-vous que le package postgresqlversion#-contrib est installé sur le serveur de base de données, comme indiqué dans l'exemple :
sudo yum install postgresql14-contrib
Paramètres dans le fichier de configuration de la base de données PostgreSQL
Pour Oracle GoldenGate, configurez les paramètres suivants dans le fichier de configuration de la base de données PostgreSQL, $PGDATA/postgresql.conf :
Remarque : ces modifications sont requises pour la base de données PostgreSQL principale à partir de laquelle Oracle GoldenGate sera capturé, ainsi que pour toute base de données de secours à partir de laquelle Oracle GoldenGate pourrait capturer en cas d'échec de la base de données principale.
-
Pour la connectivité distante d'une extraction ou d'une réplication, définissez PostgreSQL
listen_addressespour autoriser la connectivité de base de données distante. Exemple :listen_addresses=remotehost_ip_addressRemarque : assurez-vous que l'authentification client est définie pour autoriser les connexions à partir d'un hôte Oracle GoldenGate en configurant le fichier
pg_hba.conf. Pour plus d'informations, reportez-vous à ce document : Le fichier pg_hba.conf -
Pour prendre en charge l'extraction Oracle GoldenGate, la journalisation en écriture anticipée doit être définie sur
logical, ce qui ajoute les informations nécessaires à la prise en charge du décodage des enregistrements transactionnels.Le nombre maximal d'emplacements de réplication doit être défini pour accueillir un emplacement ouvert par processus Extract. En général, il n'est pas nécessaire de définir plus d'un processus Extract par base de données. Si, par exemple, la réplication native PostgreSQL est déjà utilisée et utilise tous les emplacements de réplication actuellement configurés, augmentez la valeur pour autoriser l'enregistrement d'une extraction.
Le nombre maximal d'expéditeurs d'écriture anticipée doit être défini pour correspondre à la valeur maximale des emplacements de réplication.
Eventuellement, les horodatages de validation peuvent être activés dans le journal d'écriture anticipée, qui, lorsqu'il est défini en même temps que la journalisation d'écriture anticipée logique, suit le premier enregistrement de validation LMD à partir de ce moment, avec la valeur d'horodatage correcte. Sinon, le premier enregistrement rencontré par la capture Oracle GoldenGate aura un horodatage de validation incorrect.
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) -
Une fois les modifications apportées, redémarrez la base de données.
Utilisez ces instructions pour gérer les paramètres de base de données pour Azure pour PostgreSQL, Amazon Aurora PostgreSQL, Amazon RDS pour PostgreSQL, Google AlloyDB pour PostgreSQL et Google Cloud SQL pour PostgreSQL.
Azure Database for PostgreSQL
Lors de la configuration d'Oracle GoldenGate pour l'extraction PostgreSQL sur une base de données Azure pour PostgreSQL, le décodage logique doit être activé et défini sur LOGICAL.
Consultez la documentation Microsoft pour obtenir les instructions suivantes :
https://learn.microsoft.com/en-us/azure/postgresql/
D'autres paramètres de base de données pour Azure Database for PostgreSQL peuvent être gérés via la section Paramètres de serveur de l'instance de base de données.
Pour les connexions à une instance Azure Database for PostgreSQL, les paramètres de sécurité de connexion Azure par défaut nécessitent des connexions SSL. Pour respecter cette exigence, des étapes supplémentaires sont nécessaires pour prendre en charge les connexions SSL avec Oracle GoldenGate.
Pour plus d'informations, suivez le contenu répertorié sous Configuration de la prise en charge SSL pour PostgreSQL.
Amazon Aurora PostgreSQL et Amazon RDS pour PostgreSQL
Pour Amazon Aurora PostgreSQL et Amazon RDS pour PostgreSQL, les paramètres de base de données sont modifiés dans les groupes de paramètres.
Consultez la documentation Amazon AWS pour plus d'informations sur la modification des paramètres de base de données dans un nouveau groupe de paramètres et affectez-le à une instance de base de données :
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
-
Vérifiez que les paramètres de configuration de base de données répertoriés précédemment sont corrects en les vérifiant dans le groupe de paramètres affecté à l'instance.
-
Le paramètre
wal_levelpour les services de base de données Amazon est configuré avec un paramètre nommérds.logical_replication, dont la valeur par défaut est0, et doit être défini sur1si la base de données doit être utilisée comme base de données source pour l'extraction Oracle GoldenGate. -
Amazon RDS ne prend pas en charge l'ajout anticipé ou le démarrage du nom d'emplacement de réplication avec la chaîne
rds. La commande utilisée par le processus d'extraction Oracle GoldenGate pour créer l'emplacement de réplication renvoie une erreur si le nom de l'emplacement de réplication commence par la chaînerds. Par exemple, vous pouvez nommer l'emplacement de réplicationordscdcau lieu derdscdcpour éviter cette erreur, comme indiqué dans l'exemple suivant :select slot_name from pg_create_logical_replication_slot('ordscdc', 'test_decoding');Cette commande ajoute l'emplacement de réplication
ordscdc. Toutefois, si vous utilisez le nom d'emplacement de réplication en tant querdscdc, l'erreur suivante se produit :ERROR: must be superuser or replication role to use logical replication slots in the 'rds' namespace
Limitation :
Sur Amazon Aurora PostgreSQL version 12.17, si la commande SHOW en majuscules est exécutée, elle signale l'erreur suivante :
"ERROR: must be superuser or replication role to run this operation."
Vous devez utiliser la commande SHOW minuscule pour éviter cette erreur.
Google AlloyDB for PostgreSQL
A partir d'Oracle GoldenGate version 21.14, Oracle GoldenGate prend en charge Google AlloyDB pour PostgreSQL. Lors de la configuration d'une extraction Oracle GoldenGate pour PostgreSQL pour une extraction Google AlloyDB pour PostgreSQL, le paramètre alloydb.logical_decoding configuration (indicateur) doit être défini sur ON.
Google Cloud SQL for PostgreSQL
Lors de la configuration d'une extraction Oracle GoldenGate pour PostgreSQL pour une base de données Google Cloud SQL pour PostgreSQL, le décodage logique doit être défini et est effectué en définissant la variable cloudsql.logical_decoding sur ON. Suivez les instructions fournies par Google pour activer cet indicateur de base de données. Pour plus d'informations, reportez-vous à https://cloud.google.com/sql/docs/postgres/flags#postgres-l.