Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

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