Як запобігти зміні вмісту каталогу при виконанні резервного копіювання?


0

У мене є веб-додаток, що зберігає дані в базі даних MySQL і на файловій системі. Деякі записи бази даних посилаються на деякі файли у файловій системі.

Тепер я хочу створити знімок всієї партії. Звичайно, я хочу переконатися, що всі файли, на які посилається знімок бази даних, присутні у знімку файлової системи. Всі файли у знімках файлової системи правильно посилаються на знімок бази даних.

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

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

Очевидно, що в даному випадку я міг би просто вимкнути Apache і, таким чином, запобігти будь-яким змінам під час виконання резервного копіювання. Але вимкнення веб-сервера теж не є найбільш елегантним рішенням.

Відповіді:


1

Якщо ви зберігаєте файли в томі LVM, ви можете заблокувати базу даних, а потім виконати mysqldump і зробити знімок LVM, і нарешті розблокувати базу даних. Потім резервне копіювання з знімка LVM. Таким чином, ви б синхронізували вміст БД і ФС з мінімальним часом блокування.


Так, LVM буде приголомшливим. Мені було цікаво, чи можна вирішити цю проблему з "рівня оболонки".
Der Hochstapler

1
Ні, потрібна якась транзакція, щоб зробити знімок файлової системи за часом. Незалежно від того, чи це відбувається з LVM, btrfs, ZFS, VSS (у Windows), або щось зовсім інше - він часто покладається на підтримку рівня ОС або файлової системи. Немає ніяких хитроїстих трюків оболонки, які можна витягнути, включаючи збереження сайту в іншому випадку, якщо ви не реархівуєте весь сайт, щоб дозволити створення вікон резервного копіювання, коли всі записи надходять у область інсталяції, поки резервне копіювання не завершиться. основного сховища.
afrazier

Щоб додати до своєї відповіді. Існують існуючі методи для досягнення того, чого я хочу. Ці методи існують у вигляді LVM. Немає більш простого підходу, і якщо ви хочете зробити це правильно, зробіть це правильно і не намагайтеся зламати його: P
Der Hochstapler
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.