URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6806
[ Назад ]

Исходное сообщение
"Во время бэкапа баз (mysqldump) 'умирает' сайт - как избежать"

Отправлено sup , 03-Апр-10 14:44 
Во время ночного бэкапа баз (проще говоря, во время выполнения mysqldump) "отмирает" форум. База форума полтора гига. Просто перестают открываться страницы, а иногда вылетает ошибка max_user_connection для форумного юзера, хотя дапм делается от рута (ну это оно и понятно - соединения копятся в базе и не отрабатывают). Если убить mysqldump, сразу все начинает работать. Как можно выплнять mysqldump без вреда для форума? Пробовал играть с "nice" для процесса mysqldump - не помогает. Есть вообще решение какое-то? Не хочется просто файлы таблиц копировать - это не гуд. Заранее спасибо.

Содержание

Сообщения в этом обсуждении
"Во время бэкапа баз (mysqldump) 'умирает' сайт - как избежат..."
Отправлено Аноним , 03-Апр-10 18:19 
>Во время ночного бэкапа баз (проще говоря, во время выполнения mysqldump) "отмирает"
>форум. База форума полтора гига. Просто перестают открываться страницы, а иногда
>вылетает ошибка max_user_connection для форумного юзера, хотя дапм делается от рута

1. Сделать реплику (master-slave), и бэкапить с нее.
2. "flush tables with read lock",  сделать снэпшот, "unlock tables" и потом бэкапить "файлы таблиц", если у Вас MyISAM.


"Во время бэкапа баз (mysqldump) 'умирает' сайт - как избежат..."
Отправлено Michael , 04-Апр-10 00:01 
>Во время ночного бэкапа баз (проще говоря, во время выполнения mysqldump) "отмирает"
>форум. База форума полтора гига. Просто перестают открываться страницы, а иногда
>вылетает ошибка max_user_connection для форумного юзера, хотя дапм делается от рута
>(ну это оно и понятно - соединения копятся в базе и
>не отрабатывают). Если убить mysqldump, сразу все начинает работать. Как можно
>выплнять mysqldump без вреда для форума? Пробовал играть с "nice" для
>процесса mysqldump - не помогает. Есть вообще решение какое-то? Не хочется
>просто файлы таблиц копировать - это не гуд. Заранее спасибо.

перейти на innodb и бекапить с ключем --single-transaction. Учтите, что это не гарантирует согласованность данных бекапов разных баз


"Во время бэкапа баз (mysqldump) 'умирает' сайт - как избежат..."
Отправлено visitor , 05-Апр-10 22:00 
>Во время ночного бэкапа баз (проще говоря, во время выполнения mysqldump) "отмирает"
>форум. База форума полтора гига. Просто перестают открываться страницы, а иногда
>вылетает ошибка max_user_connection для форумного юзера, хотя дапм делается от рута
>(ну это оно и понятно - соединения копятся в базе и
>не отрабатывают). Если убить mysqldump, сразу все начинает работать. Как можно
>выплнять mysqldump без вреда для форума? Пробовал играть с "nice" для
>процесса mysqldump - не помогает. Есть вообще решение какое-то? Не хочется
>просто файлы таблиц копировать - это не гуд. Заранее спасибо.

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