J'ai une configuration de réplication maître-esclave et il semble que cela fonctionne bien. Ci-dessous est le résultat de la SHOW SLAVE STATUS
commande:
show slave STATUS\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: *.*.*.*
Master_User: repliV1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 10726644
Relay_Log_File: mysqld-relay-bin.000056
Relay_Log_Pos: 231871
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: data1
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 10726644
Relay_Log_Space: 232172
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Je voudrais en savoir plus sur les Relay_Log_File
, Relay_Log_Pos
et Relay_Master_Log_File
.
Mes questions sont:
Est-il vrai que le fichier journal de relais est celui qui est lu et stocké localement pour que la réplication s'exécute?
Qu'en est-il
relay_master_log_file
alors? en quoi est-il différent duMaster_Log_File
?Quelles sont ces deux valeurs, à savoir. ,
Read_Master_Log_Pos
etRelay_Log_Pos
? Pourquoi apparaissent-ils alors que la réplication est terminée et synchronisée?Est-il vrai que ces fichiers sont au format binaire et que je ne peux donc pas les visualiser?
Relay_Master_Log_File
est le nom du fichier journal binaire maître contenant l'événement le plus récent exécuté par le thread SQL, pas le fichier journal de relais .Relay_Master_Log_File
est en fait le nom du binlog sur le maître contenant la dernière instruction SQL exécutée avec succès sur l'esclave. Ce n'est pas le nom d'un journal de relais sur l'esclave. Voir: http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.htmlExec_Master_Log_Pos
est la position dans le fichier relay_master_log_file que le thread SQL esclave a exécuté jusqu'à. Donc, dans votre exemple, la base de données esclave a exécuté toutes les instructions jusqu'à binlogmysql-bin.000001
pos 10726644 sur la base de données maître.until_log_pos
n'est vraiment utilisé que si vous démarrez votre esclave avec la syntaxeSTART SLAVE UNTIL master_log_pos = $integer
. Cette syntaxe se répliquera jusqu'à cette position (ce sera leexec_master_log_pos
) puis s'arrêtera. Vous ne feriez normalement cela que si vous vouliez répliquer vers un point spécifique, mais pas plus loin (comme si la prochaine instruction est une chute de table accidentelle ou quelque chose). La valeur deuntil_log_pos
est 0 lorsqu'elle n'est pas spécifiée, ce qui signifie que dans votre cas, la réplication continuera à avancer.la source