2016-12-13 9 views
0

Что произойдет, если вы остановите ведомый сервер mysql на несколько часов (8 часов)? Может ли мастер регистрировать все изменения, внесенные за последние 8 часов, и вы можете снова запустить ведомый сервер и просто дождаться, когда он догонит мастер?Можно ли остановить ведомый сервер mysql в течение нескольких часов?

ответ

1

Пока у вас есть место для файлов журнала, вы можете остановить его столько, сколько захотите. В крайних случаях, если ваш объем изменения данных достаточно высок, ваш подчиненный не сможет идти в ногу. Но если это происходит, вам нужно использовать разные аппаратные средства или балансировать нагрузку на базу данных по-разному.

+0

Чтобы добавить немного к этому, после того, как вы выпустили 'STOP SLAVE;', вы можете выпустить 'SHOW SLAVE STATUS \ G' и проверить поле' Relay_Master_Log_File'. Это binlog от мастера, из которого выполняется это подчиненное устройство, в частности (Exec_Master_Log_Pos' является позицией в том файле, который был выполнен последним). Если вы можете продолжать использовать этот битлог, вы будете в безопасности после того, как вы произведете 'SLAVE START''. – Guriandoro

+0

Вы можете настроить максимальный размер файла журнала и максимальное количество, если вы еще этого не сделали, поэтому убедитесь, что у вас есть, по крайней мере, столько места на диске. Ведомое устройство прекратит чтение с мастера, если оно достигнет предела, и возобновит работу, когда старый файл журнала был удален, что произойдет, когда он начнет обрабатывать 3-й старейший. – EJP

+0

Существует также настройка в mysql, которая очистит binlogs старше X дней, и я не помню, имеет ли это представление о ведомых устройствах, не говоря уже о * остановленных * подчиненных. Следует также отметить, что ведомые устройства воспроизводят журналы * в одном потоке *, поэтому для работы многоядерного мастера в течение часа требуется несколько часов для воспроизведения на ведомом устройстве. – Sammitch