START SLAVE [thread_name [, thread_name] ... ] START SLAVE [SQL_THREAD] UNTIL MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = log_pos START SLAVE [SQL_THREAD] UNTIL RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = log_pos thread_name = IO_THREAD | SQL_THREAD
START SLAVE
, appelé sans option, démarre
les deux threads esclaves. Le thread I/O lire les requêtes du
maître et les stocke dans le log de relais. Le thread SQL
lire le log de relais, et exécute les requêtes. Notez que si
START SLAVE
réussi à lancer le thread
esclave, elle se terminera sans erreur. Mais même dans ce
cas, il se peut que le thread esclave se lance, puis s'arrête
(car il n'a pas pu se connecter au maître, ou lire le log
binaire ou tout autre problème). START
SLAVE
ne vous préviendra pas de cet événement.
Vous devez vérifier le log d'erreur de l'esclave pour voir si
des messages ont été générés, ou encore vérifier que
tout fonctionne avec la commande SHOW SLAVE
STATUS
.
Depuis MySQL 4.0.2, vous pouvez ajouter les options
IO_THREAD
ou SQL_THREAD
à la commande, pour nommer les threads que vous lancez.
Depuis MySQL 4.1.1, une clause UNTIL
peut
être ajoutée pour spécifier que l'esclave doit commencer à
un certain point dans le log binaire, ou dans le log de
relais. Lorsque le thread SQL atteint ce point, il s'arrête.
Si l'option SQL_THREAD
est spécifiée dans
la commande, seule le thread SQL est lancé. Sinon, les deux
threads sont lancés. Si le thread SQL est déjà lancé, la
clause UNTIL
est ignorée, et une alerte
est émise.
Avec la clause UNTIL
, vous devez spécifier
à la fois un fichier de log et une position. Ne confondez pas
les options du maître et celles du log de relais.
Toute condition UNTIL
est annulée par une
commande STOP SLAVE
, ou une commande
START SLAVE
qui n'inclut pas de condition
UNTIL
, ou encore un redémarrage serveur.
La clause UNTIL
peut être utile pour
déboguer la réplication, ou pour vous assurer que la
réplication s'effectue jusqu'à un certain point. Par
exemple, si une commande imprudente DROP
TABLE
a été exécutée sur le maître, vous pouvez
utiliser la clause UNTIL
pour dire à
l'esclave de s'exécuter jusqu'à ce moment, puis de
s'arrêter. Pour trouver cet événement, utilisez
l'utilitaire mysqlbinlog
sur le log du
maître, ou sur le log de relais, ou encore utilisez la
commande SHOW BINLOG EVENTS
.
Si vous utilisez la clause UNTIL
pour faire
des réplications par portions, il est recommandé de lancer
l'esclave avec l'option --skip-slave-start
pour éviter que le thread SQL ne se lance lorsque l'esclave
se lance. Il est probablement idéale d'utiliser cette option
dans un fichier d'options plutôt qu'en ligne de commande,
pour qu'un redémarrage intempestif ne l'oublie pas.
La commande SHOW SLAVE STATUS
affiche un
champ qui indique la valeur courante de la clause
UNTIL
.
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.