Можно ли создать MySQL slave с самого начала мастера binlog без предварительного копирования данных?

Информация : все мои таблицы innodb.

я знаю, что могу создать MySQL-раба, скопировав данные с главного на ведомое и отметив положение в binlog и установив его на ведомом устройстве. таким образом, ведомое устройство должно быть в состоянии воспроизвести все записи главного бенлога с момента резервного копирования и синхронизации таким образом.

но в случае, если binlog существует с самого начала, могу ли я просто установить позицию binlog на ведомом устройстве в 0, таким образом, не нужно копировать какие-либо данные и просто заставить подчиненное устройство выполнять самую последнюю запись binlog?

2 ответа

Это может сработать, если

  • Вы загрузили данные в пустой экземпляр MySQL
  • Вы включили двоичное ведение журнала с самого начала
  • Вы никогда не стирали ни одного из ваших двоичных журналов

Есть одна загвоздка: нет буквальной позиции 0.

Существует разная позиция 0 для разных версий MySQL

  • позиция 107 (MySQL 5.5)
  • позиция 106 (MySQL 5.1)
  • позиция 98 (MySQL 5.0 и ранее)

Я писал об этом давно в DBA StackExchange:

Если у вас нет каждого двоичного журнала с момента начала загрузки данных MySQL, вы можете сделать копию, используя rsync и один перезапуск mysql:

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

Другие вопросы по тегам