Я работаю над своим первым приложением WinForms с базой данных Firebird, доступной по сети. Теперь мне интересно, как мне обеспечить резервное копирование и восстановление базы данных?
До сих пор мои приложения использовали встроенные базы данных (SQLite), поэтому я был уверен, что только мое приложение получило доступ к базе данных. Само приложение отвечало за резервное копирование и восстановление. Я мог бы просто скопировать файл базы данных и все.
Сделано резервное копирование:
- Автоматически при каждом запуске приложения
- Автоматически каждую неделю
- Вручную пользователем
Когда пользователь хотел восстановить из резервной копии, он мог сделать это в любое время, и он мог выбрать любой тип резервной копии. Все прямо из моего приложения.
Для нового приложения я перешел с SQLite на Firebird. Я выбрал Firebird, потому что приложение будет работать с встроенной базой данных по умолчанию, но может использоваться и с классическим сервером. С Firebird я могу использовать как встроенные, так и серверные с одним файлом базы данных.
Проблема в том, что когда база данных будет работать на сервере, одновременно с ней может работать много пользователей, поэтому я не знаю, как сделать резервную копию и восстановить данные. Должен ли я исключить функцию резервного копирования / восстановления в моем приложении и позволить администратору создавать резервные копии на сервере? Или мое приложение должно включать резервное копирование и восстановление?
Общая база данных для меня просто совершенно новая, поэтому я не знаю лучших практик. В любом случае база данных будет довольно маленькой, и одновременно будет работать только несколько пользователей.
Спасибо, Петр