Paramètres et conditions du journal des transactions

Découvrez comment préparer la base de données MySQL et les variantes prises en charge pour Oracle GoldenGate, y compris le paramètre de journalisation binaire requis et les variables de serveur de base de données.

Configurer les propriétés de journalisation

Oracle GoldenGate s'appuie sur les journaux binaires MySQL pour stocker les données dont il a besoin pour répliquer les transactions source. Les journaux binaires sur le système source doivent être configurés correctement avant de démarrer le traitement Oracle GoldenGate.

Cette section traite des options de démarrage de journal binaire et des variables système suivantes qui s'appliquent à Oracle GoldenGate pour MySQL.

Options de journalisation Valeurs Fonction Exigences
binlog_annotate_row_events ON, OFF Variable système qui indique au serveur principal d'écrire ces événements dans le journal binaire. Requis pour MariaDB et Oracle GoldenGate 23.8 et versions antérieures. OFF
binlog_expire_logs_seconds 0 - 4294967295 Lorsque cette option est prise en charge, cette variable système définit la période d'expiration du journal binaire, en secondes. La valeur recommandée est : >=86400
binlog_format ROW, STATEMENT, MIXED Variable système qui définit le format de journalisation binaire.

Obligatoire lorsque MySQL est utilisé comme base de données source. Si la valeur est définie sur MIXED ou STATEMENT, seules les transactions de niveau ROW seront capturées.

ROW

binlog retention hours 1 - 168 Si elle est prise en charge, cette variable système définit la période d'expiration du journal binaire, en heures. La valeur recommandée est : >=24
binlog_row_image FULL, MINIMAL, NOBLOB Variable système qui définit différents niveaux de journalisation au niveau de la colonne dans le journal binaire.

Obligatoire lorsque MySQL est utilisé comme base de données source.

FULL

binlog_row_metadata FULL, MINIMAL Variable système qui configure la quantité de métadonnées ajoutées au journal binaire pour la journalisation basée sur les lignes.

Requis lorsque la version MySQL 8.0 ou supérieure est utilisée comme base de données source pour la prise en charge des instructions LDD.

FULL

event_scheduler ON, OFF Variable système qui permet la création de travaux de mise à jour et de purge du signal d'activité.

Obligatoire si la fonctionnalité de signal d'activité d'Oracle GoldenGate est implémentée.

ON

log_bin ON, OFF Variable système qui indique le statut de la journalisation binaire. Obligatoire lorsque MySQL est utilisé comme base de données source. If not already ON, set by assigning a name, such as log-bin=binlog.
log_replica_updates ON, OFF Variable système qui consigne les mises à jour dans le journal binaire du serveur secondaire lorsqu'elles sont reçues d'un serveur principal.

Requis lorsque MySQL est utilisé comme base de données source et est configuré pour effectuer une capture à partir d'un serveur de répliques.

ON

server_id 0 - 4294967295 Variable système requise pour être spécifiée lorsque la journalisation binaire est activée. Pour une réplique principale de réplication et chaque réplique de réplication, assurez-vous que les valeurs sont >0 et uniques.

Obligatoire lorsque MySQL est utilisé comme base de données source.

>=1

Vérifier la journalisation au niveau de la base de données

Afin de vérifier les paramètres de journalisation binaire actuels de la base de données requis pour prendre en charge Oracle GoldenGate Capture pour la base de données MySQL, exécutez les requêtes suivantes. Si les paramètres doivent être modifiés, suivez les instructions sous Activer la journalisation au niveau de la base de données.

  1. Connectez-vous à MySQL en tant que compte d'administrateur de service de base de données root ou affecté.

    [root@srcdbserver ~]$ mysql -uroot -p
  2. Exécutez la commande suivante pour déterminer si la base de données est activée pour la journalisation binaire. Si le résultat est ON, le journal binaire de la base de données est activé.

    show variables like 'log_bin';
  3. Exécutez les commandes suivantes pour déterminer si la base de données est activée avec les bons paramètres de journal binaire et server_id. Assurez-vous que la valeur binlog_format est définie sur ROW, que binlog_row_image et binlog_row_metadata sont définies sur FULL et que la variable server_id est définie sur >=1 et qu'elles sont uniques pour une réplique principale et toutes les répliques.

    show variables like 'binlog_%';
    show variables like 'server_id';
  4. Répétez le processus pour interroger les variables pour les autres options répertoriées dans Configuration des propriétés de journalisation, en fonction de vos besoins, tels que la prise en charge des instructions LDD et MariaDB.

Activer la journalisation au niveau base de données

Si nécessaire, procédez comme suit pour activer les paramètres de journalisation binaire de base de données requis pour prendre en charge Oracle GoldenGate Capture pour une base de données MySQL. Modifiez uniquement les paramètres qui doivent être activés ou modifiés, en fonction des résultats de Vérification de la journalisation au niveau de la base de données.

  1. Modifiez le fichier de configuration MySQL, my.cnf pour Linux ou my.ini pour Windows, afin d'activer les variables système requises pour prendre en charge la capture Oracle GoldenGate pour MySQL.

    [root@srcdbserver ~]$ vi /etc/my.cnf
  2. Pour activer le journal binaire, ajoutez une entrée au fichier de configuration, comme suit, à l'aide d'une valeur de connexion de votre préférence.

    log-bin=*binlog*
  3. Pour définir le format de journalisation binaire et les variables server_id corrects, définissez les éléments suivants :

    binlog-format=ROW
    binlog-row-image=FULL
    
    #For MySQL 8.0 and above, for DDL support
    binlog-row-metadata=FULL
    
    #Set to value > 0 and <= 4294967295
    server-id=1
  4. Ajoutez des variables supplémentaires pour les autres options répertoriées dans Configuration des propriétés de journalisation, en fonction de vos exigences, telles que la prise en charge des instructions LDD et MariaDB.

  5. Enregistrez et fermez le fichier.

  6. Redémarrez la base de données pour que les paramètres prennent effet.

    [root@srcdbserver ~]$ service mysqld restart
  7. Vérifiez le statut du service de base de données à l'aide de la commande suivante :

    [root@srcdbserver ~]$ service mysqld status

Modification de variables système pour les services Amazon et Azure MySQL Database

Pour configurer les bases de données Amazon et Azure MySQL pour la fonctionnalité d'extraction et de signal d'activité Oracle GoldenGate, les modifications requises doivent être effectuées à l'aide des groupes de paramètres, de la création ou de la modification de base de données ou des paramètres de serveur, s'ils ne sont pas déjà définis sur les valeurs requises. Suivez les instructions suivantes pour modifier ces variables système :

  1. Pour activer la journalisation binaire dans Amazon, vous devez activer les sauvegardes de la base de données. Dans le cas contraire, la variable log_bin indique OFF et le processus Extract abandonne, indiquant qu'il ne peut pas extraire la liste des fichiers binlog.

    Activer les sauvegardes lors de la création de la base de données ou en modifiant une base de données existante pour inclure un régiment de sauvegarde.

  2. Pour les bases de données Amazon MySQL, définissez la variable binglog_format sur ROW, la variable binlog_row_image sur FULL, la variable event_scheduler sur ON si vous implémentez la fonctionnalité de signal d'activité Oracle GoldenGate, et définissez la variable binlog_row_metadata sur FULL si vous activez la prise en charge de la capture LDD.

    Suivez les instructions fournies par Amazon pour créer ou modifier un groupe de paramètres existant afin d'effectuer ces modifications.

    https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/

  3. Pour les bases de données Azure MySQL, définissez la variable binlog_format sur ROW et la variable binlog_row_image sur FULL. Suivez les instructions fournies par Microsoft pour modifier les paramètres serveur de l'instance de base de données.

    https://docs.microsoft.com/en-us/azure/mysql/howto-server-parameters

Garantir la disponibilité des données

Conservez suffisamment de données de journal binaires pour que si vous arrêtez le processus Extract ou qu'il y a une interruption non planifiée, le processus Extract puisse recommencer à partir de ses points de reprise. Le processus Extract doit avoir accès au journal binaire qui contient le début de la plus ancienne unité de travail non validée, puis à tous les journaux binaires. La période de conservation recommandée est d'au moins 24 heures pour les données de transaction, y compris les informations actives et archivées. Vous devrez peut-être effectuer des tests pour déterminer le meilleur délai de conservation en fonction du volume de données et des besoins métier.

Si les données dont l'extraction a besoin pendant le traitement n'ont pas été conservées, que ce soit dans les journaux actifs ou de sauvegarde, l'une des actions correctives suivantes peut être requise :

La conservation des données de journal binaires peut être augmentée avec différentes mesures en fonction de la base de données ou de la variante MySQL.

Capture sur une réplique de réplication MySQL

Vous pouvez configurer Oracle GoldenGate pour la capture à partir d'une réplique de réplication MySQL.

En général, les transactions appliquées à la réplique sont journalisées dans les journaux de relais et non dans le fichier binlog de la réplique. Pour que la réplique écrive les transactions qu'elle reçoit de la base de données principale dans son fichier binlog, vous devez démarrer la réplique de réplication avec l'option log_replica_updates 1 dans my.cnf en conjonction avec les autres paramètres de journalisation binaire pour Oracle GoldenGate. Une fois que les transactions de la base principale se trouvent dans le fichier binlog de la réplique, vous pouvez configurer une extraction Oracle GoldenGate standard sur la réplique pour commencer la capture.