Задача собственной разработки
Резервное копирование не заканчивается появлением файла. Администратору нужно знать, когда выполнилось задание, прошла ли проверка, куда отправлена копия и что потребуется для восстановления. У PostgreSQL, MS SQL Server и 1С различаются инструменты, форматы и требования к доступу.
Мы разработали PG Backup Manager — единое приложение, в котором настройки связаны с задачей, запуск — с журналом и результатом, а резервная копия — с проверкой и способом восстановления.

От первой утилиты к единому приложению
Проект начинался как инструмент копирования PostgreSQL с интерфейсом на Python. По мере развития добавили MS SQL Server, файловые и серверные базы 1С, дополнительные хранилища и инструменты восстановления.
Первоначальный интерфейс заменили новым, сохранив существующие пользовательские сценарии. Логику операций оставили в Python, а интерфейс построили на React и TypeScript в оболочке Tauri.
Общее ядро
Окно приложения, командная строка и Планировщик Windows используют общую логику операций.
Без открытого окна
Для выполнения заданий по расписанию не требуется держать приложение открытым.
Как развивался продукт

Настройка копирования и расписания
Работа начинается с мастера: выбираем источник, задаём подключение и каталог копий, затем настраиваем проверку, упаковку, шифрование и доставку. Параметры сохраняются в профиле, который можно снова открыть и проверить.

PostgreSQL
Форматы Custom и Directory, в том числе параллельная выгрузка Directory.
MS SQL Server
Полные, COPY_ONLY, разностные копии и копии журнала транзакций. При работе с цепочкой учитывается совместимость файлов.
Файловая 1С
Штатная выгрузка DT или копирование файловой базы с проверкой исключительного доступа.
Серверная 1С
Копирование точно сопоставленной базы PostgreSQL или MS SQL Server. Просмотр платформ, баз и сеансов вынесен в отдельный раздел.
Выгрузить исходную базу.
Выполнить настроенную проверку.
При необходимости упаковать и зашифровать.
Передать в дополнительные хранилища.
После пробного запуска видны ход операции, предупреждения, итог и созданные файлы. Результат каждого этапа отражается отдельно.
Проверка и восстановление
Наличие файла и успешное завершение задания сами по себе не доказывают возможность восстановления. Поэтому разделили проверку копии, пробное восстановление и восстановление в новую цель.

Пробное восстановление
Для PostgreSQL и MS SQL Server используется временная база с последующей очисткой.
Новая рабочая цель
Можно отдельно создать новую базу или файловую ИБ и оставить её для дальнейшей проверки.
Обычный сценарий не перезаписывает существующую рабочую базу. Перед началом проверяются источник и отсутствие новой цели. Это отделяет проверочные действия от постоянного восстановления.
Хранение и дополнительные копии
Основная копия остаётся в локальном каталоге. Готовый файл можно последовательно передать в сетевой каталог, FTP/FTPS, SFTP, S3 или совместимое S3-хранилище. Ошибка одной передачи отражается отдельно и не требует повторно выгружать базу.

Отдельное расписание
Момент создания копии и время её доставки можно разделить. Если подходящего файла нет, задание сообщает о проблеме.
Календарные поколения
Дневные, недельные, месячные и годовые точки дополняют хранение по сроку. При очистке сохраняются файлы, необходимые для восстановления.
Контролируемая очистка
Удалению подлежат только подтверждённые копии приложения, а не любые файлы с подходящим расширением или датой.
Проверка передачи
Для SFTP предусмотрена проверка закреплённого ключа сервера. Полученная удалённая копия повторно проверяется по контрольной сумме.
Защита секретов подключения и шифрование самих резервных копий — отдельные настройки приложения.
Диагностика и контроль
Свободное место проверяется отдельно, без запуска резервного копирования. При настроенных каналах приложение сообщает об изменении состояния через Email или Telegram и учитывает повторяющиеся состояния, чтобы не отправлять одинаковое предупреждение при каждой проверке.

История снимков позволяет сравнивать состояние базы. Анализ выполняется на чтение: он сам не запускает очистку, сжатие или исправление данных.
Результат разработки
Создали единое рабочее приложение для настройки задач и расписания, просмотра журналов, проверки, восстановления и дополнительных копий. Администратор может проследить путь от исходной базы до файла и отдельно увидеть проблемы выполнения, проверки или доставки.
Общий рабочий процесс
Задачи, подключения, расписание и журналы связаны между собой.
Различимые результаты
Успех выгрузки, результат проверки и итог доставки видны отдельно.
Восстановление под контролем
Проверочные сценарии и восстановление в новую цель имеют разные действия.
Понятный интерфейс
Современные рабочие разделы дополнены диагностикой, журналом действий и русскими пояснениями ошибок.
Понравилась разработка?
Поддержите проект — ваш лайк поможет другим читателям его заметить.
Нужен инструмент для вашей инфраструктуры?
Обсудим задачи резервного копирования, интеграции и разработки программного обеспечения.
Обсудить задачу ↗