К-СервисПрактика автоматизации
Кейс / Собственная разработка / Инфраструктура

PG Backup Manager: управление резервными копиями баз данных

Разработали приложение, которое объединяет копирование PostgreSQL, MS SQL Server и 1С, проверку файлов, хранение и восстановление в одном рабочем месте администратора.

Собственная разработкаPostgreSQLMS SQL Server1С
Единое приложениеЗадачи, расписание и журналы
Проверка и восстановлениеОтдельные управляемые сценарии
Дополнительные копииДоставка готовых файлов в другие хранилища

Задача собственной разработки

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

Мы разработали PG Backup Manager — единое приложение, в котором настройки связаны с задачей, запуск — с журналом и результатом, а резервная копия — с проверкой и способом восстановления.

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

От первой утилиты к единому приложению

Проект начинался как инструмент копирования PostgreSQL с интерфейсом на Python. По мере развития добавили MS SQL Server, файловые и серверные базы 1С, дополнительные хранилища и инструменты восстановления.

Первоначальный интерфейс заменили новым, сохранив существующие пользовательские сценарии. Логику операций оставили в Python, а интерфейс построили на React и TypeScript в оболочке Tauri.

Общее ядро

Окно приложения, командная строка и Планировщик Windows используют общую логику операций.

Без открытого окна

Для выполнения заданий по расписанию не требуется держать приложение открытым.

Как развивался продукт

Первоначальная версия приложения
Первоначальная версия приложенияОт утилиты с настройками профиля — к общему обзору, каталогу задач и отдельным рабочим разделам.

Настройка копирования и расписания

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

Мастер создания задачи
Мастер создания задачиВыбор PostgreSQL, MS SQL Server или 1С и переход к параметрам источника и хранения.

PostgreSQL

Форматы Custom и Directory, в том числе параллельная выгрузка Directory.

MS SQL Server

Полные, COPY_ONLY, разностные копии и копии журнала транзакций. При работе с цепочкой учитывается совместимость файлов.

Файловая 1С

Штатная выгрузка DT или копирование файловой базы с проверкой исключительного доступа.

Серверная 1С

Копирование точно сопоставленной базы PostgreSQL или MS SQL Server. Просмотр платформ, баз и сеансов вынесен в отдельный раздел.

01Создание

Выгрузить исходную базу.

02Проверка

Выполнить настроенную проверку.

03Подготовка

При необходимости упаковать и зашифровать.

04Доставка

Передать в дополнительные хранилища.

После пробного запуска видны ход операции, предупреждения, итог и созданные файлы. Результат каждого этапа отражается отдельно.

Проверка и восстановление

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

Центр восстановления
Центр восстановленияВыбор файла копии, проверка готовности и восстановление в новую базу.

Пробное восстановление

Для PostgreSQL и MS SQL Server используется временная база с последующей очисткой.

Новая рабочая цель

Можно отдельно создать новую базу или файловую ИБ и оставить её для дальнейшей проверки.

Обычный сценарий не перезаписывает существующую рабочую базу. Перед началом проверяются источник и отсутствие новой цели. Это отделяет проверочные действия от постоянного восстановления.

Хранение и дополнительные копии

Основная копия остаётся в локальном каталоге. Готовый файл можно последовательно передать в сетевой каталог, FTP/FTPS, SFTP, S3 или совместимое S3-хранилище. Ошибка одной передачи отражается отдельно и не требует повторно выгружать базу.

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

Отдельное расписание

Момент создания копии и время её доставки можно разделить. Если подходящего файла нет, задание сообщает о проблеме.

Календарные поколения

Дневные, недельные, месячные и годовые точки дополняют хранение по сроку. При очистке сохраняются файлы, необходимые для восстановления.

Контролируемая очистка

Удалению подлежат только подтверждённые копии приложения, а не любые файлы с подходящим расширением или датой.

Проверка передачи

Для SFTP предусмотрена проверка закреплённого ключа сервера. Полученная удалённая копия повторно проверяется по контрольной сумме.

Защита секретов подключения и шифрование самих резервных копий — отдельные настройки приложения.

Диагностика и контроль

Свободное место проверяется отдельно, без запуска резервного копирования. При настроенных каналах приложение сообщает об изменении состояния через Email или Telegram и учитывает повторяющиеся состояния, чтобы не отправлять одинаковое предупреждение при каждой проверке.

Анализ баз данных
Анализ баз данныхРазмер базы, данные, индексы и крупнейшие объекты помогают понять, чем занято место.

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

Результат разработки

Создали единое рабочее приложение для настройки задач и расписания, просмотра журналов, проверки, восстановления и дополнительных копий. Администратор может проследить путь от исходной базы до файла и отдельно увидеть проблемы выполнения, проверки или доставки.

Общий рабочий процесс

Задачи, подключения, расписание и журналы связаны между собой.

Различимые результаты

Успех выгрузки, результат проверки и итог доставки видны отдельно.

Восстановление под контролем

Проверочные сценарии и восстановление в новую цель имеют разные действия.

Понятный интерфейс

Современные рабочие разделы дополнены диагностикой, журналом действий и русскими пояснениями ошибок.

Понравилась разработка?

Поддержите проект — ваш лайк поможет другим читателям его заметить.

Нужен инструмент для вашей инфраструктуры?

Обсудим задачи резервного копирования, интеграции и разработки программного обеспечения.

Обсудить задачу ↗