Cette section contient des informations sur les éléments suivants :
- Le comportement de Datastream lors de la gestion des données extraites d'une base de données Oracle source
- Les versions de la base de données Oracle compatibles avec Datastream
- Présentation de la configuration d'une base de données Oracle source afin que les données puissent être diffusées en streaming vers une destination
- Les limites connues d'utilisation de la base de données Oracle en tant que source
Comportement
Datastream est compatible avec deux méthodes d'extraction des modifications apportées aux données à partir des fichiers journaux de rétablissement en ligne : le lecteur de journaux binaires Oracle (aperçu) et Oracle LogMiner.
Avec la méthode du lecteur de journaux binaires (aperçu), le comportement suivant est observé :
S'il existe un délai de lecture lors de l'extraction des modifications à partir des fichiers journaux en ligne, Datastream extrait les modifications à partir des fichiers journaux archivés.
Datastream ne réplique que les modifications validées dans la destination. Les transactions non validées ou annulées ne sont pas répliquées.
Le lecteur binaire est compatible avec la réplication des colonnes
VARCHAR2Oracle de plus de 4 000 caractères.
Datastream est également compatible avec la fonctionnalité Oracle LogMiner pour exposer les modifications apportées aux données. La méthode présente le comportement suivant :
- Vous pouvez sélectionner tous les schémas ou des schémas spécifiques d'une base de données donnée, ainsi que toutes les tables des schémas ou des tables spécifiques.
- Toutes les données historiques sont répliquées.
- Toutes les modifications du langage de manipulation de données (LMD), telles que les insertions, les mises à jour et les suppressions des bases de données et des tables spécifiées, sont répliquées.
- Datastream réplique les modifications validées et, dans certains cas, non validées dans la destination. Datastream lit les modifications non validées. En cas de rollback, les enregistrements de sortie Datastream incluent également l'opération inverse. Par exemple, s'il existe une opération
INSERTannulée, les enregistrements de sortie contiendront également une opérationDELETEcorrespondante. Dans ce cas, l'événement apparaît comme un événementDELETEavec uniquement leROWID.
Remplissage basé sur ROWID
Dans Oracle, ROWID est une pseudo-colonne qui stocke des identifiants uniques pour les lignes d'une table. Datastream utilise les valeurs ROWID pour ses opérations de remplissage. Pour cette raison, nous vous recommandons de n'effectuer aucune action susceptible de modifier les valeurs ROWID dans votre base de données Oracle source tant que l'opération de remplissage n'est pas terminée.
Les actions qui peuvent modifier les valeurs ROWID incluent les suivantes :
Déplacement physique des lignes :
- Opérations d'exportation et d'importation : lorsque vous exportez une table, puis que vous l'importez à nouveau, l'emplacement physique des lignes peut changer, ce qui entraîne de nouvelles valeurs
ROWID. - Commande
ALTER TABLE (...) MOVE: le déplacement d'une table vers un autre espace de table peut modifier le stockage physique et entraîner des modificationsROWID. - Commande
ALTER TABLE (...) SHRINK SPACE: cette commande compresse la table, ce qui peut déplacer des lignes et affecter leurs valeursROWID. - Opérations de partitionnement : la division, la fusion ou le déplacement de partitions peuvent modifier l'emplacement physique des lignes et leurs valeurs
ROWID.
- Opérations d'exportation et d'importation : lorsque vous exportez une table, puis que vous l'importez à nouveau, l'emplacement physique des lignes peut changer, ce qui entraîne de nouvelles valeurs
Opérations de restauration :
- Commande
FLASHBACK TABLE: la restauration d'une table à un état antérieur implique la suppression et la réinsertion de lignes, ce qui crée de nouvelles valeursROWID. FLASHBACK_TRANSACTION_QUERY: semblable àFLASHBACK TABLE. L'annulation d'une transaction peut entraîner des modificationsROWIDsi des lignes ont été supprimées ou mises à jour dans la transaction.
- Commande
Résoudre les problèmes de remplissage de la table de partition Oracle 11.2.0.4
Si le remplissage échoue pour une table partitionnée sur Oracle 11.2.0.4 avec une erreur de récupération inattendue (index hors limites), cela est dû à un bug de métadonnées Oracle où les requêtes adressées à ALL_OBJECTS ne renvoient pas de sous-partitions.
- Solution : révoquez temporairement le privilège
SELECT ON DBA_EXTENTSde l'utilisateur Datastream (par exemple,REVOKE SELECT ON sys.dba_extents FROM USER_NAME;). Cela force Datastream à utiliser le remplissage basé sur l'index, en contournant le problème de métadonnées.
Versions
Datastream est compatible avec les versions suivantes de la base de données Oracle :
- Oracle 11g, version 11.2.0.4 (compatible uniquement avec la méthode CDC Logminer)
- Oracle 12c, version 12.1.0.2
- Oracle 12c, version 12.2.0.1
- Oracle 18c
- Oracle 19c
- Oracle 21c
Datastream est compatible avec les types de base de données Oracle suivants :
- Auto-hébergé sur site ou chez n'importe quel fournisseur de services cloud
- Amazon RDS pour Oracle
- Oracle Cloud
- Oracle Exadata
- Oracle RAC
- Base de données de secours Oracle Active Data Guard
Configuration
Pour configurer une base de données Oracle source afin que ses données puissent être diffusées vers une destination, vous devez configurer la base de données pour accorder l'accès, configurer la journalisation et définir une règle de conservation.
Pour savoir comment configurer cette base de données afin que Datastream puisse en extraire des données dans une destination, consultez la section Configurer une base de données Oracle source.
Bonnes pratiques
Cette section décrit les bonnes pratiques recommandées pour configurer votre source Oracle afin de l'utiliser avec Datastream.
Sensibilité à la casse pour le lecteur binaire
Lorsque vous configurez une source Oracle avec la méthode CDC du lecteur binaire et que vous spécifiez des noms de répertoire pour les journaux de rétablissement et d'archive, sachez que les noms sont sensibles à la casse. Assurez-vous que les noms de répertoire que vous fournissez dans le profil de connexion Datastream correspondent exactement à la casse des noms de répertoire de votre base de données Oracle.
Simultanéité de la CDC
Pour minimiser le délai de réplication, assurez-vous que Datastream peut traiter les journaux de rétablissement aussi rapidement que votre source Oracle les crée. Lorsque vous utilisez la méthode CDC du lecteur binaire, la simultanéité de Datastream se situe au niveau du fichier journal de rétablissement : chaque tâche définie par maxConcurrentCdcTasks traite un fichier à la fois.
Nous vous recommandons d'utiliser la méthodologie suivante :
- Ajuster la simultanéité dans Datastream : identifiez le nombre moyen de
commutateurs de journaux de rétablissement pendant les horaires d'ouverture de votre entreprise et configurez le
maxConcurrentCdcTasksparamètre en conséquence. Pour en savoir plus, consultez Nombre maximal de tâches CDC. - Configurer la commutation des journaux Oracle : configurez Oracle pour qu'il commute fréquemment les journaux, par exemple toutes les 10 à 20 minutes. Cela crée un flux constant d'unités de travail plus petites, ce qui permet aux tâches simultanées Datastream de fonctionner en parallèle de manière efficace.
Nous vous recommandons d'optimiser vos paramètres afin qu'il y ait suffisamment de tâches simultanées dans Datastream pour gérer la création fréquente de journaux de rétablissement plus petits à partir d'Oracle. Pour en savoir plus, consultez Commandes de simultanéité des flux.
Limitations connues
Les limites connues d'utilisation de la base de données Oracle en tant que source incluent les suivantes :
- Les flux sont limités à 10 000 tables. Si un flux inclut plus de 10 000 tables, il peut rencontrer des erreurs.
- Datastream est compatible avec l'architecture mutualisée Oracle (CDB/PDB). Toutefois, vous ne pouvez répliquer qu'une seule base de données connectable dans un flux.
- Oracle Autonomous Database n'est pas compatible.
- Pour les tables qui ne comportent pas de clé primaire, Datastream utilise le
ROWIDde la ligne pour effectuer une opération de fusion côté consommateur. Notez que leROWIDn'est peut-être pas unique. Si vous supprimez et réinsérez une ligne avec l'utilitaire d'exportation/d'importation d'Oracle, par exemple, leROWIDde la ligne peut changer. Si vous supprimez une ligne, Oracle peut réattribuer sonROWIDà une nouvelle ligne insérée ultérieurement. - Les tables organisées en index (IOT) ne sont pas compatibles.
- Les tables temporaires ne sont pas compatibles.
- Les types de données Oracle suivants ne sont pas compatibles et ne sont pas répliqués. Les colonnes de ces types sont répliquées en tant que valeurs
NULLdans la destination :ANYDATA,ANYDATASET,ANYTYPEVARRAY(tableaux Oracle)BFILE,BFILENAMEINTERVAL DAY TO SECOND,INTERVAL YEAR TO MONTHLONG,LONG RAWUROWIDUDT- Types multimédias et spatiaux :
ORDAUDIO,ORDDATASOURCE,ORDDICOM,ORDDOC,ORDIMAGE,ORDVIDEO,SDO_GEOMETRY(et tous les autres typesMDSYS.SDO_*).
Pour diffuser en streaming des colonnes de types de données d'objets volumineux, tels que
XMLTYPE, les objets volumineux binaires (BLOB), les objets volumineux de caractères (CLOB) et les objets volumineux de caractères nationaux (NCLOB), vous devez inclure l'optionstreamLargeObjectsdans la configuration de votre flux. Si vous n'incluez pas l'option, Datastream ne diffuse pas ces colonnes en streaming et elles sont remplacées par des valeursNULLdans la destination. Pour en savoir plus, consultez Activer la diffusion en streaming d'objets volumineux pour les sources Oracle. Lors de la diffusion en streaming de ces types de données, Datastream doit interroger la base de données source pour récupérer les valeurs LOB manquantes à un moment donné (dans un processus de recherche actif appelé supplémentation). Cela se produit dans les scénarios suivants :- Lorsque les charges utiles LOB inchangées sont supprimées du journal de rétablissement lors d'une
UPDATE - Lors de toute opération LMD impliquant des types XML binaires
- Lors de toute opération LMD analysée sur une table contenant des LOB si le flux utilise la méthode LogMiner
Étant donné que Datastream diffuse ces colonnes en streaming en interrogeant la base de données, les modifications intermédiaires peuvent ne pas être capturées dans les scénarios impliquant des mises à jour rapides et consécutives ou une suppression rapide après une insertion. Notez que les opérations
DELETEne déclenchent pas de supplémentation. Cette limitation est particulièrement pertinente lorsque vous utilisez le mode d'écriture en ajout uniquement, qui s'attend à ce que toutes les modifications intermédiaires soient capturées.- Lorsque les charges utiles LOB inchangées sont supprimées du journal de rétablissement lors d'une
Pour Oracle 11g, les tables contenant des colonnes de types de données
ANYDATAouUDTne sont pas compatibles, et l'ensemble de la table ne sera pas répliqué.Oracle Label Security (OLS) n'est pas répliqué.
Datastream récupère régulièrement le dernier schéma de la source lors du traitement des événements. Si un schéma change, certains événements du nouveau schéma peuvent être lus alors que l'ancien schéma est toujours appliqué. Dans ce cas, Datastream détecte la modification du schéma, déclenche une récupération du schéma et retraire les événements ayant échoué.
Certaines modifications apportées au schéma source ne peuvent pas être détectées automatiquement, ce qui peut provoquer une corruption des données. Les modifications de schéma suivantes peuvent entraîner une corruption des données ou l'échec du traitement des événements en aval :
- Supprimer des colonnes
- Ajout de colonnes au milieu d'une table
- Changement du type de données d'une colonne
- Réorganisation des colonnes
- Suppression de tables (pertinente si la même table est ensuite recréée avec de nouvelles données ajoutées)
- Troncation de tables
Datastream n'est pas compatible avec la réplication des vues.
Datastream est compatible avec les vues matérialisées. Toutefois, les nouvelles vues créées pendant l'exécution du flux ne sont pas remplies automatiquement.
Lorsque vous utilisez la méthode Oracle LogMiner, les instructions
SAVEPOINTne sont pas compatibles et peuvent entraîner une incohérence des données en cas de rollback.Lorsque vous utilisez la méthode du lecteur binaire, les tables partitionnées de manière dynamique ne sont pas compatibles.
Lorsque vous utilisez la méthode Oracle LogMiner, Datastream n'est pas compatible avec la réplication des tables et des colonnes dont les noms dépassent 30 caractères.
Datastream est compatible avec les encodages de jeux de caractères suivants pour les bases de données Oracle :
AL16UTF16AL32UTF8IN8ISCIIIW8ISO8859P8JA16SJISJA16SJISTILDEKO16MSWIN949US7ASCIIUTF8WE8ISO8859P1WE8ISO8859P9WE8ISO8859P15WE8MSWIN1252ZHT16BIG5
Datastream n'est pas compatible avec la réplication des valeurs de date nulles. Ces dates sont remplacées par des valeurs
NULL.Datastream n'est pas compatible avec la connectivité directe aux bases de données à l'aide de la fonctionnalité SCAN (Single Client Access Name) dans les environnements Oracle Real Application Clusters (RAC). Pour en savoir plus sur les solutions potentielles, consultez Comportement et limites des sources Oracle.
Si la source est une base de données de secours Oracle Active Data Guard, Datastream n'est pas compatible avec la réplication des données chiffrées.
Limites supplémentaires lors de l'utilisation du lecteur binaire
La méthode du lecteur binaire hautes performances n'est compatible qu'avec Oracle 12c et versions ultérieures. Pour Oracle 11g et versions antérieures, vous devez utiliser LogMiner.
Le lecteur binaire n'est pas compatible avec les fonctionnalités suivantes :
- Chiffrement transparent des bases de données (TDE)
- Compression en colonnes hybrides
- Fichiers sécurisés
- ASM n'est pas compatible avec les sources Amazon RDS.
- La méthode CDC du lecteur binaire n'est pas compatible avec Oracle 11g et versions antérieures.
Étape suivante
- Découvrez comment configurer une source Oracle pour l'utiliser avec Datastream.