https://github.com/smsoft-ru/pgdbdump
Linux shell scripts for backup and restore full/incremental/differential dumps of postgres databases
https://github.com/smsoft-ru/pgdbdump
backup backup-solution bash-script database database-management dialog differential-backups incremental-backups linux pgsql postgres postgresql postgresql-database productivity
Last synced: 2 months ago
JSON representation
Linux shell scripts for backup and restore full/incremental/differential dumps of postgres databases
- Host: GitHub
- URL: https://github.com/smsoft-ru/pgdbdump
- Owner: smsoft-ru
- License: gpl-3.0
- Created: 2024-01-06T19:22:36.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-08T18:30:21.000Z (over 1 year ago)
- Last Synced: 2025-01-08T22:09:46.191Z (4 months ago)
- Topics: backup, backup-solution, bash-script, database, database-management, dialog, differential-backups, incremental-backups, linux, pgsql, postgres, postgresql, postgresql-database, productivity
- Language: Shell
- Homepage:
- Size: 291 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-ru.md
- License: LICENSE
Awesome Lists containing this project
README
pgdbdump v1.0
Набор сценариев оболочки Linux, предназначенный для создания полных, дифференциальных или инкрементных дампов баз данных postgres.
Этот набор скриптов также включает в себя интерактивный скрипт, основанный на dialog (который, в свою очередь, основан на ncurses)
для восстановления этих дампов.(C) 2024 Сергей Мерзликин [email protected]
Распространяется под лицензией GNU General Public License v3.0.
pgdbdump.sh используется для создания дампов. При создании полного дампа он работает так:
1. Он создает текстовый дамп базы данных в raw-формате во временном каталоге.
2. Он создает rdiff-сигнатуру для созданного дампа и сохраняет (или заменяет, если существует) ее в каталоге резервных копий.
3. Он сжимает дамп с помощью lrzip, pixz, xz или 7-zip (в зависимости от опций в конфигурационном файле и от размера дампа)
и сохраняет его в каталоге резервных копий. Временный несжатый дамп после этого удаляется. Информация о дате и типе дампа
содержится в имени файла сжатого дампа.При создании дифференциального или инкрементного дампа он работает так:
1. Он создает текстовый дамп базы данных в raw-формате во временном каталоге.
2. Он создает дельта-файл rdiff во временном каталоге используя ранее сохраненную сигнатуру rdiff.
3. Только при создании инкрементного дампа он создает rdiff-сигнатуру для созданного дампа и заменяет ее в каталоге резервных копий.
4. Он сжимает дельта-файл rdiff вышеупомянутыми архиваторами и сохраняет его в каталоге резервных копий. Временный несжатый дамп
и дельта-файл после этого удаляются. Информация о дате и типе дампа содержится в имени сжатого дельта-файла.Основным способом запуска pgdbdump.sh являются задания cron.
pgdbrestore.sh - это интерактивный (с возможностью неинтерактивного запуска) удобный скрипт, предназначенный для восстановления
архивов базы данных postgres, созданных скриптом pgdbdump.sh, в новую или исходную базу данных. Также имеется возможность
реконструировать текстовый дамп в raw-формате для последующего ручного восстановления (возможно, на другой машине).
Скрипт распаковывает и комбинирует дифференциальные, инкрементные и полные дампы (с помощью rdiff), и при помощи полученного
полного дампа восстанавливает базу данных postgres. Диалоговые экраны скрипта позволяют выбрать базу данных для восстановления, дату
архива, режим восстановления (в исходную базу данных, новую базу данных или сохранить полный дамп на диске) и некоторые другие опции.Диалоговые окна и сообщения журнала могут отображаться на разных национальных языках. В настоящее время поддерживаются английский
и русский языки. Поддержка других языков может появиться в будущем.Оба скрипта могут регистрировать свои действия и ошибки в systemd journal и syslog. Параметры командной строки и параметры
конфигурации описаны в начале соответствующих файлов.Зависимости:
- postgres (pg_dump, psql)
- rdiff
- lrzip
- pixz
- xz
- 7-zip
- bash
- dialog
- realpath
- loggerУтилиты сжатия требуются только те, которые настроены (для сжатия), и для которых соответствующие типы архивов присутствуют в каталоге
резервных копий (для распаковки). Если выбран тип сжатия "auto" (по умолчанию), то используются pixz и lrzip, если они установлены
(рекомендуется), и xz в противном случае.Большинство из вышеперечисленных зависимостей уже присутствуют в современных дистрибутивах Linux.
Установка:
- Проверьте зависимости и установите недостающие, если необходимо
- Скопируйте конфигурационные файлы в каталог /etc/pgdbdump
- Скопируйте остальные файлы в любой каталог в файловой системе (все файлы должны быть вместе)
- Измените права файлов, чтобы сделать исполняемыми: pgdbdump.sh, pgdbdump_diff.sh, pgdbdump_full.sh и pgdbrestore.sh
- Настройте каталог резервных копий в конфигурационных файлах
- Настройте задания cron для создания дампов на регулярной основеНесколько скриншотов работы скрипта pgdbrestore.sh:
Выбор базы данных для восстановления

Настройка диапазона дат для поиска и отображения дампов

Панель календаря появляется после активации экранной кнопки "Изменить" на предыдущем скриншоте

Этот экран позволяет выбрать конкретный дамп для восстановления

Выбор режима восстановления

Выбран режим сохранения реконструированного дампа: выбор каталога для сохранения файла дампа

Выбран режим восстановления в новую базу данных: задание имени новой базы данных

Подтверждение создания новой базы данных

Процесс восстановления начался

База данных успешно восстановлена
