Утилита pgpro_datactl предоставляет инструменты для управления файлами данных Postgres Pro Enterprise и включает в себя модуль для работы с CFS (Compressed File Storage, сжатая файловая система). Этот модуль предлагает следующую функциональность:
Получение метаданных сжатых файлов, включая алгоритм сжатия и их расположение.
Распаковка файлов CFS для дальнейшего анализа.
pgpro_datactl поставляется вместе с Postgres Pro Enterprise в виде отдельного пакета pgpro-datactl-ent-16 (подробные инструкции по установке приведены в Главе 17).
pgpro_datactl поддерживает следующие команды:
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.
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 и имеет уровень фрагментации пять процентов.
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