Это рекомендуемый способ. Если вы делаете резервную копию базы данных раз в день, вы рискуете потерять максимум 24 часа данных, накопленных на форуме.
Мне уже дважды говорили, что это не проблема, но никто так и не объяснил, почему. Поэтому я делаю резервную копию базы данных каждые 6 часов — мой форум не слишком активен, поэтому я могу позволить себе такой риск. Для сравнения: мой интернет-магазин делает резервную копию каждые 4 минуты.
Как вы настроили базу данных для более частого резервного копирования? Я предпочел бы делать это дважды в день, но функционал интерфейса позволяет только раз в сутки.
Вы можете настроить cron-задачу (на вашем сервере, а не в контейнере), которая будет выполнять:
docker exec app bash -c "discourse backup"
Если данные действительно критически важны, вы можете настроить сервер репликации PostgreSQL и обеспечить выполнение каждой транзакции на втором сервере.
Это собственная команда CLI Discourse для создания резервной копии, и мне подсказали, что docker exec app выполняет её извне контейнера (app — это имя контейнера, разумеется).
Поскольку я настроил S3, который попадает в тот же бакет, что и «обычные» резервные копии.
Есть одна небольшая проблема… очень скоро появится бесчисленное количество резервных копий. Не знаю, стоит ли мне делать дамп SQL иначе, перемещать его с помощью aws-cli, а затем удалять всё, что старше определённого периода. Или делать то же самое на VPS.
Я предполагаю, что это активирует внутреннюю процедуру резервного копирования Discourse, поэтому все уведомления остаются на месте.
Вы отключаете планирование резервного копирования через интерфейс и управляете всем через cron? Или вы настраиваете одну задачу через интерфейс, а дополнительные — через cron?
Нет. Я делаю и то, и другое. Я не доверяю системе и себе в такой степени. Гораздо реже реальная проблема — это количество резервных копий, а не их нехватка.
Спасибо @Jagster и @pfaffman за помощь в настройке дополнительной базы данных через cron. Это снижает потенциальную потерю данных в моём системе до 12 часов в худшем случае.