Я создаю приложение, которое быстро переходит в производство, и меня беспокоит возможность того, что из-за взлома, некоторой глупой личной ошибки (например, запуск rake db:schema:load
или rake db:rollback
) или других обстоятельств мы можем понести потерю данных в одна таблица базы данных или даже через систему.
В то время как я не считаю вероятным, что это произойдет, я бы отказался от того, чтобы его не готовили, если он когда-либо будет.
Я использую Heroku PG Backups (который должен быть заменен чем-то другим в этом месяце), и я также запускаю автоматическое ежедневное резервное копирование на S3: http://trevorturk.com/2010/04/14/automated-heroku-backups/, успешно создавая файлы .dump
.
Каков правильный способ борьбы с потерей данных в производственном приложении?
- Как восстановить файл
.dump
в случае необходимости? Можно ли выполнить выборочный восстановление, если удалена небольшая часть системы? - Если выборочное восстановление невозможно: предположим, что одна таблица теряет данные через 4 часа после последней резервной копии. Результат = > исправление потерянной таблицы требует откат 4 часов активности пользователей? Любое хорошее решение для этого?
- Каков наилучший способ поддержать пользователей в случае неудобства, если произойдет что-то подобное?