G.1. pgpro_datactl — управление файлами данных Postgres Pro Enterprise

G.1.1. Обзор

Утилита pgpro_datactl предоставляет инструменты для управления файлами данных Postgres Pro Enterprise и включает в себя модуль для работы с CFS (Compressed File Storage, сжатая файловая система). Этот модуль предлагает следующую функциональность:

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

  • Распаковка файлов CFS для дальнейшего анализа.

G.1.2. Установка

pgpro_datactl поставляется вместе с Postgres Pro Enterprise в виде отдельного пакета pgpro-datactl-ent-14 (подробные инструкции по установке приведены в Главе 17).

G.1.3. Команды

pgpro_datactl поддерживает следующие команды:

G.1.3.1. unpack

pgpro_datactl unpack --source=исходный_путь --target=целевой_путь
[--calg=алгоритм_сжатия] [-verbose] [--log-level=уровень_сообщений] [--help]

Распаковывает файлы CFS.

-s=исходный_путь
--source=исходный_путь

Указывает путь к сжатому файлу или каталогу.

Примечание

Путь должен находиться в каталоге с именем PG_версия_дата, содержащем файл pg_compression.

-t=целевой_путь
--target=целевой_путь

Указывает путь к каталогу, в который будут помещены распакованные файлы.

Если исходный и целевой каталоги совпадают, файлы распаковываются с расширением .dec.

-c=алгоритм_сжатия
--calg=алгоритм_сжатия

Указывает используемый алгоритм сжатия. Если параметр не указан, команда unpack возьмёт это значение из файла pg_compression.

-v
--verbose

Включает подробную запись в журнал.

--log-level=уровень_сообщений

Устанавливает уровень сообщений. Возможные значения: info, warning, error.

Пример:

pgpro_datactl unpack -s /path/to/archive.cfs -t /path/to/destination -c zstd

В этом примере unpack извлекает файл archive.cfs, сжатый алгоритмом zstd, в каталог /path/to/destination.

G.1.3.2. probe

pgpro_datactl probe --source=исходный_путь [--log-level=уровень_сообщений] [--help]

Анализирует указанный файл и определяет следующее:

  • Тип сжатия. Алгоритм сжатия zlib или zstd.

  • Уровень фрагментации. Анализирует соответствующий файл *.cfm (при его наличии) и сообщает процент неиспользуемого пространства в физическом файле.

  • Принадлежность файла к CFS. Проверяет наличие связанного файла *.cfm, что указывает на принадлежность файла к архиву CFS.

-s=исходный_путь
--source=исходный_путь

Указывает путь к целевому файлу.

--log-level=уровень_сообщений

Устанавливает уровень сообщений. Возможные значения: info, warning, error.

Пример вывода:

Probing path: /data/sample.dat
Has cfm file: Yes
pg_compression: zstd
Actual compression: zstd
Fragmentation: 5%

В этом примере файл сжат алгоритмом zstd, является частью архива CFS и имеет уровень фрагментации пять процентов.

G.1.3.3. info

pgpro_datactl info --source=исходный_путь [--log-level=уровень_сообщений] [--help]

Анализирует файл и отображает следующую информацию:

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

  • Включён ли сборщик мусора (GC).

  • Наличие и доступность файла *.cfm.

-s=исходный_путь
--source=исходный_путь

Указывает путь к целевому файлу.

--log-level=уровень_сообщений

Устанавливает уровень сообщений. Возможные значения: info, warning, error.

Пример вывода:

Physical size: 10485760
Virtual size: 9437184
Used size: 7864320
GC active: Yes