Здравствуйте. Есть база 21.3 Гб. Дамп делается mysqldump -q. В течение дампа сайт становится недоступен: "504 Gateway Time-out" Как правильно организовать дамп больших баз? Спасибо.
Да, я понимаю. Но является следствием дампа базы. Вот мне и интересно, как организуются дампы больших баз, где подобные простои невозможны. Ставят заглушку на время дампа или что делают?
Нет. А на что там смотреть? Как я понимаю, дамп блокирует таблицы. Клиенты висят в очереди, апач не возвращает вовремя ответ, на что nginx выбрасывает 504. Что-то неправильно понимаю? На что надо обратить внимание при просмотре лога?
Обычно отставание на несколько минут не имеет значения, все равно дампы посуточные или вроде того. А роль почти-realtime-снимка выполняет сам слейв (на случай, если мастер сдох).
А неестественно сильное отставание - это ненормально, это предмет мониторинга тем же nagios/zabbix.
Всем спасибо за ответы. Ещё вопрос возник. Допустим, у нас есть связка мастер-слейв. Дамп снимается со слейва. Пусть на мастере происходят какие-то изменения. Что происходит с этими изменениями на слейве? Находятся в ожидании до тех пор, пока не закончится дамп, а потом разом вносятся?
Почитал тут про инкрементный бэкап. Как вы к нему относитесь? Например, раз в неделю делаем полный, а каждый день - инкрементный.
да, при активных апдейтах дамп запросто получается неконсистентным, решали через SHOW SLAVE STATUS в транзакции, можно даже SERIALIZABLE включить,
или подождать когда слейв догонит до начала транзакции, или с выборкой по полю last_updated