Préparer la base de donnée pour Oracle GoldenGate

Découvrez comment activer la journalisation supplémentaire dans les tables de base de données source qui doivent être utilisées pour la capture par le processus Extract for SQL Server et comment purger les anciennes données intermédiaires du CDC.

Pour en savoir plus sur CDC Capture, procédez comme suit :

Utilisation de la réplication de capture CDC Oracle GoldenGate for SQL Server http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/goldengate/12c/sql_cdcrep/sql_cdcrep.html.

Activation de la journalisation supplémentaire CDC

Avec l'extraction CDC, la méthode de capture des données de modification s'effectue via les tables de capture des données de modification SQL Server. Il est donc impératif de suivre les procédures et les exigences ci-dessous afin que les données de modification soient correctement activées, gérées et capturées par l'extraction.

Vous allez activer la journalisation supplémentaire à l'aide de la commande ADD TRANDATA afin que le processus Extract puisse capturer les informations requises pour reconstruire les transactions.

ADD TRANDATA doit être émis pour toutes les tables qui doivent être capturées par Oracle GoldenGate. Pour ce faire, un schéma valide doit être utilisé afin de créer les tables et procédures stockées Oracle GoldenGate nécessaires.

L'activation de la journalisation supplémentaire pour une extraction CDC effectue les opérations suivantes :

Pour activer la journalisation supplémentaire à l'aide de l'interface de ligne de commande, procédez comme suit :

  1. Consultez la rubrique Prepare Database Users and Privileges afin de déterminer les privilèges et les étapes requis pour activer la base de données pour la capture des modifications de données, si elle n'est pas déjà définie. Des droits d'accès élevés peuvent être nécessaires pour GoldenGate si la base de données n'est pas activée pour le CDC, mais peuvent être annulés en demandant à un administrateur d'activer manuellement la base de données pour la capture des données de modification.

    • Pour Google Cloud SQL for SQL Server , la base de données doit être activée manuellement pour la capture des données de modification par un administrateur de service et exécuter la commande suivante :

      EXEC msdb.dbo.gcloudsql_cdc_enable_db 'source_database';

    • Pour SQL Server et Azure SQL Managed Instance, l'ajout de TRANDATA tente de définir la base de données pour la capture de données de modification si l'utilisateur dispose de privilèges sysadmin. Sinon, un administrateur de base de données peut activer manuellement la base de données pour le CDC avant d'ajouter TRANDATA, en exécutant la commande suivante sur la base de données source :

      EXEC sys.sp_cdc_enable_db;

    • Pour Amazon RDS for SQL Server, l'ajout de TRANDATA tente également de définir la base de données pour la capture de données de modification si l'utilisateur a obtenu le droit d'accès, sinon un administrateur de base de données avec des informations d'identification maître peut activer manuellement la base de données pour le CDC avant d'ajouter TRANDATA, en exécutant la commande suivante sur la base de données source :

      EXEC msdb.dbo.rds_cdc_enable_db 'source_database'

  2. Dans l'installation Oracle GoldenGate source, assurez-vous que le fichier GLOBALS a le paramètre GGSCHEMA schemaname et que le nom de schéma utilisé a été créé (CREATE SCHEMA schemaname) dans la base de données source. Ce schéma sera utilisé par tous les composants Oracle GoldenGate suivants créés dans la base de données. Par conséquent, il est recommandé de créer un schéma unique utilisé uniquement par Oracle GoldenGate, tel que 'ggschema' et de ne pas utiliser les schémas SQL Server dbo ou cdc.

  3. Sur le système Oracle GoldenGate source, ouvrez l'interface de ligne de commande (Admin Client).

  4. Connectez-vous à la base de données avec les informations d'identification de connexion à la base de données.

  5. Exécutez la commande suivante pour chaque table qui doit être capturée par une extraction. Vous pouvez utiliser un caractère générique pour indiquer plusieurs noms de table.

    ADD TRANDATA owner.table

    ADD TRANDATA owner.*

    Vous pouvez éventuellement désigner le groupe d'éléments dans lequel placer les tables intermédiaires SQL Server Change Data Capture, en utilisant l'option FILEGROUP avec un nom de groupe d'éléments de fichier existant.

    ADD TRANDATA owner.table FILEGROUP cdctablesSee ADD TRANDATA

Pour plus d'informations, reportez-vous à ADD TRANDATA.

Purger les données d'import CDC

Lors de l'activation de la journalisation supplémentaire, les données requises par le processus Extract pour reconstruire les transactions sont stockées dans une série de tables système CDC SQL Server, ainsi que dans les objets Oracle GoldenGate utilisés pour suivre l'ordre des opérations au sein d'une transaction. Ces tables nécessitent une purge de routine afin de réduire le stockage des données dans la base. Dans le cadre de l'activation de la journalisation supplémentaire à l'aide de TRANDATA, SQL Server crée son propre travail de nettoyage de capture des données de modification. Cependant, ce travail ne sait pas qu'une extraction peut toujours nécessiter des données de ces tables système CDC et peut supprimer ces données avant que l'extraction ne puisse les capturer.

Si les données dont l'extraction a besoin au cours du traitement ont été supprimées des tables système CDC, l'une des actions correctives suivantes peut être requise :

Pour remédier à la situation de suppression des données CDC avant qu'une extraction ne puisse les traiter, Oracle GoldenGate for SQL Server requiert la création d'une tâche Purger les données de modification. Cette tâche purge les données d'import CDC tout en s'assurant qu'aucune donnée n'est purgée et que l'extraction n'a pas encore été traitée.

Procédez comme suit immédiatement après avoir activé la journalisation supplémentaire (TRANDATA) et avant de démarrer l'extraction, pour créer la tâche Purger les données de modification d'Oracle GoldenGate. La tâche Purger les données de modification s'exécute dans le service d'administration et supprime automatiquement le travail de nettoyage CDC SQL Server lors de sa création. Il n'existe aucun travail d'agent SQL Server pour la tâche Purger les données de modification car elle est exécutée par le service d'administration. Le service d'administration doit donc être en cours d'exécution pour que la tâche de nettoyage fonctionne correctement.

Pour créer une tâche Purger les données de modification :

Avec l'architecture Oracle GoldenGate for Microservices, après avoir ajouté TRANDATA aux tables, mais avant de démarrer l'extraction, une tâche Purger les données de modification doit être créée pour effectuer le nettoyage du CDC sur la base de données. Pour ce faire, vous pouvez effectuer l'une des opérations suivantes :

Pour créer une tâche Purger les données de modification à l'aide de l'interface utilisateur Web du service d'administration : 1. Développez la section Tâches dans le panneau de gauche.

  1. Cliquez sur Purger les données de modification sur la page Tâches.

  2. Cliquez sur le signe plus pour afficher un formulaire et renseignez les champs requis pour créer une tâche Purger les données de modification.

    1. Nom de l'opération : nom de la tâche de purge à créer.

    2. Activé : définissez la tâche sur Activé, qui est la valeur par défaut.

    3. Domaine d'informations d'identification et alias d'informations d'identification : sélectionnez un alias d'informations d'identification existant pour la base de données source.

    4. Conserver la règle : cette valeur détermine, en heures ou en jours, la quantité de données de transfert CDC à conserver dans la base de données source. Selon la version d'Oracle GoldenGate, les valeurs par défaut sont 3 jours ou 1 heure. Les périodes de conservation des données CDC inférieures réduisent la quantité de données intermédiaires CDC stockées dans la base de données, mais limitent la possibilité pour un utilisateur de repositionner l'extraction à une date antérieure aux données qui existent dans les tables intermédiaires.

    5. Fréquence de purge : cette valeur représente la fréquence d'exécution de la tâche, avec une valeur par défaut toutes les 10 minutes. Il est recommandé de conserver la valeur par défaut, sauf si la surcharge liée à la tâche de purge a une incidence sur les performances de la base de données pendant les périodes d'activité utilisateur élevée. Remarque : créez une seule tâche Purger les données de modification par base de données source.

Vous trouverez des informations supplémentaires sur le travail de nettoyage du CDC Oracle GoldenGate dans Remarques opérationnelles sur la méthode de capture du CDC.

Activation de la détection de boucle bidirectionnelle

La détection de boucle est une exigence pour les implémentations bidirectionnelles d'Oracle GoldenGate, de sorte qu'une extraction pour une base de données source ne récupère pas les transactions envoyées par une réplication à partir d'une autre base de données source.

Par défaut, avec la méthode de capture d'extraction CDC, toute transaction validée par un processus Replicat dans une base de données dans laquelle un processus Extract est configuré, récupère cette transaction à partir du processus Replicat tant que la journalisation supplémentaire est activée pour les tables vers lesquelles le processus Replicat est transmis.

Pour ignorer les transactions de récupération qui sont appliquées par une réplication, vous devez utiliser le paramètre TRANLOGOPTIONS EXCLUDEFILTERTABLE pour l'extraction CDC. La table utilisée comme table de filtrage sera la table de points de reprise Oracle GoldenGate que vous devez créer pour le processus Replicat.

Pour créer une table de filtres et activer la journalisation supplémentaire, procédez comme suit :

Les étapes ci-dessous requièrent un utilisateur de base de données membre du rôle d'administrateur système SQL Server (sysadmin).

  1. Sur le système source, exécutez Admin Client.

  2. Connectez-vous au déploiement à partir du client Admin.

  3. Exécutez la commande suivante pour vous connecter à la base de données.

    DBLOGIN USERIDALIAS alias

  4. Créez la table de points de reprise Oracle GoldenGate utilisée par le processus Replicat pour transmettre les données à la base de données source.

    Exemple : ADD CHECKPOINTTABLE ogg.ggchkpt

    Il est recommandé d'utiliser le même nom de schéma que celui utilisé dans le paramètre GGSCHEMA du fichier GLOBALS.

  5. Activez la journalisation supplémentaire pour la table de points de reprise nouvellement créée.

    Exemple : ADD TRANDATA ogg.ggchkpt

  6. Ajoutez le processus Replicat avec les informations de la table de points de reprise.

    Exemple : ADD REPLICAT repe, EXTTRAIL north/ea,checkpointtable ogg.ggchkpt

  7. Configurez le processus Extract avec le paramètre EXCLUDEFILTERTABLE, à l'aide de la table de points de reprise du processus Replicat pour la table de filtrage.

    TRANLOGOPTIONS EXCLUDEFILTERTABLE ogg.ggchkpt