Par défaut, les logs de relais sont nommés en utilisant des
noms de la forme host_name-relay-bin.nnn
,
où host_name
est le nom de l'hôte serveur
esclave, et nnn
est un numéro de séquence.
Les fichiers de log de relais successifs sont créés en
utilisant une séquence de nombre commen¸ant à
001
. L'esclave garder la trace des logs avec
un fichier d'index. Le nom du fichier d'index des logs de relais
est host_name-relay-bin.index
. Par défaut,
ces fichiers sont créés dans le dossier de données de
l'esclave. Les noms par défaut peuvent être remplacés grâce
aux options --relay-log
et
--relay-log-index
du serveur. See
Section 6.8, « Options de démarrage de la réplication ».
Les logs de relais ont le même format que les logs binaires, et
ils peuvent être lus avec mysqlbinlog
. Un
log de relais est automatiquement effacé par le thread SQL
aussitôt qu'il n'en a plus besoin : c'est à dire aussitôt
qu'il en a exécuté les commandes. Il n'y a pas de commande
pour effacer les logs de relais, car le thread SQL se charge de
le faire. Toutefois, depuis MySQL 4.0.14, la commande
FLUSH LOGS
effectue la rotation des logs de
relais, qui influence leur effacement par le thread SQL.
Un nouveau log de relais est créé dans les conditions suivantes :
La première fois qu'un thread d'I/O démarre après le démarrage du serveur. Avec MySQL 5.0, un nouveau log de relais sera créé chaque fois que le thread d'I/O démarre, et pas seulement la première fois.
Une commande FLUSH LOGS
ou
mysqladmin flush-logs
est émise (MySQL
4.0.14 et plus récent uniquement).
La taille du log de relais courant est trop grosse. ``trop grosse'' signifie :
max_relay_log_size
, si
max_relay_log_size
> 0
max_binlog_size
, si
max_relay_log_size
= 0 ou si MySQL
est plus ancien que la version 4.0.14
Un serveur de réplication esclave crée deux autres petits
fichiers dans le dossier de données. Ces fichiers sont appelés
master.info
et
relay-log.info
par défaut. Ils contiennent
des informations comme celles affichées par la commande
SHOW SLAVE STATUS
(see
Section 13.6.2, « Commandes SQL de contrôle des esclaves de réplication » pour une description de
cette commande). En tant que fichier disques, ils survivent à
l'extinction de l'esclave. Au prochain démarrage de l'esclave,
ce dernier peut lire ces fichiers pour savoir où il en était
du traitement des événements du maître et de leur lecture.
Le fichier master.info
est modifié par le
thread d'I/O. Avant la version 4.1, la correspondance entre les
lignes du fichier et les colonnes affichées par SHOW
SLAVE STATUS
est la suivante :
Ligne | Description |
1 | Master_Log_File |
2 | Read_Master_Log_Pos |
3 | Master_Host |
4 | Master_User |
5 | Mot de passe (pas affiché par SHOW SLAVE STATUS ) |
6 | Master_Port |
7 | Connect_Retry |
Depuis MySQL 4.1, le fichier inclus un compteur de ligne et des informations sur les options SSL :
Line | Description |
1 | Nombre de lignes dans le fichier |
2 | Master_Log_File |
3 | Read_Master_Log_Pos |
4 | Master_Host |
5 | Master_User |
5 | Mot de passe (pas affiché par SHOW SLAVE STATUS ) |
7 | Master_Port |
8 | Connect_Retry |
9 | Master_SSL_Allowed |
10 | Master_SSL_CA_File |
11 | Master_SSL_CA_Path |
12 | Master_SSL_Cert |
13 | Master_SSL_Cipher |
14 | Master_SSL_Key |
Le fichier relay-log.info
est modifié par
le thread SQL. La correspondance entre les lignes du fichier et
les colonnes affichées par SHOW SLAVE STATUS
est la suivante :
Ligne | Description |
1 | Relay_Log_File |
2 | Relay_Log_Pos |
3 | Relay_Master_Log_File |
4 | Exec_Master_Log_Pos |
Lorsque vous sauvegardez les données de votre esclave, vous
devriez aussi sauver ces deux fichiers, ainsi que les logs de
relais. Ils ont nécessaires pour reprendre la réplication
après une restauration de la base. Si vous perdez les logs de
relais mais avez encore le fichier
relay-log.info
, vous pouvez l'étudier pour
déterminer ce que le thread SQL a traité des logs binaires du
maître. Puis, vous pouvez utiliser CHANGE MASTER
TO
avec les options
MASTER_RELAY_LOG
et
MASTER_RELAY_POS
pour dire au thread d'I/O de
relire les logs depuis ce point. Cela impose que ces logs sont
toujours disponibles sur le serveur.
Si votre esclave doit répliquer une commande LOAD DATA
INFILE
, vous devriez aussi sauver les fichiers
SQL_LOAD-*
qui existent dans le dossier que
l'esclave utilise à cette fin. L'esclave aura besoin de ces
fichiers pour reprendre la réplication des commandes
LOAD DATA INFILE
. Le chemin du dossier est
spécifié avec l'option --slave-load-tmpdir
.
Sa valeur par défaut est tmpdir
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.