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.
Le service Oracle CDC est un service Windows qui exécute le programme xdbcdcsvc.exe. Le service de capture de données modifiées Oracle peut être configuré pour exécuter plusieurs services Windows sur le même ordinateur, chacun avec un nom de service Windows différent. La création de plusieurs services Oracle CDC Windows sur un seul ordinateur est souvent effectuée pour assurer une meilleure séparation entre eux, ou lorsque chacun doit travailler avec une instance SQL Server différente.
Un service de capture de données modifiées Oracle est créé à l’aide de la console de configuration du service de capture de données modifiées Oracle ou est défini via l’interface de ligne de commande intégrée au programme xdbcdcsvc.exe. Dans les deux cas, chaque service CDC Oracle créé est associé à une seule instance SQL Server (qui peut être en cluster ou en miroir avec la configuration Always On) et les informations de connexion (chaîne de connexion et informations d’identification d’accès) font partie de la configuration du service.
Lorsqu’un service de capture de données modifiées Oracle est démarré, il tente de se connecter à l’instance SQL Server associée, d’obtenir la liste des instances de capture de données modifiées Oracle dont il a besoin pour gérer et d’effectuer une validation initiale de l’environnement. Les erreurs lors du démarrage du service et toutes les informations de démarrage/arrêt sont toujours écrites dans le journal des événements de l’application Windows. Lorsqu’une connexion à SQL Server est établie, toutes les erreurs et tous les messages d’informations sont écrits dans la table dbo.xdbcdc_trace dans la base de données MSXDBCDC de l’instance SQL Server. L’une des vérifications effectuées au démarrage est de s'assurer qu’aucun autre Oracle CDC Service portant le même nom n'est en cours d'exécution. Si un service portant le même nom est actuellement connecté à partir d’un autre ordinateur, le service Oracle CDC entre dans une boucle d’attente, en attendant que l’autre service se déconnecte avant de continuer son travail.
Lorsque le service Oracle CDC passe toutes les vérifications de démarrage, il vérifie la table dbo.xdbcdc_databases dans la base de données MSXDBCDC pour les instances Oracle CDC activées. Pour chaque instance Oracle CDC activée, le service démarre un sous-processus pour gérer cette instance Oracle CDC.
Lorsqu’une instance de capture de données modifiées Oracle démarre, elle accède à la base de données CDC SQL Server portant le même nom que l’instance de capture de données modifiées et récupère son état à partir de l’exécution précédente. Il vérifie également que tout s’exécute correctement. Il reprend ensuite le traitement des modifications ; Lecture des journaux des transactions Oracle et écriture de modifications dans la base de données CDC.
Le Service Oracle CDC surveille régulièrement la table dbo.xdbcdc_tables dans la base de données MSXDBCDC pour déterminer s'il y a eu des modifications des configurations dans l'une des configurations d'instance Oracle CDC. Si une modification est trouvée, le service Oracle CDC notifie l'instance Oracle CDC qu'elle doit vérifier sa configuration pour détecter les modifications. La plupart des modifications de configuration, telles que l’ajout et la suppression d’instances de capture, peuvent être appliquées pendant que l’instance Oracle CDC est activée, d’autres nécessitent le redémarrage de l’instance de capture de données modifiées Oracle.
Lorsque vous utilisez la console Oracle CDC Designer, les modifications sont automatiquement détectées. Lors de la mise à jour de la configuration de capture de données modifiées Oracle directement à l’aide de SQL, la procédure suivante doit être appelée pour que le service de capture de données modifiées Oracle remarque la modification de la configuration :
DECLARE @dbname nvarchar(128) = 'HRcdc'
EXECUTE [MSXDBCDC].[dbo].[xdbcdc_update_config_version] @dbname
GO
Le processus d'instance Oracle CDC met à jour son état dans la table système cdc.xdbcdc_state et écrit des informations d'erreur dans la table cdc.xdbcdc_trace. La table xdbcdc_state est utile pour surveiller l’état de l’instance de capture de données modifiées Oracle. Il fournit un statut à jour, différents compteurs (tels que le nombre de modifications lues à partir d’Oracle, le nombre de modifications écrites dans SQL Server, le nombre de transactions validées écrites et le nombre actuel de transactions en cours de traitement) et l'indication de la latence.
La configuration de l’instance de capture de données modifiées Oracle est enregistrée dans la table cdc.xdbcdc_config , qui est la table avec laquelle la console du Concepteur de capture de données modifiées Oracle fonctionne. Étant donné que l’intégralité de la configuration d'une instance Oracle CDC se trouve dans l’instance cible de SQL Server et les bases de données CDC, il est possible de créer des scripts de déploiement SQL Server pour une instance Oracle CDC. Cette opération s’effectue à l’aide des consoles de configuration du service Oracle CDC et du concepteur Oracle CDC.
Considérations relatives à la sécurité
Le code suivant décrit les exigences de sécurité nécessaires pour utiliser le service cdc pour Oracle.
Protection des sources de données Oracle
Le service de capture de données modifiées Oracle ne nécessite pas d’accès aux données sources Oracle et est protégé en veillant à ce que les identifiants d’accès pour l'exploration de journaux n’accordent pas l’autorisation SELECT sur les tables des clients Oracle.
Protection des données de changement source Oracle
Le service CDC Oracle est fourni avec des informations d'identification pour l'exploration des journaux qui permettent au service de capturer les modifications sur n'importe quelle table de la base de données Oracle. Les données modifiées ne disposent pas des autorisations d’accès granulaires dont disposent les tables régulières. Par conséquent, l’accès aux données modifiées contourne les contrôles d’accès aux données Oracle intégrés.
Les tables Oracle sources capturées ont des tables miroir vides avec le même schéma et le même nom de table dans la base de données CDC. Les données capturées sont stockées dans des instances de capture SQL Server et offrent la même protection que celle fournie pour les modifications capturées à partir de la base de données SQL Server. Pour accéder aux données modifiées associées à une instance de capture, l’utilisateur doit disposer d’un accès sélectionné à toutes les colonnes capturées de la table miroir associée. En outre, si un rôle de filtrage est spécifié lors de la création de l’instance de capture, l’appelant doit également être membre du rôle de filtrage spécifié. D’autres fonctions de capture de données modifiées générales permettant d’accéder aux métadonnées sont accessibles à tous les utilisateurs de la base de données par le biais du rôle public, bien que l’accès aux métadonnées retournées soit généralement contrôlé à l’aide d’un accès sélectionné aux tables sources sous-jacentes et par l’appartenance à des rôles de gestion définis.
Cela signifie que les utilisateurs disposant du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner disposent (par défaut) d’un accès total aux données capturées, et un accès supplémentaire peut être accordé via des rôles de gestion ou en accordant l’accès sélectionné aux colonnes capturées.
Protection des informations d'identification pour l'analyse des journaux d'Oracle source
La configuration du service de CDC d'Oracle, stockée dans la base de données CDC (dans la table cdc.xdbcdc_config), inclut le nom d'utilisateur pour l'exploration des journaux et le mot de passe associé.
Le mot de passe d’exploration de journaux est stocké de manière chiffrée au moyen d'une clé asymétrique dont le nom fixe est xdbcdc_asym_key, créée automatiquement avec la commande suivante :
USE [<cdc-database-name>]
CREATE ASYMMETRIC KEY xdbcdc_asym_key
WITH ALGORITHM = RSA_1024
ENCRYPTION BY PASSWORD = '<cdc-database-name><asym-key-password>'
Si un autre algorithme est utilisé, cette clé peut être supprimée et une nouvelle par le même nom et chiffrée par le même mot de passe peut être créée.
Le mot de passe de clé asymétrique est le mot de passe principal enregistré dans le Registre sous le chemin HKLM\Software\Microsoft\XDBCDCSVC\\<service-name>. Cette clé est accessible uniquement aux administrateurs locaux et au compte de service Oracle CDC Windows. La clé contient une valeur binaire chiffrée AsymmetricKeyPassword qui a stocké le mot de passe de clé asymétrique. L’accès à cette clé de Registre est nécessaire pour pouvoir accéder aux identifiants de minage de journaux Oracle.
Pour utiliser la clause ENCRYPTION BY PASSWORD, le mot de passe doit répondre aux exigences de stratégie de mot de passe Windows pour l’ordinateur exécutant l’instance SQL Server. Pour ce faire, sélectionnez le mot de passe de clé asymétrique en fonction de cette stratégie.
Si le mot de passe de clé asymétrique est perdu, les informations d'identification pour l'exploration des journaux de chaque instance Oracle CDC doivent être spécifiées de nouveau dans le concepteur Oracle CDC Service.
La clé asymétrique est créée automatiquement dans la base de données CDC lorsque le service CDC détecte une base de données cdc d’instance Oracle qui n’a pas cette clé asymétrique ou lorsque la clé existe, mais que le mot de passe ne correspond pas.
Compte de service Windows du service de capture de données modifiées (CDC) d'Oracle
Le compte de service utilisé avec le service Windows Oracle CDC ne nécessite pas de privilèges supplémentaires. Ce compte doit pouvoir utiliser à la fois l’API Oracle Native Client et l’API ODBC SQL Server Native Client. Il doit également être en mesure d’accéder à la clé de configuration du service dans le Registre (cette console de configuration du service CDC configure la liste de contrôle d’accès pour cela).
Dans cette section
Autorisations requises pour la connexion SQL Server pour le service CDC
Utilisation du service de capture de données modifiées Oracle
Voir aussi
Guide pratique pour gérer un service cdc local
Gérer un service de capture de données modifiées Oracle