Планирование задачи Rails для безопасного резервного копирования файла базы данных - PullRequest
1 голос
/ 26 февраля 2012

У меня есть приложение Rails на компьютере с Windows Server 2008. Приложение использует базу данных sqlite, и мне нужно делать ее резервную копию один раз в день. Резервное копирование должно быть выполнено путем копирования файла базы данных в зеркальную папку, и служба зеркального резервного копирования возьмет его оттуда.

Есть одна проблема. Я хотел бы избежать копирования файла базы данных, пока приложение использует его. Если я скопирую файл в середине действия, я получу поврежденный и \ или заблокированный файл базы данных в резервной копии - и восстановление такого файла - слишком большая проблема, если это вообще возможно.

Теперь, есть ли запланированное задание подождать, пока база данных не будет использоваться? Или запретить остальной части приложения использовать базу данных во время выполнения задачи резервного копирования?

Что касается планирования, я видел несколько решений, но я еще не принял решение о планировании, поэтому я могу использовать функцию решения для планирования для решения проблемы резервного копирования.

1 Ответ

7 голосов
/ 26 февраля 2012

Я бы предложил использовать Оболочку командной строки SQLite :

sqlite3 /path/to/live.db '.backup /backup/path.db'

Это позволит вам выполнять резервное копирование, не вызывая сбоев в работе обычных БД.Из документации:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...