Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
La capture de données modifiées pour Oracle par Attunity est déconseillée maintenant. Pour les détails, référez-vous à l'annonce.
Une instance Oracle CDC mine les modifications d’une base de données source Oracle unique (un cluster Oracle RAC est considéré comme une base de données unique) et écrit les modifications validées apportées aux tables modifiées dans une base de données CDC dans l’instance SQL Server cible.
Une instance de capture de données modifiées conserve son état dans une table système appelée cdc.xdbcdc_state. Cette table peut être interrogée à tout moment pour connaître l’état de l’instance CDC. Pour plus d’informations sur la table cdc.xdbcdc_state, consultez cdc.xdbcdc_state.
Le tableau ci-dessous décrit les états de l’instance cdc dans la table xdbcdc_state.
Pour chaque état, les deux indications suivantes sont indiquées pour les colonnes correspondantes dans la table cdc.xdbcdc_state :
L’instance n’est pas active (aucun processus Windows ne le gère actuellement). Si la valeur de la colonne active est 1, cela signifie qu'un sous-processus du service Oracle CDC, qui gère cette instance Oracle CDC spécifique, est en cours d'exécution.
Si la valeur de colonne d’erreur est 0, l’instance Oracle CDC n’est pas dans une condition d’erreur. Si la valeur de colonne d’erreur est 1, une erreur empêche l’instance Oracle CDC de traiter les modifications.
Si la colonne d’erreur a la valeur 1 et que la colonne active a aussi la valeur 1, une erreur récupérable est en train de se produire pour l’Instance CDC Oracle, qui peut être résolue automatiquement. Si la colonne d’erreur a la valeur 1 et que la colonne active a la valeur 0, dans la plupart des cas, une solution de contournement manuelle peut être nécessaire pour résoudre le problème avant de pouvoir reprendre le traitement.
Le tableau suivant décrit les différents codes d'état que l'instance CDC Oracle peut signaler dans sa table d'état.
| Statut | Code d’état actif | Code d’état d’erreur | Descriptif | Sous-statut |
|---|---|---|---|---|
| AVORTÉ | 0 | 1 | L’Instance de capture de données modifiées Oracle n’est pas en cours d’exécution. Le sous-état ABORTED indique que l’instance de capture de données modifiées Oracle était ACTIVE, puis s’est arrêtée de manière inattendue. | Le sous-état ABORTED est déterminé par l’instance principale du service de capture de données modifiées Oracle lorsqu’elle détecte que l’instance Oracle CDC n’est pas en cours d’exécution alors que son état est ACTIF. |
| ERREUR | 0 | 1 | L’Instance de capture de données modifiées Oracle n’est pas en cours d’exécution. L’état ERROR indique que l’instance de capture de données modifiées était ACTIVE, mais qu’elle a rencontré une erreur qui n’est pas récupérable et s'est désactivée elle-même. | MISCONFIGURED : une erreur de configuration irrécupérable a été détectée. MOT DE PASSE OBLIGATOIRE : aucun mot de passe n’est défini pour le Concepteur de capture de données modifiées pour Oracle par Attunity ou le mot de passe configuré n’est pas valide. Cela peut être dû à une modification du mot de passe de clé asymétrique du service. |
| COURSE | 1 | 0 | L’instance CDC est en cours d’exécution et traite les enregistrements de modification. | IDLE : Tous les enregistrements de modification ont été traités et stockés dans les tables de contrôle cible (_CT). Il n’existe aucune transaction active avec les tables de contrôle. TRAITEMENT : il existe des enregistrements de modification en cours de traitement qui ne sont pas encore écrits dans les tables de contrôle (_CT). |
| ARRÊTÉ | 0 | 0 | L’instance CDC n’est pas en cours d’exécution. | Le sous-état STOP indique que l’instance CDC était ACTIVE, puis a été arrêtée correctement. |
| SUSPENDU | 1 | 1 | L’instance cdc est en cours d’exécution, mais le traitement est suspendu en raison d’une erreur récupérable. | DÉCONNECTÉ : Impossible d’établir la connexion avec la base de données Oracle source. Le traitement reprend une fois la connexion restaurée. STOCKAGE : le stockage est plein. Le traitement reprend lors de la disponibilité du stockage. Dans certains cas, cet état peut ne pas apparaître, car la table d’état ne peut pas être mise à jour. LOGGER : L’enregistreur d’événements est connecté à Oracle, mais il ne peut pas lire les journaux des transactions Oracle en raison d’un problème temporaire. |
| ERREUR DE DONNÉES | x | x | Ce code d’état est utilisé uniquement pour la table xdbcdc_trace . Elle n’apparaît pas dans la table xdbcdc_state . Les enregistrements de suivi avec cet état indiquent un problème avec un enregistrement de journal Oracle. L’enregistrement du journal erroné est stocké dans la colonne data en tant qu’objet BLOB. | BADRECORD : L’enregistrement du journal de log attaché n’a pas pu être interprété. CONVERT-ERROR : Les données de certaines colonnes n’ont pas pu être converties en colonnes cibles dans la table de capture. Cet état peut apparaître uniquement si la configuration spécifie que les erreurs de conversion doivent produire des enregistrements de trace. |
Étant donné que l’état du service de capture de données modifiées Oracle est stocké dans SQL Server, il peut arriver que la valeur d’état de la base de données ne reflète pas l’état réel du service. Le scénario le plus courant est le moment où le service perd sa connexion à SQL Server et ne peut pas le reprendre (pour une raison quelconque). Dans ce cas, l’état stocké dans cdc.xdbcdc_state devient obsolète. Si l’horodatage de la dernière mise à jour (UTC) est plus d’une minute, l’état est probablement obsolète. Dans ce cas, utilisez l’Observateur d’événements Windows pour trouver des informations supplémentaires sur l’état du service.
Gestion des erreurs
Cette section décrit comment le service Oracle Capture de Données Modifiées gère les erreurs.
Exploitation forestière
Le service Oracle CDC crée des informations d’erreur dans l’un des emplacements suivants.
Le journal des événements Windows, qui est utilisé pour consigner les erreurs de journalisation et pour indiquer les événements du cycle de vie du service de capture de données modifiées Oracle (démarrage, arrêt, (re)connexion à l’instance cible de SQL Server).
La table MSXDBCDC.dbo.xdbcdc_trace est utilisée pour la journalisation et le suivi généraux par le processus principal du service Oracle CDC.
La <table cdc-database>.cdc.xdbcdc_trace utilisée pour la journalisation et le suivi généraux par les instances de capture de données modifiées Oracle. Cela signifie que les erreurs liées à une instance Oracle CDC spécifique sont journalisées dans la table de trace de cette instance.
Les informations sont consignées par le service de capture de données modifiées Oracle lorsque le service :
Est démarré ou arrêté par le gestionnaire de contrôle de service.
Impossible de se connecter à l’instance SQL Server associée et lorsqu’elle établit correctement une connexion après un échec.
Une erreur est rencontrée lors du démarrage des instances du service de capture de données modifiées Oracle.
Détecte qu’une instance de capture de données modifiées Oracle a été abandonnée.
Rencontre une erreur inattendue.
Les informations sont consignées par l’instance CDC lorsque celle-ci :
Est activé ou désactivé.
Rencontre une erreur.
Se remet d'une erreur récupérable.
La table de trace est également utilisée pour enregistrer des informations détaillées de traçage pour le dépannage.
Gestion des erreurs de connexion à la source Oracle
Le service de capture de données modifiées Oracle a besoin d’une connexion persistante avec la base de données Oracle source. De nombreuses erreurs de connexion qui ne sont pas liées à la configuration du service (telles que les erreurs réseau) sont considérées comme temporaires. Par conséquent, si le service de capture de données modifiées Oracle ne peut pas établir de connexion avec la base de données Oracle (soit au démarrage, soit pendant l'opération après une déconnexion), le service change son état en SUSPENDU/DÉCONNECTÉ et entre dans une boucle de tentative de reconnexion où la connexion est rétablie à intervalles réguliers. Lorsque la connexion est rétablie, le traitement se poursuit.
D’autres types d’erreurs de connexion ne sont pas temporaires (par exemple, les informations d’identification incorrectes, les privilèges insuffisants et l’adresse de base de données incorrecte). Lorsque ces erreurs se produisent, l’état du service de capture de données modifiées Oracle est défini sur ERROR/MISCONFIGURED ou sur ERROR/PASSWORD-REQUIRED et le service est désactivé. Lorsque l’utilisateur corrige l’erreur sous-jacente, l’Instance CDC Oracle doit être réactivée manuellement pour que le traitement puisse reprendre.
Lorsqu’il n’est pas clair si l’erreur est temporaire, il est préférable de supposer qu’elle est temporaire.
Gestion des erreurs de connexion SQL Server cibles
Le service de capture de données modifiées Oracle a besoin d’une connexion persistante à l’instance SQL Server cible. Cette connexion est utilisée pour :
Vérifiez qu’il n’existe aucun autre service du même nom qui fonctionne actuellement avec cette instance SQL Server.
Vérifiez quelle instance de capture de données modifiées Oracle est activée ou désactivée et démarre (ou arrêtez) son sous-processus.
Lorsque le service établit une connexion avec l’instance sql Server cible et vérifie qu’il s’agit du seul service de capture de données modifiées Oracle qui fonctionne, il peut vérifier quelles instances de capture de données modifiées Oracle sont activées et démarrer leurs processus de gestion (par la suite, le service arrête ces processus lorsqu’ils sont désactivés). Les instances de capture de données modifiées Oracle utilisent leurs connexions SQL Server pour utiliser la base de données CDC de l’instance Oracle CDC.
La façon dont les erreurs sont gérées lorsque la connexion au serveur SQL Server cible échoue varie selon que les erreurs sont temporaires.
Pour les erreurs non temporaires connues (telles que les informations d’identification incorrectes, les privilèges insuffisants, les informations de connexion incorrectes), le service enregistre une erreur dans le journal des événements Windows et s’arrête (il ne peut pas écrire dans la table de trace, car il ne peut pas se connecter à SQL Server). Dans ce cas, l’utilisateur doit résoudre l’erreur et redémarrer le service Windows de capture de données modifiées Oracle.
Pour les erreurs temporaires et les erreurs inattendues, l’opération est retentée plusieurs fois et si l’échec persiste pendant une période importante, le service CDC arrête ses sous-processus d’instance de capture de données modifiées et revient à sa tentative de connexion initiale (à ce stade, un service de capture de données modifiées Oracle sur un autre ordinateur peut avoir déjà pris le contrôle du service CDC nommé).
Gestion des erreurs complètes de stockage SQL Server cible
Lorsque le service de capture de données modifiées Oracle détecte qu’il ne peut pas insérer de nouvelles données modifiées dans la base de données CDC SQL Server cible, il écrit un avertissement dans le journal des événements et tente d’insérer un enregistrement de trace (bien que cela puisse échouer pour la même raison). Il retente ensuite l’opération dans un intervalle spécifique jusqu’à ce qu’elle réussisse.
Gestion des erreurs de capture de données modifiées Oracle
L’instance Oracle CDC lit le journal des transactions Oracle et les traite. Si le traitement cdc rencontre une erreur, il est signalé dans la table cdc.xdbcdc_state et l’utilisateur doit intervenir manuellement en fonction de l’erreur signalée.
Par exemple, l’instance CDC Oracle peut ne pas être active pendant une durée prolongée et les journaux de transactions Oracle nécessaires ne sont plus disponibles. Dans ce cas, l’administrateur de base de données Oracle doit restaurer les journaux requis pour que l'instance CDC Oracle reprenne le traitement.
Gestion des échecs inattendus d’instance Oracle CDC
Le service CDC Oracle surveille les sous-processus de son instance CDC. Lorsqu'un sous-processus d'instance CDC avorte, le service CDC le désactive dans la table MSXDBCDC.dbo.xdbcdc_databases et met à jour son état cdc.xdbcdc_state à ABORTED. Dans ce cas, la boîte de dialogue Rapport d’erreurs Windows standard est utilisée pour signaler cette erreur pour une analyse plus approfondie.
Voir aussi
Concepteur de capture des modifications de données pour Oracle par Attunity
Instance Oracle CDC