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

перенаправить сайт при резервном копировании

я использую incron для создания резервных копий для веб-сайта, и мне нравится перенаправлять все запросы на другой сайт, когда / пока работают мои скрипты.

Что я сделал до сих пор ...
incron запускает несколько скриптов каждый раз, когда я обновляю файлы в /var/www. Сначала он добавляет несколько записей в базу данных. Затем он делает инкрементную резервную копию GNU с tar. После этого он использует mysqldump для извлечения базы данных и gzip для сжатия sql файла.

Теперь я тоже люблю добавлять статистику в свою базу данных. Я думал добавить /var/log/apache2/access.log к incron.

Но таким образом я могу испортить свои резервные копии базы данных. Мне нужен способ сохранить мою базу данных без выключения apache ни mysql. Я мог бы заблокировать доступ для записи в mysql, но мой веб-сайт по-прежнему будет доступен, и я не могу обновить статистику в то же время, не получив ошибки.

Есть ли способ перенаправить весь доступ к одному домену, пока мои скрипты работают? Может быть mod_rewrite с некоторыми if, но какие аргументы мне тогда использовать?

Я не знаю, как это заархивировать, и буду рад услышать несколько советов.

Apache 2.4.10
MySQL 5.7
Дебиан Джесси

Мне нужен способ сохранения для извлечения моей базы данных без выключения Apache или MySQL.

Я думаю ты просто хочешь избегать любых модификаций в вашу базу данных во время резервного копирования, чтобы сохранить последовательность. Вы можете просто усложнить это своим сценарием перенаправления, если все находится в одной базе данных. Справочное руководство MySQL 5.7 для mysqldump здесь нам помогает:

--lock-tables, -l

Для каждой выгружаемой базы данных заблокируйте все таблицы, которые будут выгружены, прежде чем выгружать их. Таблицы заблокированы READ LOCAL чтобы разрешить одновременные вставки в случае MyISAM таблицы. Для транзакционных таблиц, таких как InnoDB, --single-transaction намного лучше, чем --lock-tables потому что ему вообще не нужно блокировать таблицы.

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

--single-transaction

Эта опция устанавливает режим изоляции транзакции REPEATABLE READ и отправляет сообщение НАЧАТЬ СДЕЛКУ Оператор SQL на сервер перед сбросом данных. Это полезно только с транзакционными таблицами, такими как InnoDB, потому что тогда он сбрасывает согласованное состояние базы данных в то время, когда НАЧАТЬ СДЕЛКУ был выдан без блокировки каких-либо приложений.

При использовании этой опции следует помнить, что только InnoDB таблицы выгружаются в согласованном состоянии. Например, любой MyISAM или MEMORY таблицы, сброшенные при использовании этой опции, могут по-прежнему изменять состояние.