Configuration des filtres de réplication avec MariaDB - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des filtres de réplication avec MariaDB

Vous pouvez utiliser des filtres de réplication pour spécifier quelles bases de données et tables sont répliquées avec un réplica en lecture. Les filtres de réplication peuvent inclure des bases de données et des tables dans la réplication ou les exclure de la réplication.

Voici quelques cas d'utilisation pour les filtres de réplication :

  • Pour réduire la taille d'un réplica en lecture. Avec le filtrage de réplication, vous pouvez exclure les bases de données et les tables qui ne sont pas nécessaires sur le réplica en lecture.

  • Pour exclure des bases de données et des tables des réplicas en lecture, pour des raisons de sécurité.

  • Pour répliquer différentes bases de données et tables pour des cas d'utilisation spécifiques au niveau de différents réplicas en lecture. Par exemple, vous pouvez utiliser des réplicas en lecture spécifiques pour l'analyse ou le partage.

  • Pour une instance de base de données qui a lu des répliques dans différents Régions AWS, pour répliquer différentes bases de données ou tables dans différentes Régions AWS.

Note

Vous pouvez également utiliser des filtres de réplication pour spécifier quelles bases de données et tables sont répliquées avec une instance de base de données MariaDB principale configurée en tant que réplica dans une topologie de réplication entrante. Pour en savoir plus sur cette configuration, consultez Configuration d'une réplication de position de fichier journal binaire avec une instance source externe.

Définition des paramètres de filtrage de réplication RDS pour MariaDB

Pour configurer des filtres de réplication, définissez les paramètres de filtrage de réplication suivants sur le réplica en lecture :

  • replicate-do-db – Répliquer les modifications apportées aux bases de données spécifiées. Lorsque vous définissez ce paramètre pour un réplica en lecture, seules les bases de données spécifiées dans le paramètre sont répliquées.

  • replicate-ignore-db – Ne pas répliquer les modifications apportées aux bases de données spécifiées. Lorsque le paramètre replicate-do-db est défini pour un réplica en lecture, ce paramètre n'est pas évalué.

  • replicate-do-table – Répliquer les modifications apportées aux tables spécifiées. Lorsque vous définissez ce paramètre pour un réplica en lecture, seules les tables spécifiées dans le paramètre sont répliquées. En outre, lorsque le paramètre replicate-do-db ou replicate-ignore-db est défini, la base de données qui inclut les tables spécifiées doit être incluse dans la réplication avec le réplica en lecture.

  • replicate-ignore-table – Ne pas répliquer les modifications apportées aux tables spécifiées. Lorsque le paramètre replicate-do-table est défini pour un réplica en lecture, ce paramètre n'est pas évalué.

  • replicate-wild-do-table – Répliquer les tables en fonction des modèles de nom de base de données et nom de table spécifiés. Les caractères génériques % et _ sont pris en charge. Lorsque le paramètre replicate-do-db ou replicate-ignore-db est défini, assurez-vous d'inclure la base de données qui comprend les tables spécifiées dans la réplication avec le réplica en lecture.

  • replicate-wild-ignore-table – Ne pas répliquer les tables en fonction des modèles de nom de base de données et de nom de table spécifiés. Les caractères génériques % et _ sont pris en charge. Lorsque le paramètre replicate-do-table ou replicate-wild-do-table est défini pour un réplica en lecture, ce paramètre n'est pas évalué.

Les paramètres sont évalués dans l'ordre dans lequel ils sont répertoriés. Pour plus d'informations sur le fonctionnement de ces paramètres, consultez la documentation de MariaDB.

Par défaut, chacun de ces paramètres a une valeur vide. Sur chaque réplica en lecture, vous pouvez utiliser ces paramètres pour définir, modifier et supprimer des filtres de réplication. Lorsque vous définissez l'un de ces paramètres, séparez chaque filtre des autres par une virgule.

Vous pouvez utiliser les caractères génériques % et _ dans les paramètres replicate-wild-do-table et replicate-wild-ignore-table. Le caractère générique % correspond à un nombre quelconque de caractères, et le caractère générique _ ne correspond qu'à un seul caractère.

Le format de journalisation binaire de l'instance de base de données source est important pour la réplication, car il détermine l'enregistrement des modifications de données. Le réglage du paramètre binlog_format détermine si la réplication est basée sur les lignes ou les instructions. Pour de plus amples informations, veuillez consulter Configuration de la journalisation binaire MariaDB.

Note

Toutes les instructions du langage de définition de données (DDL) sont répliquées sous forme d'instructions, quel que soit le binlog_format paramètre de l'instance de base de données source.

Limitations du filtrage de réplication RDS pour MariaDB

Les limites suivantes s'appliquent au filtrage de réplication RDS pour MariaDB :

  • Chaque paramètre de filtrage de réplication a une limite de 2 000 caractères.

  • Les virgules ne sont pas prises en charge dans les filtres de réplication.

  • Les options binlog_do_db et binlog_ignore_db de MariaDB pour le filtrage des journaux binaires ne sont pas prises en charge.

  • Le filtrage de réplication ne prend pas en charge les transactions XA.

    Pour plus d'informations, consultez la section Restrictions relatives aux transactions XA dans la section Ma SQL documentation.

  • Le filtrage de réplication n'est pas pris en charge RDS pour MariaDB version 10.2.

Exemples de filtrage de réplication RDS pour MariaDB

Pour configurer le filtrage de réplication pour un réplica en lecture, modifiez les paramètres de filtrage de réplication dans le groupe de paramètres associé au réplica en lecture.

Note

Vous ne pouvez pas modifier un groupe de paramètres par défaut. Si le réplica en lecture utilise un groupe de paramètres par défaut, créez un nouveau groupe de paramètres et associez-le au réplica en lecture. Pour plus d'informations sur les groupes de paramètres de base de données, consultez Groupes de paramètres pour (Amazon RDS).

Vous pouvez définir les paramètres d'un groupe de paramètres à l'aide du AWS Management Console, AWS CLI, ou RDSAPI. Pour plus d'informations sur la définition des paramètres, consultez Modification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS ( Aurora). Lorsque vous définissez des paramètres dans un groupe de paramètres, toutes les instances de base de données associées au groupe de paramètres utilisent les réglages des paramètres. Si vous définissez les paramètres de filtrage de réplication dans un groupe de paramètres, assurez-vous que le groupe de paramètres est associé uniquement aux réplicas en lecture. Laissez les paramètres de filtrage de réplication vides pour les instances de base de données source.

Les exemples suivants définissent les paramètres à l'aide du AWS CLI. Ces exemples sont définis ApplyMethod de immediate telle sorte que les modifications de paramètres se produisent immédiatement après la fin de la CLI commande. Si vous souhaitez qu'une modification en attente soit appliquée après le redémarrage du réplica en lecture, définissez ApplyMethod sur pending-reboot.

Les exemples suivants définissent des filtres de réplication :

Exemple Inclusion de bases de données dans la réplication

L'exemple suivant inclut les bases de données mydb1 et mydb2 dans la réplication. Lorsque vous définissez replicate-do-db pour un réplica en lecture, seules les bases de données spécifiées dans le paramètre sont répliquées.

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myparametergroup ^ --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
Exemple Inclusion de tables dans la réplication

L'exemple suivant inclut les tables table1 et table2 dans la base de données mydb1 dans la réplication.

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myparametergroup ^ --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
Exemple Inclusion de tables dans la réplication à l'aide de caractères génériques

L'exemple suivant inclut des tables dont les noms commencent par orders et returns dans la base de données mydb dans la réplication.

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myparametergroup ^ --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
Exemple Échappement de caractères génériques dans les noms

L'exemple suivant montre comment utiliser le caractère d'échappement \ pour échapper à un caractère générique faisant partie d'un nom.

Supposons que vous avez plusieurs noms de tables dans la base de données mydb1 qui commencent par my_table, et que vous souhaitez inclure ces tables dans la réplication. Les noms de table incluent un trait de soulignement, qui est également un caractère générique, de sorte que l'exemple échappe le trait de soulignement dans les noms de table.

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myparametergroup ^ --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
Exemple Exclusion de bases de données de la réplication

L'exemple suivant exclut les bases de données mydb1 et mydb2 de la réplication.

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myparametergroup ^ --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
Exemple Exclusion de tables de la réplication

L'exemple suivant exclut les tables table1 et table2 dans la base de données mydb1 de la réplication.

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "[{"ParameterName": "replicate-ignore-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myparametergroup ^ --parameters "[{"ParameterName": "replicate-ignore-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
Exemple Exclusion de tables de la réplication à l'aide des caractères génériques

L'exemple suivant exclut de la réplication les tables dont les noms commencent par orders et returns dans la base de données mydb.

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "[{"ParameterName": "replicate-wild-ignore-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myparametergroup ^ --parameters "[{"ParameterName": "replicate-wild-ignore-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"

Affichage des filtres de réplication pour un réplica en lecture

Vous pouvez afficher les filtres de réplication pour un réplica en lecture de la manière suivante :

  • Vérifiez les réglages des paramètres de filtrage de réplication dans le groupe de paramètres associé au réplica en lecture.

    Pour obtenir des instructions, consultez Affichage des valeurs de paramètres pour un groupe de paramètres de base de données dans RDSAmazon.

  • Dans un client MariaDB, connectez-vous au réplica en lecture et exécutez l'instruction SHOW REPLICA STATUS.

    Dans la sortie, les champs suivants affichent les filtres de réplication pour le réplica en lecture :

    • Replicate_Do_DB

    • Replicate_Ignore_DB

    • Replicate_Do_Table

    • Replicate_Ignore_Table

    • Replicate_Wild_Do_Table

    • Replicate_Wild_Ignore_Table

    Pour plus d'informations sur ces champs, consultez la section Vérification de l'état de réplication dans la section Ma SQL documentation.

    Note

    Les versions précédentes de MariaDB utilisaient SHOW SLAVE STATUS à la place de SHOW REPLICA STATUS. Si vous utilisez une version de MariaDB antérieure à la version 10.5, utilisez alors SHOW SLAVE STATUS.