Изменяет ли запуск mysqldump двоичные журналы?

Я читал ответы на подобные вопросы, но я не думаю, что они отвечают на мой конкретный вопрос, извините, если я повторяюсь здесь.

Я настраиваю репликацию с существующими данными между мастером и слейвом, оба MyISAM. У меня есть основная база данных, в которую записываются в течение дня, но не в одночасье (т. е. не сейчас). Как поясняется на сайте dev.mysql.com, я сначала запустил FLUSH TABLES WITH READ LOCK на мастере и получил позицию двоичного журнала, используя SHOW MASTER STATUS.

В другом сеансе я запустил mysqldump на ведущем устройстве, чтобы скопировать эти данные на ведомое устройство. Я запустил mysqldump с параметром --lock-all-tables.

Однако после запуска mysqldump я снова проверил состояние мастера, и позиция двоичного журнала увеличилась примерно на 30. Она не изменилась с момента завершения mysqldump.

Это увеличение связано с mysqldump? Или блокировка не подействовала, и мне нужно передумать мастер-данные?

Еще раз извините, если повторяю вопрос! Спасибо.


person Girish Rao    schedule 22.06.2011    source источник
comment
Это похоже на сложный ручной процесс. Почему бы просто не использовать репликацию MySQL?   -  person Asaph    schedule 22.06.2011
comment
Спасибо, Асаф, я намерен сделать именно это, мои шаги были основаны на предоставленной вами ссылке. Я перешел по ссылке к разделу 15.1.1 Как настроить репликацию и, в частности, в своем вопросе я пытаюсь сделать 15.1.1.5 Создание моментального снимка данных с помощью mysqldump.   -  person Girish Rao    schedule 22.06.2011
comment
Ах. Понятно. В этом есть смысл.   -  person Asaph    schedule 22.06.2011
comment
Просто чтобы закрыть этот вопрос: после того, как вы сделали снимок данных и координаты мастера во время снимка, вы можете позволить клиентам снова начать запись на мастер, пока вы копируете данные в подчиненный. Вам не нужно все время отключать запись в мастер, пока вы не запустите SLAVE. Координаты (главный файл binlog и pos) сообщают ведомому серверу, где именно начать репликацию, даже если мастер продвинулся далеко за пределы этой точки (пока вы не удалите бинарные журналы).   -  person Girish Rao    schedule 22.06.2011


Ответы (1)


Mysqldump не должен вызывать изменение позиции двоичного журнала.

Вам нужно выяснить, почему он изменился. Загляните в бинарные журналы, чтобы понять, что в них было записано. Используйте для этого команду mysqlbinlog.

Например, если вы записали начальную позицию как 1234 в binlog.0000003, выполните:

mysqlbinlog --start-position=1234 binlog.0000003

Это должно показать вам изменения, которые были применены после определенной позиции в двоичном журнале.

person dabest1    schedule 18.10.2011