В настоящее время я запускаю mysqldump на ведомом Mysql для резервного копирования нашей базы данных. Это отлично зарекомендовало себя для резервного копирования наших данных, но я хотел бы дополнить его бинарной логической позицией мастера, которая соответствует данным, генерируемым mysqldump.Как написать двоичную запись журнала Mysql мастера при выполнении mysqldump с ведомого?
Выполнение этого позволит нам восстановить наш ведомый (или настроить новые подчиненные устройства) без необходимости выполнять отдельный mysqldump в основной базе данных, где мы захватим позицию двоичного журнала мастера. Мы просто возьмем данные, сгенерированные mysqldump, объединим их с информацией о бинарном журнале, которую мы сгенерировали, и вуаля ... будет повторно синхронизирована.
До сих пор мое исследование заставило меня очень близко к достижению этой цели, но я не могу понять, как автоматизировать его. Вот «almosts» Я обнажение:
- Если мы бежали туздЫшпр из основной базы данных, мы могли бы использовать параметр «--master-данные» с туздЫшпром войти двоичное положение хозяина вместе с dump data (я предполагаю, что это, вероятно, также сработает, если мы начнем генерировать бинарные журналы из нашего подчиненного устройства, но это похоже на излишний уровень для того, что мы хотим достичь)
- Если бы мы хотели сделать это неавтоматизированным способом, мы могли бы войдите в базу данных подчиненного и запустите «STOP SLAVE SQL_THREAD;» а затем «ПОКАЗАТЬ СОПУТСТВУЮЩИЙ СТАТУС»; (http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html). Но это не принесет нам никакой пользы, если мы заранее не узнаем, что хотим вернуть что-то из бальзака.
- Если бы у нас было $ 500/year to blow, мы могли бы использовать плагин HotOp InnoDb и просто запускать наши mysqldumps из основного DB. Но у нас нет этих денег, и я вообще не хочу добавлять какие-либо дополнительные входы/выходы в нашу основную БД.
Это похоже на нечто общее, что кто-то, должно быть, догадался, надеюсь, что кто-то использует переполнение стека?
Yup, это похоже на мой второй сценарий, выше. Если верить документам Mysql, вы можете получить двоичное положение мастера из подчиненного устройства, остановив подчиненный поток и показывая статус подчиненного. Это не требует блокировки мастера. Но я надеюсь найти автоматическое решение, которое автоматически сохранит позицию журнала в процессе выполнения нашей повседневной резервной копии. – wbharding
Эй, совершенно забыл, что статус мастера можно получить от раба! Приветствия для напоминания. Я добавил информацию в shellscript, который выполняет ежедневные резервные копии, поэтому мы должны иметь информацию о двоичном журнале, записанную сейчас вместе с резервными копиями. Я добавлю информацию к моему ответу, будет применима только в том случае, если вы используете систему * nix, но я уверен, что если вы работаете в системе Windows, у вас есть свой собственный способ сделать это:) –
OP действительно не хочет делать LOCK TABLES WITH READ LOCK на хозяине. И никто, действительно, тоже. – MarkR