У меня есть веб-приложение, которое хранит данные в базе данных MySQL и в файловой системе. Некоторые из записей базы данных ссылаются на некоторые файлы в файловой системе.

Теперь я хочу создать снимок всей партии. Конечно, я хочу убедиться, что в обратном направлении все файлы, на которые есть ссылки в снимке базы данных, присутствуют в снимке файловой системы. И все файлы в снимке файловой системы правильно указаны в снимке базы данных.

Если бы я сначала запустил mysqldump а затем tar файлы (или наоборот), то есть определенное условие гонки. Кроме того, я сомневаюсь, что что-то мешает другим процессам изменять файлы, пока я выполняю свою резервную копию.

Моей первой мыслью было просто выполнить команду chmod 444 перед началом процесса резервного копирования. Но я не уверен во всех негативных последствиях, которые привели бы к живой системе (я могу представить несколько).

Очевидно, что в этом случае я мог бы просто отключить Apache и, таким образом, предотвратить любые изменения во время резервного копирования. Но отключение веб-сервера тоже не самое элегантное решение.

1 ответ1

1

Если вы храните файлы в томе LVM, вы можете заблокировать базу данных, а затем выполнить mysqldump, сделать снимок LVM и, наконец, разблокировать базу данных. Затем сделайте резервную копию из снимка LVM. Таким образом, вы бы синхронизировали содержимое БД и ФС с минимальным временем блокировки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .