Openflow Connector for Oracle : Configurer la base de données Oracle¶
Note
Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.
Note
L’Openflow Connector for Oracle est également soumis à des conditions de service supplémentaires en plus des conditions de service standard du connecteur. Pour plus d’informations, consultez le Complément du connecteur Openflow pour Oracle.
Cette rubrique décrit comment configurer la base de données Oracle pour Openflow Connector for Oracle.
Note
La configuration de votre base de données Oracle dépend des politiques de sécurité et de l’architecture de base de données de votre organisation. Par exemple, si les tables résident dans une base de données de conteneur (CDB), une base de données pluggable (PDB), plusieurs PDBs, ou une combinaison des deux.
Les étapes fournies dans cette rubrique ne sont que des exemples. Modifiez-les selon les besoins de votre environnement.
En tant qu’administrateur de base de données Oracle, effectuez les procédures suivantes sur votre base de données source :
Configurer la période de conservation pour les journaux redo archivés
Configurer l’utilisateur de connexion du serveur sortant XStream
Configurer l’utilisateur de capture du serveur sortant XStream
(Facultatif) Configurer les connexions SSL (facultatif)
Note
Les étapes de cette rubrique sont écrites pour une architecture multi-locataire avec une base de données de conteneur (CDB) et une ou plusieurs bases de données pluggables (PDB). Si votre base de données Oracle utilise une architecture à locataire unique, consultez Configurer XStream pour les bases de données à locataire unique.
Configurer la période de conservation pour les journaux redo archivés¶
Vous devez activer le mode ARCHIVELOG pour vous assurer que les données de modification sont disponibles pour la réplication.
Si vous utilisez AWSRDS pour Oracle, vous devez également configurer la période de conservation des journaux redo archivés. Déterminez cette période en fonction du volume des modifications apportées à la base de données source et à votre capacité de stockage.
Pour définir la période de conservation, par exemple à 24 heures, suivez les procédures du tableau suivant :
Version de la base de données |
Procédure |
|---|---|
AWS RDS (Standard) |
Exécutez ce qui suit : Pour plus d’informations, consultez Conservation des journaux redo archivés . |
AWS RDS personnalisé |
Pour plus d’informations, consultez Restauration d’un RDS personnalisé pour l’instance Oracle. |
Activer XStream et la journalisation supplémentaire¶
Note
XStream est inclus avec la base de données Oracle et ne nécessite aucun logiciel supplémentaire.
Pour activer et configurer la réplication XStream pour capturer et diffuser les données de modification, exécutez les commandes suivantes :
Activez la réplication XStream :
Note
Snowflake recommande de définir la taille du pool des flux à 2,5 GB. Cette allocation couvre les éléments suivants :
1 GB pour la capture
1 GB pour l’application
Un tampon supplémentaire de 25 %
Pour activer la journalisation supplémentaire afin de garantir que les journaux redo capturent les informations requises pour la réplication logique, exécutez les commandes suivantes :
Confirmez que la base de données est en mode ARCHIVELOG, comme indiqué dans l’exemple suivant :
Snowflake recommande de forcer la journalisation au niveau de l’espace de la base de données ou de la table.
Définissez le conteneur en conteneur racine et ajoutez une journalisation supplémentaire à la base de données :
Vous pouvez également activer la journalisation uniquement sur des tables spécifiques, comme indiqué dans l’exemple suivant :
Créez l’utilisateur administrateur XStream¶
Un utilisateur administrateur XStream est nécessaire pour gérer les composants XStream, y compris la création et la modification de serveurs sortants. Vous pouvez soit créer un utilisateur dédié à cet effet, soit utiliser un utilisateur existant, à condition que les privilèges d’administration XStream soient accordés (voir la section suivante).
L’exemple suivant détaille la configuration d’un utilisateur administrateur XStream dédié dans le conteneur racine d’unCDB.
Note
L’exemple suivant suppose que la base de données possède également une PDB contenant des tables à répliquer.
Connectez-vous en tant que SYSDBA ou en tant qu’utilisateur avec les privilèges appropriés et exécutez les commandes suivantes :
Accorder les privilèges d’administrateur XStream¶
Accordez les privilèges requis à l’utilisateur administrateur XStream en fonction de la version de votre base de données Oracle.
Pour les bases de données Oracle 19c et 21c
Connectez-vous en tant que SYSDBA ou en tant qu’utilisateur avec les privilèges appropriés.
Accordez les privilèges système nécessaires à l’administrateur XStream en exécutant la commande suivante :
Pour la base de données Oracle 23c
Connectez-vous en tant que SYSDBA ou en tant qu’utilisateur avec les privilèges appropriés.
Accordez les privilèges système nécessaires et les rôles XStream pour la base de données Oracle 23c en exécutant la commande suivante :
Configurer l’utilisateur de connexion au serveur XStream¶
Le connecteur Snowflake Openflow utilise un utilisateur de connexion dédié pour établir une connexion avec le serveur sortant XStream et recevoir des données de modification. Cet utilisateur a besoin de privilèges spécifiques pour faciliter la réplication :
Lire à partir du serveur sortant XStream : L’utilisateur doit pouvoir accéder au flux de données de modification à partir du serveur sortant XStream configuré.
Sélectionner parmi les vues du dictionnaire de données : L’utilisateur de connexion a besoin de l’accès SELECT à diverses vues du dictionnaire de données. Pour ce faire, il convient d’accorder SELECT_CATALOG_ROLE ou SELECT ANY DICTIONARY. Si l’attribution de SELECT ANY DICTIONARY n’est pas souhaitée en raison de la politique de l’entreprise, l’utilisateur a spécifiquement besoin de l’accès SELECT aux vues suivantes :
ALL_USERS
ALL_TABLES
ALL_TAB_COLS
ALL_CONS_COLUMNS
ALL_CONSTRAINTS
V$DATABASE
Sélectionner parmi les tables sources : L’utilisateur doit disposer des privilèges SELECT sur toutes les tables qui sont destinées à la réplication.
L’exemple suivant vous montre comment configurer un tel utilisateur dans le conteneur racine de la CDB. L’exemple suppose que la base de données possède également unePDB contenant des tables à répliquer.
Créer un serveur sortant XStream¶
Le serveur sortant XStream capture les modifications des journaux redo pour une consommation par le connecteur Openflow. Définissez les schémas ou les tables à répliquer. Pour plus d’informations, consultez la DBMS_XSTREAM_ADM.CREATE_OUTBOUND documentation.
Considérations importantes relatives au champ d’application de la réplication :
Si une table est incluse dans la commande des règles de filtrage sortante XStream, elle ne sera pas répliquée.
Une table ou un schéma inclus ici doit également être défini dans les paramètres du connecteur pour être répliqué. Vous pouvez inclure un schéma entier dans les règles de filtrage du serveur et, par la suite, dans les paramètres du connecteur, spécifier uniquement certaines tables de ce schéma pour la réplication.
Note
Le serveur sortant XStream peut uniquement être créé à partir du conteneur racine. Cependant, à partir de la version 23ai de la base de données Oracle, il peut également être créé au niveau de la PDB.
Pour éviter un impact important sur votre CPU et votre réseau, et pour éviter que vos files d’attente ne soient remplies de données non pertinentes, il est essentiel d’utiliser une approche granulaire. La meilleure façon de le faire est d’utiliser la procédure DBMS_XSTREAM_ADM.ADD_TABLE_RULES, qui vous permet de ne choisir spécifiquement que les tables dont vous avez besoin.
Ci-dessous figurent trois exemples de configuration du serveur XStream sortant basé sur différents besoins de réplication. En pratique, lors de la configuration de votre serveur XStream sortant sur votre environnement de production, vous devez être sélectif quant aux modifications que vous capturez. Capturer toutes les données peut avoir de graves conséquences pour les performances de votre base de données et l’utilisation des ressources.
Pour plus d’informations sur la configuration du serveur sortant XStream, voir` Configuration de XStream sortant<https://docs.oracle.com/en/database/oracle/oracle-database/19/xstrm/configuring-xstream-out.html#GUID-A1C8430E-565B-4F66-8E00-495F283AAAFB>`_ .
Exemple 1 : Capturer toutes les tables de tous les schémas dans le conteneur racine et toutes les PDBs
Exemple 2 : Capturer toutes les tables d’un seul schéma dans une base de données pluggable (PDB)
Configurer l’utilisateur de connexion du serveur sortant XStream¶
Configurez l’utilisateur de connexion sur le serveur sortant XStream. Cela garantit que l’utilisateur de connexion précédemment créé est associé au serveur sortant XStream (XOUT1), ce qui lui permet de recevoir des données de modification.
Note
L’exemple suivant suppose que l’utilisateur de connexion est c##connectuser.
Configurer l’utilisateur de capture du serveur sortant XStream¶
Note
Si vous souhaitez que les données soient capturées par le même utilisateur que celui qui a créé le serveur (l’administrateur), ignorez cette étape.
Si vous avez configuré un utilisateur de capture distinct, configurez le serveur XStream sortant pour l’utiliser. Cela garantit que l’utilisateur de capture dédié est associé au serveur XStream sortant (XOUT1), ce qui lui permet de capturer les données de modification.
Configurer XStream pour les bases de données à locataire unique¶
L’architecture par défaut pour Oracle 12c et versions ultérieures est une architecture multi-locataire avec une base de données de conteneur (CDB) et une ou plusieurs bases de données pluggables (PDB).
Si votre base de données Oracle utilise une architecture à locataire unique, notez les différences suivantes dans la configurationXStream :
N’utilisez pas les commandes
ALTER SESSION SET CONTAINER. Dans une base de données à locataire unique, il n’y a qu’une seule instance, donc le changement de conteneur ne s’applique pas.Ne créez qu’un seul espace de table
xstream_adm_tbs. Ne créez pas de deuxième espace de table dans une PDB.N’utilisez pas le préfixe
C##sur les noms d’utilisateurs. Par exemple, créezxstreamadminau lieu de``c##xstreamadmin`` etconnectuserau lieu de``c##connectuser``. Le préfixeC##est requis uniquement dans les environnements multi-locataires.N’incluez pas
CONTAINER=ALLoucontainer => 'ALL'dans les commandes. Ces clauses accordent des privilèges sur plusieurs conteneurs et ne s’appliquent pas dans une base de données à locataire unique.
Configurer les connexions SSL (facultatif)¶
Le|OracleOFC| prend en charge les connexions SSL chiffrées à la base de données Oracle à l’aide du protocole TCPS (TCP avecSSL). LorsqueSSL est activé, la connexion à la base de données et la connexion XStream utilisent une communication chiffrée.
Pour utiliserSSL, vous devez :
Activer TCPS sur la base de données Oracle¶
Vous devez configurer la base de données Oracle pour accepter les connexions en utilisant le protocole TCPS. Suivez la procédure pour votre environnement de base de données.
Sur site / OCI¶
Créez un wallet serveur SSL avec le certificat du serveur.
Configurez le fichier
listener.orapour inclure un point de terminaison TCPS (port par défaut 2484).Configurez le fichier
sqlnet.orapour référencer le wallet serveur.Redémarrez le listener.
Pour plus d’informations, voir Configuration du chiffrement de la sécurité de la couche de transport.
AWS RDS (Standard)¶
Ajouter l’option SSL Oracle au groupe d’options associé à l’instance de DB.
Spécifiez le port SSL (par exemple, 2484).
Pour plus d’informations, voir Couche de sockets sécurisées Oracle.
Créer un wallet client¶
Une fois que TCPS est activé sur la base de données, créez un wallet de connexion automatique Oracle (cwallet.sso) contenant le certificat de confiance du serveur. Ce wallet est fourni au connecteur afin qu’il puisse vérifier le serveur pendant le handshake SSL.
Exportez le certificat du serveur du serveur de base de données Oracle en tant que fichier PEM.
Utilisez l’utilitaire Oracle``orapki`` pour créer un wallet client et importer le certificat du serveur :
Copiez le fichier généré
cwallet.ssodans un emplacement accessible par le runtime Openflow.
Note
PourAWSRDS, téléchargez le certificat racine depuisAWS au lieu de l’exporter à partir du serveur de base de données. Pour plus d’informations, voir `Connexion à une instance de DB RDS pour Oracle avec SSL<https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.SSL.Connecting.html>`_.
Pour plus d’informations, voir Utilisation de l’utilitaire orapqui pour gérer les éléments PKI.