У меня есть настройка репликации Master-Slave, и похоже, что она работает нормально. Ниже приведен результат SHOW SLAVE STATUS
команды:
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:
Я хотел бы узнать больше о Relay_Log_File
, Relay_Log_Pos
и Relay_Master_Log_File
.
Мои вопросы:
Правда ли, что файл журнала ретрансляции является тем, который читается и хранится локально для запуска репликации?
Как насчет
relay_master_log_file
тогда; чем он отличается отMaster_Log_File
?Каковы оба этих значения, а именно. ,
Read_Master_Log_Pos
АRelay_Log_Pos
? Почему они появляются, хотя репликация завершена и синхронизирована?Это правда, что эти файлы в двоичном формате, и, следовательно, я не могу их просмотреть?
источник
Relay_Master_Log_File
имя главного двоичного файла журнала, содержащего самое последнее событие, выполненное потоком SQL, а не файл журнала ретрансляции .Relay_Master_Log_File
на самом деле это имя binlog на ведущем устройстве, содержащее последний оператор SQL, успешно выполненный на ведомом устройстве. Это не имя релейного журнала на ведомом устройстве. Смотрите: http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.htmlExec_Master_Log_Pos
позиция в файле relay_master_log_file, до которой выполнялся подчиненный поток SQL. Таким образом, в вашем примере подчиненная БД выполняла все операторы вплоть до binlogmysql-bin.000001
pos 10726644 на главной БД.until_log_pos
действительно используется, только если вы запускаете своего ведомого с синтаксисомSTART SLAVE UNTIL master_log_pos = $integer
. Этот синтаксис будет повторяться до этой позиции (это будетexec_master_log_pos
) и затем останавливаться. Обычно вы делаете это только в том случае, если хотите выполнить репликацию в конкретную точку, но не дальше (например, если следующий оператор - случайное удаление таблицы или что-то в этом роде). Значениеuntil_log_pos
равно 0, когда оно не указано, поэтому в вашем случае означает, что репликация будет продолжать двигаться вперед.источник