IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Réplication: empêcher totalement certaines bases ?


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Par défaut Réplication: empêcher totalement certaines bases ?
    Bonjour,

    Je suis en train de mettre en place une réplication entre un serveur MySQL 5 Windows et un client MySQL 5 Linux.

    Apparement pour éviter des erreurs durant la réplication il faut que la structure de l'intégralité des bases du serveur à répliquer se retrouve côté client.

    En me servant de binlog-do-db et binlog-ignore-db, en ne voulant répliquer qu'une base, il y a tout de même des risques de répliquer les autres bases si les actions se déroulent en dehors de ces bases.

    Ex:

    Je voudrais répliquer uniquement la base Ma_Base.

    Si j'ai binlog-ignore-db = Autre_Base

    use Autre_Base;
    INSERT INTO ma_table ...
    ne sera pas répliquée.

    Par contre :

    use mysql;
    INSERT INTO Autre_Base.ma_table ...
    sera répliqué.

    Sauriez-vous comment empêcher complétement la réplication de certaines bases et/ou autoriser seulement tel ou tel base (quitte à mettre les bases read only si possible côté client) ?

    En vous remerciant,

    C. Tobini

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Par défaut
    salut


    c'est en excluant les tables du côté slave avec les instructions

    replicate-wild-do-db
    replicate-wild-do-table
    replicate-wild-ignore-db
    replicate-wild-ignore-table


    comme expliqué ICI

    si tu as des tables communes à plusieurs bases tu peux utiliser le joker % ex

    replicate-wild-do-db=nombase.%
    ou
    replicate-wild-do-table=%.nomtable

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Par défaut
    Bonjour et merci de la réponse,

    Il me semble que 'replicate' côté client est la même chose que 'binlog' côté serveur, les wildcards (replicate-wild-ignore-table) que vous m'indiquez n'étant utilisés que comme wildcards et n'ont aucun pouvoir sur la nécessité de d'agir sur bases courantes.

    Ce que je voudrais c'est que les bases ignorées le soient qu'elles soient actives ou pas.

    Ex:

    1.
    use ma_base
    action sur tel_table
    => réplication

    2.
    use mysql
    action sur ma_base.tel_table
    => réplication aussi (impossible avec do-db et ignore-db, nécessitant d'être dans le cas 1.)

    C. Tobini

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Par défaut
    salut.


    J'ai trouvé une source en français. Je pense que vous allez comprendre.


    replicate-wild-do-table=db_name.table_name Restreint la réplication à certaines tables qui vérifient le masque d'expression régulière indiqué. Pour spécifier plus d'une table, vous pouvez utiliser cette directive plusieurs fois, une pour chaque table. Cette option va fonctionner pour les modifications inter-bases.

    Example: replicate-wild-do-table=foo%.bar% va répliquer uniquement les modifications qui utilisent une table dont le nom de base commence par foo , et le nom de table commence par bar .
    replicate-wild-ignore-table=db_name.table_name Interdit la réplication à certaines tables qui vérifient le masque d'expression régulière indiqué. Pour spécifier plus d'une table, vous pouvez utiliser cette directive plusieurs fois, une pour chaque table. Cette option va fonctionner pour les modifications inter-bases.



    SOURCES

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/04/2008, 16h48
  2. Réplication: interférence de 2 bases
    Par ctobini dans le forum Administration
    Réponses: 2
    Dernier message: 31/07/2007, 14h39
  3. Réplication depuis une autre base
    Par lito74 dans le forum Access
    Réponses: 3
    Dernier message: 19/01/2007, 15h05
  4. réplication à partir d'une base de données heterogène
    Par elbennaoui dans le forum Réplications
    Réponses: 1
    Dernier message: 16/11/2005, 16h05
  5. réplication à partir d'une base de données heterogène
    Par elbennaoui dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/11/2005, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo