H.2. pg_diag_setup#

H.2. pg_diag_setup

H.2. pg_diag_setup #

pg_diag_setup — инструмент управления конфигурацией для Tantor BE

H.2.1. Введение #

Инструмент для управления конфигурацией Tantor BE с поддержкой профилей и системы откатов.

H.2.2. Системные требования #

  • Python 3.x

  • Tantor BE с доступом через Unix Domain Socket

  • Утилита psql в PATH

H.2.3. Установка #

  1. Скопируйте файл pg_diag_setup.py на сервер.

  2. Создайте директорию profiles и поместите в нее файлы профилей (например, default.yaml).

  3. Сделайте скрипт исполняемым:

    chmod +x pg_diag_setup.py
    

H.2.4. Использование #

H.2.4.1. Базовый запуск (проверка конфигурации) #

sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp

H.2.4.2. Применение профиля конфигурации #

sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp --profile default.yaml --bin-dir /opt/path_to_binaries

H.2.4.3. Просмотр доступных резервных копий #

sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp --list-backups

H.2.4.4. Откат изменений #

sudo ./pg_diag_setup.py --port 5432 --unix-socket-dir /tmp --undo 20240529_143022 --bin-dir /opt/path_to_binaries

H.2.5. Параметры командной строки #

  • --port - порт Tantor BE (по умолчанию: 5432)

  • --unix-socket-dir - директория Unix socket (по умолчанию: /tmp)

  • --profile - файл профиля YAML для применения

  • --undo - временная метка для отката изменений

  • --list-backups - показать доступный список резервных копий

  • --bin-dir - директория, где установлен дистрибутив Tantor BE

  • -V - показать номер версии утилиты

  • -v - включить подробный режим

H.2.6. Что делает программа #

H.2.6.1. Задачи 1-2: Подключение и определение конфигурации #

  • Подключается к Tantor BE через Unix Domain Socket

  • Определяет расположение файла конфигурации postgresql.conf

H.2.6.2. Задача 3: Проверка postgresql.auto.conf #

  • Проверяет наличие файла postgresql.auto.conf

H.2.6.3. Задача 4: Анализ параметров #

  • Парсит все файлы конфигурации

  • Создает список параметров с указанием источника

  • Учитывает include-директивы

H.2.6.4. Задача 5: Применение профиля #

  • Читает YAML профиль с настройками расширений

  • Проверяет доступность расширений через pg_available_extensions

  • Создает резервную копию конфигурации

  • Обновляет shared_preload_libraries без перезаписи существующих библиотек

  • Добавляет новые параметры в конец postgresql.conf

  • Помечает добавленные параметры комментарием Added by pg_diag_setup

H.2.6.5. Задача 6: Система откатов #

  • Создает резервные копии с временными метками

  • Позволяет откатить изменения к любой предыдущей резервной копии

H.2.7. Формат файла профиля #

extension_name:
  shared_preload_lib: library_name
  create_cmd: CREATE EXTENSION command
  params:
    parameter1: value1
    parameter2: value2

H.2.8. Безопасность #

  • Все изменения сопровождаются созданием резервных копий

  • Существующие параметры не перезаписываются

  • Проверка доступности расширений перед установкой

  • Все новые параметры добавляются в конец файла

H.2.9. Примеры резервного копирования #

После выполнения изменений создаются файлы вида:

  • postgresql.conf_backup_pds_20240529_143022

  • postgresql.auto.conf_backup_pds_20240529_143022

H.2.10. Ведение журнала #

Программа выводит подробную информацию о всех выполняемых операциях:

  • Найденные файлы конфигурации

  • Список обнаруженных параметров

  • Создание резервных копий

  • Примененные изменения

  • Результаты операций

H.2.11. Ограничения #

  • Требуется утилита psql

  • Работает только с Unix Domain Socket подключениями

  • Простой YAML парсер (не поддерживает все возможности YAML)

  • Не выполняет автоматический перезапуск Tantor BE

H.2.12. Устранение неполадок #

  1. Ошибка подключения к Tantor BE

    • Проверьте правильность указания --unix-socket-dir

    • Убедитесь, что Tantor BE запущен

    • Проверьте права доступа к socket файлу

  2. Ошибка чтения конфигурации

    • Проверьте права доступа к файлам конфигурации

    • Убедитесь, что пользователь имеет права на чтение/запись

  3. Ошибка парсинга YAML

    • Проверьте синтаксис файла профиля

    • Убедитесь в правильности отступов (2 и 4 пробела)

H.2.13. Рекомендации #

  • Всегда делайте полные резервные копии перед применением изменений

  • Тестируйте изменения в тестовой среде

  • После применения профиля может потребоваться перезапуск Tantor BE

  • Ведите учет применяемых профилей и временных меток

H.2.14. Поддержка #

Если возникают проблемы, проверьте:

  1. Логи Tantor BE

  2. Права доступа к файлам

  3. Синтаксис YAML профиля

  4. Доступность расширений в системе