Можно ли создать дифференциальный дамп с помощью mysqldump
- между двумя базами данных или, в идеале, между базой данных и дамповой версией этой базы данных?
У меня есть проблема - у меня есть активное / пассивное зеркало MySQL HA с фактическими данными БД (физическими файлами MyISAM, индексами и т. Д.), Находящимися на общем зеркале DRBD. На прошлой неделе произошел сбой первичного узла, и мастер DRBD переключился с первичного на вторичный узел, и произошло переключение службы, как и предполагалось.
Конечно, в версию зеркала DRBD для вторичной копии было внесено множество изменений, поэтому, когда первичная копия восстанавливается, она принимает на себя том DRBD, но обе стороны считают свои половины «не синхронизированными» (т. Е. StandAlone
).
Итак, теперь у меня есть ситуация, когда в базе данных произошли два различных набора транзакций:
То, что произошло, когда первичный узел не работал, а данные записывались на вторичный;
То, что произошло после того, как первичный узел вернулся и снова взял сервисы; они никогда не синхронизировались!
DRBD дает мне возможность вернуться к любой «половине» зеркала (в его текущем разделенном состоянии) в качестве «главной» ревизии, но, как можно видеть, в любом случае я теряю данные.
Ах да: не было ни репликации, ни локальных журналов транзакций, поэтому нет журналов для воспроизведения. Ой. фейспалм
Конечно, есть ночные резервные копии, поэтому я могу вернуть БД практически в любое состояние ~ 2 часа ночи за прошлый год.
Я предполагаю, что я хочу вернуться к версии базы данных, которая сейчас находится на вторичной «половине» (т.е. изменения, которые произошли, когда первичная была отключена), а затем попытаться каким-то образом применить изменения в состоянии с этого момента до текущее состояние базы данных на «половине» первичного в совокупности.
Проблема в том, что я понятия не имею, как это сделать, не воспроизводя журналы транзакций.
Понимание оценено, и заранее спасибо!
Ой. Отвратительная ситуация. Надеюсь, вы теперь включили ведение журнала ...
Два инструмента, которые могут помочь:
Вам не нужно воспроизводить данные на отказавшем сервере. Эта ситуация называется разделенным мозгом, и вам нужно будет сообщить DRBD, что вы хотите, чтобы он делал.
http://www.drbd.org/users-guide/s-resolve-split-brain.html
Редактировать: Не осознавал, что вы сказали, что первичный этап вернулся в сеть ... не совсем уверен. Бинарный журнал должен содержать запись обо всех транзакциях, выполненных сервером.
Изменить (дубль 2): Мне нужно сделать пометку, чтобы прочитать весь вопрос перед публикацией ... :( извините