Назад | Перейти на главную страницу

Создание резервной копии остановило мой сайт - есть ли простое решение?

На моем сервере базы данных есть задание cron, которое выполняет резервное копирование всех баз данных таким образом, чтобы их было легко восстановить.

Это примерно так:
0 5 * * * /usr/local/bin/backup.php

Проблема в том, что веб-сайт (использующий этот сервер db) во время этого процесса работает очень медленно. Даже Pingdom отправляет мне предупреждение о том, что веб-сайт недоступен в начале процесса.

Чтобы решить эту проблему, я попробовал это изменение:
0 5 * * * / bin / nice -n 19 /usr/local/bin/backup.php

но, похоже, это не улучшает ситуацию.

Как такое возможно? Вероятно, проблема в том, что сценарий резервного копирования блокирует базу данных. Но если я не заблокирую таблицы, резервная копия может быть несовместимой.

Как бы вы решили проблему в соответствии с этими требованиями? 1. не нужно покупать какое-либо оборудование 2. простота внедрения и обслуживания 3. отсутствие проприетарных решений

Это очень распространенная проблема, и ее можно решить несколькими способами. Один из лучших и наиболее надежных - использование репликации главный / подчиненный. Вкратце:

  • Вы запускаете второй экземпляр базы данных (должен быть на другом порту). Обычно это синхронизируется с мастером.
  • Когда приходит время делать резервную копию, вы блокируете таблицы на ведомом устройстве и создаете резервную копию.
  • После завершения резервного копирования снимите блокировки, и ведомое устройство догонит ведущего.

Преимущество, конечно же, в том, что мастер, обслуживающий ваш веб-сайт, не упускает ни одной детали.