Mysql сервер ушел - во время mysqldump

0

Каждый вечер (8:00 вечера PST) я делаю глобальную резервную копию моей производственной базы данных (двигатель innoDB).

Heres команда mysqldump:

mysqldump -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST -Q -c -C --add-drop-table --add-locks --quick --lock-tables surveys > $MYSQLBACKUPDIR/surveys.$NOW.sql;

Резервное копирование занимает приблизительно 45 минут и создает файл размером 480 МБ. Во время этой резервной копии некоторые пользователи моего сайта могут столкнуться с ошибками (500)

Вот что я нашел в своем журнале ошибок apache:

[Sun Dec 10 20:32:58.028079 2017] [:error] [pid 10921] DBD::mysql::db commit failed: MySQL server has gone away at /var/www/---.pl line 17.\n

Это то, что я пытался, чтобы решить эту проблему:

  • Повысить значения в конфигурации mySQL (wait_timeout, max_allowed_packet)
  • Очистка моей базы данных, удаление 1/5 старых записей (резервный файл с 600 МБ до 480)

Но без успеха :(

Теги:
dump

1 ответ

0

Это может быть до стоп-столов, но я могу ошибаться. Вместо вашего параметра --lock-tables вы можете использовать:
--single-transaction --lock-tables=false. Таким образом, ваш дамп будет согласован, но так долго не будет блокировать таблицы.
Также - если можно, попробуйте использовать innobackupex. Но резервное копирование и восстановление единой базы данных намного сложнее, чем при использовании mysqldump. Вот некоторые подробности: https://www.percona.com/forums/questions-discussions/percona-xtrabackup/10131-backing-up-and-restoring-a-single-database

  • 0
    Спасибо! Разве блокировка таблиц не ложна факультативно? В документе я могу прочитать «Опция --single-транзакции и опция --lock-tables являются взаимоисключающими, поскольку LOCK TABLES вызывает неявную фиксацию любых ожидающих транзакций».
  • 0
    Вы правы, но здесь я установил lock-tables = false - означает «не блокировать таблицы», что фактически обеспечивается одной транзакцией. Я положил его туда, чтобы я был уверен в этом;)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню