Automysqlbackup и 24/7

12 3
htexture
На сайте с 29.05.2017
Offline
194
2141

Проект нагруженный и во время автобекапа с утилитой automysqlbackup ложится сайт/не отвечает в течение 2-4 минут. База тяжелая, поэтому считаю по времени так и получается. Как правильно бекапить и чтобы сайт не тормозил/лежал в процессе автобекапа, потому-что за 2-4 минуты, просадка приличная по трафику получается. Кто сидел ушли, а те кто пришли не получили желаемого контента.

Возможно ли делать какое-то дублирование базы на другом сервере и на нем же делать бекапы?

Спасибо.

[umka]
На сайте с 25.05.2008
Offline
456
#1

Всё верно, делаете штатными средствами репликацию на другую базу данных / другой сервер, и бэкап делаете с неё.

Лог в помощь!
pupseg
На сайте с 14.05.2010
Offline
347
#2

поддержу.

репликация.

писать в мастер, читать со слейва, бакап делать со слейва.

postgresql - работает из коробки. mysql - придется по-приседать.

Если стоковый движок и не умеет читать оттуда, писать сюда - то переписывать. Если движок самописный - то вам же легче.

Все HL - проекты делаются по так или иначе, но на этой архитектуре. Ничего нового не придумано пока что. Это как ДВС. Что 100 лет назад это ДВС, что сейчас.

Далее уже можете наворачивать GeoDNS, Varnish, Haproxy и другие умные слова.

PS: один из клиентов у меня таким образом обрабатывает 2млн уников в сутки.

haproxy+keepalived+nginx+varnish+postgresql ну и нормальное железо.

Просто , быстро, дубово, надежно, для реальных мужыков с яйцами. Работает годами.

Никаких "новомодных", но бесполезных kubernetes , docker и т д.

в догонку: дампить большую нагруженную базу - это мягко-говоря моветон.

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#3

А какой тип баз используется? Innodb?

Выяснить, что конкретно тормозит, если HDD, то можно перенести БД на SSD и бэкапить легко и просто.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
pupseg
На сайте с 14.05.2010
Offline
347
#4
LEOnidUKG:
А какой тип баз используется? Innodb?

Выяснить, что конкретно тормозит, если HDD, то можно перенести БД на SSD и бэкапить легко и просто.

А если проект растет ?

У него уже дамп нагружает БД. Можно подтолкнуть, но хватит до поры до времени.

Ну ... хотя может и ссд для начала.... к админам короче :) они подскажут ;):2cents::2cents::2cents:

[umka]
На сайте с 25.05.2008
Offline
456
#5

pupseg, а зачем читать со слейва?

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#6
pupseg:
А если проект растет ?
У него уже дамп нагружает БД. Можно подтолкнуть, но хватит до поры до времени.
Ну ... хотя может и ссд для начала.... к админам короче :) они подскажут ;):2cents::2cents::2cents:

Мы вообще входных не знаем, что за CMS, что за большая БД, сколько пользователей, что за сервер выделенный или VPS и т.д.

pupseg
На сайте с 14.05.2010
Offline
347
#7
'[umka:
;15446068']pupseg, а зачем читать со слейва?

что бы не грузить мастер, его IO и т д.

[umka]
На сайте с 25.05.2008
Offline
456
#8

Так ведь на слейве, по идее, будут все те же IO, что и на мастере (слейв всегда должен быть чуть шустрее мастера).

А во время бэкапа БД обычно проблемы связаны с тем, что таблицы лочатся, скрипты не могут в них писать, и сайт тормозит.

Соответственно, нужно делать бэкап со слейва. Это понятно.

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

А в случае, если мы читаем с мастера, мы сразу видим записанные данные.

Поэтому, если ТС-а полностью устраивает работа сервера, кроме как во время бэкапа, то мне кажется, логичнее и писать на мастер и читать с него, а бэкап делать со слейва. Разве нет?

pupseg
На сайте с 14.05.2010
Offline
347
#9
[umka:
;15446148]слейв всегда должен быть чуть шустрее мастера

скорее не медленнее, скажем так.

[umka:
;15446148]во время бэкапа БД обычно проблемы связаны с тем, что таблицы лочатся

все современные реляционные SQL СУБД позволяют делать дамп без блокировки таблиц в большинстве случаев. Со своими неудобствами ... но тем не менее.

[umka:
;15446148]И получается, что если на слейве идёт бэкап какой-то жирной таблицы, она залочена, репликация в этот момент не идёт

именно так. Пауза репликации, дамп, восстановление репликации, хотя онлайн тоже существует (без пауз), до этого вроде как percona и oracle додумались... но нужно подробнее почитать. Слейв догонит. Мастер имеет для этого запас в "буфере". Естественно между слейвом и мастером высокоскоростной линк, естественно - быстрые диски на обоих.

Так же существует масса инструментов инкрементального бакапа. Не нужно каждый раз бакапить всю сущность (БД или таблицу). Крупным данным не делают дамп. Есть xtrabackup и им подобные.

[umka:
;15446148]Т.е. это внесёт задержку в обновление данных и, возможно, создаст какую-то проблему, например, если это какая-то таблица с сессиями.

Возможно. Для этого существует планирование бакапов, планирование БД, своевременная очистка БД. Ежедневно работаю с БД , объемом 3.3Тбайт. Это система реального времени. Ею пользуются несколько миллионов человек круглосуточно по всему миру. Естественно есть специальная команда, отвечающая за бакап этой БД. Простой 10 минут - скандал. Простой час - скандал на всю страну. Уверяю, там нет баснословно дорогого оборудования, нано-технологий, блейд-серверов за килобаксы и тому подобного. Это каскад мастеров, слейвов, миддлов, надежных серверов надежного брэнда, архивных логов, точек отката. Никаких специализированных решений за бешеные деньги от вендора СУБД не используем (регулярно предлагают... но мы понимаем, что это "щеко-надувательство" и выполнение плана продаж). Работает 14 лет. Полет нормальный. Падает? - падает. Аварии бывают у всех. Но встает очень быстро.

Вставало бы несколько дней, если бы просто решили вкатить дамп :)

[umka:
;15446148]логичнее и писать на мастер и читать с него

вопрос к ТСу. Чего больше ? Чтений или записей? БД конечно же мониторится и статистика ее поведения конечно же собирается за год, месяц, день, час ?

Призываю ТСа продумать бакап, четко для себя уяснить, что дамп - это плохо в его случае, когда он начинает класть БД критичного ресурса.

htexture
На сайте с 29.05.2017
Offline
194
#10
LEOnidUKG:
А какой тип баз используется? Innodb?

Выяснить, что конкретно тормозит, если HDD, то можно перенести БД на SSD и бэкапить легко и просто.

База и сайт на SSD дисках живут

---------- Добавлено 25.01.2018 в 18:27 ----------

pupseg:

Призываю ТСа продумать бакап, четко для себя уяснить, что дамп - это плохо в его случае, когда он начинает класть БД критичного ресурса.

Если что-то ложится на мастер сервере, то слейв можно сделать получается мастером, пока чинится основной мастер? Тогда действительно в бекапах нету смысла. Но сразу вопрос возникает, когда мастер сервер падает, каким-то образом может повредится слейв-база или просто ничего не происходит? А то у меня работа с мускул и его ошибками, в одно время все нервы съела :)

По поводу нагрузки, я не парюсь т.к. сервера хватает, проблема именно в простое 2-4 минут во время дампа

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий