Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/07/2007, 14h47   #1
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
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
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 17h57   #2
Membre éclairé
 
Inscription : février 2005
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 349
Points : 358
Points : 358
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
overider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 14h25   #3
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
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
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 19h24   #4
Membre éclairé
 
Inscription : février 2005
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 349
Points : 358
Points : 358
salut.


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


Citation:
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
overider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h23.


 
 
 
 
Partenaires

Hébergement Web