pg_diag_setup#
pg_diag_setup
pg_diag_setup — Инструмент управления конфигурацией для PostgreSQL
Введение
Инструмент для управления конфигурацией Tantor SE с поддержкой профилей и системы откатов.
Системные требования
Python 3.x (протестировано на CentOS 7)
Tantor SE с доступом через Unix Domain Socket
Утилита
psql
в PATH
Установка
Скопируйте файл
pg_diag_setup.py
на сервер.Создайте директорию
profiles
и поместите в нее файлы профилей (например,default.yaml
).Сделайте скрипт исполняемым:
chmod +x pg_diag_setup.py
Использование
Базовый запуск (проверка конфигурации)
sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp
Применение профиля конфигурации
sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp --profile default.yaml --bin-dir /opt/path_to_binaries
Просмотр доступных резервных копий
sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp --list-backups
Откат изменений
sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp --undo 20240529_143022 --bin-dir /opt/path_to_binaries
Параметры командной строки
--port
- порт Tantor SE (по умолчанию: 5432)--unix-socket-dir
- директория Unix socket (по умолчанию: /tmp)--profile
- файл профиля YAML для применения--undo
- временная метка для отката изменений--list-backups
- показать доступный список резервных копий--bin-dir
- директория, где установлен дистрибутив Tantor SE-V
- показать номер версии утилиты-v
- включить подробный режим
Что делает программа
Задачи 1-2: Подключение и определение конфигурации
Подключается к Tantor SE через Unix Domain Socket
Определяет расположение файла конфигурации
postgresql.conf
Задача 3: Проверка postgresql.auto.conf
Проверяет наличие файла
postgresql.auto.conf
Задача 4: Анализ параметров
Парсит все файлы конфигурации
Создает список параметров с указанием источника
Учитывает include-директивы
Задача 5: Применение профиля
Читает YAML профиль с настройками расширений
Проверяет доступность расширений через
pg_available_extensions
Создает резервную копию конфигурации
Обновляет
shared_preload_libraries
без перезаписи существующих библиотекДобавляет новые параметры в конец
postgresql.conf
Помечает добавленные параметры комментарием “Added by pg_diag_setup”
Задача 6: Система откатов
Создает резервные копии с временными метками
Позволяет откатить изменения к любой предыдущей резервной копии
Формат файла профиля
extension_name: shared_preload_lib: library_name create_cmd: CREATE EXTENSION command params: parameter1: value1 parameter2: value2
Безопасность
Все изменения сопровождаются созданием резервных копий
Существующие параметры не перезаписываются
Проверка доступности расширений перед установкой
Все новые параметры добавляются в конец файла
Примеры резервного копирования
После выполнения изменений создаются файлы вида:
postgresql.conf_backup_pds_20240529_143022
postgresql.auto.conf_backup_pds_20240529_143022
Ведение журнала
Программа выводит подробную информацию о всех выполняемых операциях:
Найденные файлы конфигурации
Список обнаруженных параметров
Создание резервных копий
Примененные изменения
Результаты операций
Ограничения
Требуется утилита
psql
Работает только с Unix Domain Socket подключениями
Простой YAML парсер (не поддерживает все возможности YAML)
Не выполняет автоматический перезапуск Tantor SE
Устранение неполадок
Ошибка подключения к Tantor SE
Проверьте правильность указания
--unix-socket-dir
Убедитесь, что Tantor SE запущен
Проверьте права доступа к socket файлу
Ошибка чтения конфигурации
Проверьте права доступа к файлам конфигурации
Убедитесь, что пользователь имеет права на чтение/запись
Ошибка парсинга YAML
Проверьте синтаксис файла профиля
Убедитесь в правильности отступов (2 и 4 пробела)
Рекомендации
Всегда делайте полные резервные копии перед применением изменений
Тестируйте изменения в тестовой среде
После применения профиля может потребоваться перезапуск Tantor SE
Ведите учет применяемых профилей и временных меток
Поддержка
Если возникают проблемы, проверьте:
Логи Tantor SE
Права доступа к файлам
Синтаксис YAML профиля
Доступность расширений в системе