Каталоги базы данных

В этом документе описана структура файловых каталогов, используемая кластером YMatrix во время работы. С функциональной точки зрения каталоги делятся на следующие категории:

  • Каталог установки
  • Каталог системной конфигурации
  • Каталог хранения данных
  • Каталог данных etcd
  • Каталоги журналов

Каталог установки

Путь к каталогу

/opt/ymatrix/matrixdb6 — основной каталог установки кластера. Он содержит исполняемые файлы, библиотеки, шаблоны конфигурации и другие ключевые компоненты времени выполнения.

Структура каталога

matrixdb6/
├── bin                     # Основные исполняемые команды
├── docs                    # Документация и справочные файлы
├── etc                     # Файлы метаданных Git
├── greenplum_path.sh       # Скрипт инициализации переменных окружения
├── include                 # Заголовочные файлы (объявления интерфейсов)
├── lib                     # Основные библиотечные файлы (общие и статические библиотеки)
├── libexec                 # Внутренние скрипты и утилиты (используются внутри кластера)
├── sbin                    # Административные утилиты, требующие повышенных привилегий
└── share                   # Общие ресурсы (определения системных каталогов, SQL-скрипты и т.д.)

Каталог системной конфигурации

Путь к каталогу

/etc/matrixdb6 — глобальный каталог конфигурации кластера. Здесь хранятся топология кластера, конфигурации служб и другие системные настройки.

Структура каталога

matrixdb6/
├── alert.yml                         # Конфигурация оповещений
├── auth.conf                         # Учётные данные mxadmin для веб-интерфейса MXUI
├── cluster.conf                      # Основная конфигурация кластера (узлы, порты, роли и т.д.)
├── defaults.conf                     # Параметры назначения портов по умолчанию
├── mxui                              # Конфигурация веб-интерфейса управления MXUI
├── physical_cluster.toml             # Конфигурация физического кластера (включая порты etcd)
├── postmaster.env                    # Переменные окружения для процесса postmaster
├── recover_db_cluster.json           # Конфигурация узлов экземпляра базы данных
├── recover_physical_cluster.json     # Конфигурация кластера etcd в архитектуре YMatrix SOA; используется утилитой `etcdrecover`
├── scripts                           # Скрипты мониторинга и обслуживания
├── service                           # Определения служб компонентов (например, etcd, MXUI)
└── supervisor.conf                   # Конфигурация Supervisor для управления процессами базы данных

Каталог хранения данных

Путь к каталогу

Выполните следующий SQL-запрос, чтобы определить пути каталогов данных для каждого сегмента:

SELECT * FROM gp_segment_configuration;

Структура каталога MASTER-ноды

├── base                    # Данные пользовательских баз; каждая БД имеет подкаталог с именем, равным её OID
├── current_logfiles        # Файл сопоставления активных путей журналов, поддерживающий ротацию логов
├── fts_probe_file.bak      # Резервная копия состояния зонда FTS (Fault Tolerance Service)
├── global                  # Глобальные системные каталоги (общие для всех БД: роли, табличные пространства и т.д.)
├── init_cluster.json       # Метаданные инициализации узла (роль, порт и т.д.)
├── internal.auto.conf      # Автоматически сгенерированный идентификатор базы данных
├── log                     # Журналы выполнения для данного узла
├── pg_commit_ts            # Временные метки фиксаций транзакций (для восстановления на заданную точку во времени)
├── pg_distributedlog       # Логи распределённых транзакций (для двухфазной фиксации между узлами)
├── pg_dynshmem             # Динамическая разделяемая память для IPC при параллельных запросах
├── pg_hba.conf             # Правила аутентификации клиентов и контроля доступа
├── pg_hba.conf.bak         # Резервная копия pg_hba.conf
├── pg_ident.conf           # Сопоставление пользователей ОС и пользователей БД
├── pg_logical              # Данные логической репликации (слоты, плагины декодирования)
├── pg_multixact            # Метаданные управления многотранзакционной конкурентностью
├── pg_notify               # Асинхронные сообщения LISTEN/NOTIFY
├── pg_replslot             # Слоты репликации (используются потоковой репликацией Domino)
├── pg_serial               # Данные для обнаружения конфликтов при сериализуемой изоляции
├── pg_snapshots            # Экспортированные снимки транзакций
├── pg_stat                 # Постоянная статистика (размеры таблиц, использование индексов и т.д.)
├── pg_stat_tmp             # Временная статистика (периодически сбрасывается в pg_stat)
├── pg_subtrans             # Отслеживание статуса подтранзакций
├── pg_tblspc               # Символические ссылки на пользовательские табличные пространства
├── pg_twophase             # Подготовленные транзакции двухфазной фиксации
├── PG_VERSION              # Идентификатор основной версии СУБД
├── pg_wal                  # Файлы журнала предзаписи (WAL)
├── pg_xact                 # Статус фиксации/отката транзакций (сопоставление XID → WAL)
├── postgresql.auto.conf    # Автоматически генерируемый конфигурационный файл (не редактировать!)
├── postgresql.conf         # Основной файл конфигурации времени выполнения
├── postgresql.conf.bak     # Резервная копия postgresql.conf
├── postmaster.opts         # Аргументы командной строки, использованные при запуске postmaster
└── postmaster.pid          # PID и метаданные запущенного процесса postmaster

Структура каталога SEGMENT-ноды

Структура каталога SEGMENT-ноды практически идентична MASTER-ноде и включает следующие элементы:

├── base
├── current_logfiles
├── fts_probe_file.bak
├── global
├── internal.auto.conf
├── log
├── pg_commit_ts
├── pg_distributedlog
├── pg_dynshmem
├── pg_hba.conf
├── pg_hba.conf.bak
├── pg_ident.conf
├── pg_logical
├── pg_multixact
├── pg_notify
├── pg_replslot
├── pg_serial
├── pg_snapshots
├── pg_stat
├── pg_stat_tmp
├── pg_subtrans
├── pg_tblspc
├── pg_twophase
├── PG_VERSION
├── pg_wal
├── pg_xact
├── postgresql.auto.conf
├── postgresql.conf
├── postgresql.conf.bak
├── postmaster.opts
└── postmaster.pid

Каталог данных etcd

Путь к каталогу

Путь к каталогу данных etcd указан в файле /etc/matrixdb6/recover_physical_cluster.json.

Структура каталога

.
├── data  # Постоянные данные etcd (координационный «хребет» кластера YMatrix)
└── log   # Журналы выполнения etcd (важны для диагностики)

Каталоги журналов

Каталог журналов утилит

Расположен по пути /home/mxadmin/gpAdminLogs/ и содержит журналы административных инструментов YMatrix:

/home/mxadmin/gpAdminLogs/
├── check-version_20251221.log    # Проверка подключения к кластеру etcd
├── gpconfig_20251113.log         # Операции утилиты gpconfig
├── mxdeletesystem_20251201.log   # Очистка ресурсов утилитой mxdeletesystem
├── mxstart_20251221.log          # Запуск кластера через mxstart
├── mxstate_20251203.log          # Проверка состояния кластера утилитой mxstate
└── mxstop_20251221.log           # Остановка кластера через mxstop

Каталог журналов компонентов

Расположен по пути /var/log/matrixdb6/ и содержит журналы системных компонентов YMatrix:

/var/log/matrixdb6/
├── cluster_fgd4USi2WTNdsv7dhbXzwu.log          # Журналы процесса управления кластером
├── replication-2_fgd4USi2WTNdsv7dhbXzwu.log    # Журналы рабочего процесса репликации №2
├── replication-4_fgd4USi2WTNdsv7dhbXzwu.log    # Журналы рабочего процесса репликации №4
├── shard_fgd4USi2WTNdsv7dhbXzwu.log            # Журналы процесса управления шардами
......