Параметры модулей и расширений, специфичных для QHB

mask_pg_version (boolean)

Значение по умолчанию — off (выключен). При значении on (включен) QHB на запросы версии сервера select version(); будет выдавать версию ядра PostgreSQL вместо версии QHB.

Рекомендовано использовать параметр в случаях, когда внешняя система или клиент требует поддержки специфичной версии СУБД.

Для вступления в силу требуется перезагрузка СУБД.

enable_backtrace

Значение по умолчанию — true (включено). Предназначен для автоматического создания файлов трассировки при возникновения ошибок уровня FATAL.

Отключение параметра может производиться на холодную, с помощью изменения значения в qhb.conf на false (параметр принимает булево значение).

Отключение на работающей базе выполняется командой alter system set enable_backtrace to false;. В результате выполнения команды выдается предупреждение: WARNING: disabling this will limit support or even make it impossible. Для вступления изменений в силу требуется перезагрузить конфигурацию сервера, вызвав SQL-функцию pg_reload_conf(), выполнив qhb_ctl reload или отправив сигнал SIGHUP главному серверному процессу.

Если параметр отключен любым способом, то при каждом рестарте базы будет появляться предупреждение об ограниченной поддержке.

Включение параметра также можно осуществлять на отключенной (изменение значения на "true") или включенной базе (команда alter system set enable_backtrace to true; и pg_reload_conf()).

Файлы трассировки не содержат какой-либо персональной или конфиденциальной информации. Файлы необходимы для передачи в тех поддержку с целью определения части кода, которая привела к сбою.


Параметры менеджера кэша дисковых блоков TARQ

use_qhb_cache (boolean)

Логический параметр. При установке значения в true будет использоваться новая версия кэша.

qhb_cache_size (integer)

Общий размер буферного кэша (при включении use_qhb_cache=true значение shared_buffers не используется).

shared_buffers_partitions (integer)

Размер фрагментов кэша (партиций; не имеют отношения к партициям таблицы). Обращение к каждому фрагменту происходит независимо от остальных. Слишком большой размер приведет к возрастанию конкуренции за блокировки, слишком маленький может привести к задержкам, если в партиции не окажется пригодных к вытеснению блоков (все грязные или занятые фоновым процессом).

Рекомендуемое значение: 128.

tarq_cache.touch_queue_ignore (integer)

Процент заполнения фрагмента кэша, при котором обращения начинают приводить к операциям балансировки. Может принимать значения от 1 до 100 (целые числа). Для незаполненного или заполненного частично фрагмента балансировок не требуется.

Рекомендуемое значение: 50.

Ребалансировка — дорогая операция, в нагруженной среде к некоторым буферам (содержимое системных таблиц, словари, последовательности) может быть много тысяч обращений в секунду, существенно не влияющих на общий баланс. Для сглаживания можно использовать следующие параметры:

tarq_cache.touch_window (integer)

Время в секундах. Все обращения в течение этого периода считаются одним обращением.

Рекомендуемое значение: 3.

tarq_cache.touch_threshold (integer)

Количество обращений к буферу, по достижении которого происходит операция ребалансировки.

Рекомендуемое значение: 5.


Включение и управление алгоритмом вытеснения параметра HOLDMEM

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

use_possible_buffer (boolean)

Логический параметр. При установке значения в true будет использоваться буферный кэш.

qhb_possible_buffers_size (integer)

Общий размер буферного кэша.

shared_buffers_partitions (integer)

Используется общий параметр с TARQ — размер фрагментов кэша (партиций; не имеют отношения к партициям таблицы). Обращение к каждому фрагменту происходит независимо от остальных. Слишком большой размер партиций приведет к возрастанию конкуренции за блокировки, слишком маленький может привести к задержкам, если в партиции не окажется пригодных к вытеснению блоков (все «грязные» или занятые фоновым процессом).

Рекомендуемое значение: 128.

use_qhb_onlymem_cache (boolean)

Логический параметр. При установке значения в true будет использоваться кэш памяти.

qhb_onlymem_cache_size (integer)

Общий размер кэша памяти.


Параметры конфигурации расширения Rbytea

rbytea.filesystem_storage_path (string)

Определение каталога (точки монтирования файловой системы/тома) для сохранения образов данных.

Двоичные данные будут сохраняться в данном каталоге сервера. Для каждой базы будет создаваться свой подкаталог (по oid базы), а внутри него, во множестве подкаталогов, — собственно файлы с данными.

Имена вложенных каталогов от каталога базы данных до файла будут составлять uuid типа rbytea, а расширение файла — номер транзакции, в которой данные впервые появились в системе.

Каталог должен быть доступен на чтение и запись в него для пользователя, от имени которого запускается сервер баз данных.

По умолчанию, если параметр опущен или пуст, каталогом для сохранения двоичных данных назначается '<каталог_базы_данных>/rbytea'.

shared_preload_libraries (string)

Загрузка разделяемой библиотеки при старте QHB.

Данный параметр обеспечивает загрузку разделяемой библиотеки при старте QHB и инициализацию фонового процесса для очистки устаревших образов. В противном случае автоочистка устаревших образов производится не будет.

Необходимо добавить значение 'librbytea'.

Примечание
Если параметр shared_preload_libraries уже содержит указание на загрузку других библиотек, нужно не перезаписать его значение, а добавить через разделитель librbytea.

rbytea.worker_restart_time (integer)

Интервал запуска фонового процесса очистки.

Фоновый процесс не работает постоянно. Поскольку данные достаточно статичны, не требуется запускать процесс очистки слишком часто. Задержка от окончания предыдущего запуска до следующего запуска задается в данном параметре. Значение указывается в секундах. Значение по умолчанию — 86400 секунд (сутки).

rbytea.databases_for_vacuuming (string)

Задание баз данных для фонового процесса очистки.

Параметр указывает, какие базы данных подлежат очистке. Указываются названия баз данных через запятую. Главный процесс базы данных будет запускать столько фоновых процессов очистки, сколько баз данных перечислено в данном параметре. Значение по умолчанию — qhb.

rbytea.filesystem_qss_mode (integer)

Включение фонового шифрования.

Если в системе доступно фоновое шифрование при записи на диск, данный параметр позволяет зашифровывать также и двоичные данные rbytea. Для шифрования в параметре необходимо установить значение 1. Значение по умолчанию — 0.

При зашифровании данные дополняются (выравниваются) до границы 16-байтных блоков, поэтому функции len(rbytea) и len_full(rbytea) для одних и тех же данных могут возвращать разное значение. А функции md5store(rbytea) и sha256store(rbytea) подсчитывают контрольные суммы для зашифрованных данных, дополненных до границы 16-байтного блока.

Вопросы смены ключа шифрования должны решаться администратором базы данных.


2B: Поддержка решений 1С

Конфигурационные параметры немедленного обновления статистики

online_analyze.enable (boolean)

Включает функцию немедленного анализа. Значение по умолчанию — false (выключен).

online_analyze.verbose (boolean)

Включает возможность протоколирования в журнал при сборе статистики (аналогично команде SQL ANALYZE VERBOSE). Значение по умолчанию — false (выключен).

online_analyze.table_type (enum)

Указывает тип таблиц, для которых следует применять немедленный анализ. Возможные варианты значений: all (все), persistent (постоянные), temporary (временные), none (никакие). Значение по умолчанию — temporary.

online_analyze.exclude_tables (string)

Указывает список таблиц, исключаемых из немедленного анализа. Например, "имя_таблицы_1, имя_таблицы_2 ...". Значение по умолчанию — пустая строка ('').

online_analyze.include_tables (string)

Задает список таблиц, подлежащих немедленному анализу (этот параметр переопределяет параметр online_analyze.exclude_tables). Значение по умолчанию — пустая строка ('').

Примечание
Значения этих двух параметров записываются в виде списка имен таблиц через запятую.

online_analyze.local_tracking (boolean)

Включает хранение статистики временных таблиц в локальном кэше. Значение по умолчанию — false (выключен).

online_analyze.capacity_threshold (integer)

Задает максимальное число временных таблиц, сохраняемых в локальном кэше. Значение по умолчанию — 100000.

Примечание
По умолчанию используется системная статистика, но имеет смысл хранить ее в локальном кэше процесса, обслуживающего сессию.

online_analyze.scale_factor (floating point)

Задает процент измененных строк от всей таблицы, при котором начинается немедленный анализ. Значение по умолчанию — 0.1.

online_analyze.threshold (integer)

Задает минимальное число измененных строк, после которого может начаться немедленный анализ. Значение по умолчанию — 50.

online_analyze.lower_limit (integer)

Указывает минимальное число строк в таблице, при котором может начаться немедленный анализ. Значение по умолчанию — 0.

online_analyze.min_interval (integer)

Минимальный интервал времени между вызовами команды ANALYZE для конкретной таблицы (в миллисекундах). Значение по умолчанию — 10000.


Конфигурационные параметры для управления использованием индексов

plantuner.disable_index (string)

Задает список индексов, которые нельзя использовать.

plantuner.enable_index (string)

Задает список индексов, которые все-таки можно использовать (этот параметр переопределяет параметр plantuner.disable_index).

plantuner.only_index (string)

Задает точный список индексов, которые можно использовать (этот параметр переопределяет параметры plantuner.disable_index и plantuner.enable_index).

Примечание
Значения этих трех параметров записываются в виде списка имен индексов через запятую.

Разрешение имени индекса происходит для конкретного пользователя, даже если параметр задан на уровне сервера. Если индекс не найден по имени, например, когда индекс вообще не существует, он игнорируется.

plantuner.fix_empty_table (boolean)

Этот параметр меняет оценку планировщиком совсем пустых таблиц (только что созданных или опустошенных при помощи команды TRUNCATE). Если значение равно true, то QHB планирует в предположении, что эти таблицы так и будут оставаться пустыми. При значении false QHB по умолчанию будет считать, что таблицы содержат некоторое количество записей (обычно 20).


Очистка памяти с повышенной безопасностью

QHB предоставляет возможность перед удалением данных выполнить соответствующую очистку памяти, то есть выполнить перезапись этих данных нулевыми байтами. Управление данными возможностями осуществляется с помощью соответствующих конфигурационных параметров в файле конфигурации qhb.conf.

В стандартной версии данные параметры по умолчанию отключены (false) для исключения торможения. В сертифицированной версии эти параметры должны быть включены (true) в обязательном порядке.

Удаление файлов из внешней памяти

wipe_file_on_delete (boolean)

Включает удаление файлов из внешней памяти.

Для SQL-команд, выполняющих удаление файлов и возврат операционной системе соответствующего дискового пространства, включение данного параметра обеспечит заполнение файлов нулевыми байтами перед удалением. К данным командам относятся:

  • команды по удалению объектов БД: DROP DATABASE, DROP INDEX, DROP MATERIALIZED VIEW, DROP SCHEMA,DROP TABLE, DROP TEMPORARY TABLE, TRUNCATE;
  • и команды по пересозданию объектов БД: ALTER TABLE ADD COLUMN, ALTER TABLE ALTER COLUMN TYPE, REINDEX, VACUUM FULL.

Очистка страниц

wipe_heaptuple_on_delete (boolean)

Включает очистку страниц.

Включение данного параметра обеспечит заполнение нулевыми байтами всех мест на странице, которые помечаются как свободные при выполнении процесса VACUUM.

Очистка блоков памяти в ОЗУ

wipe_memctx_on_free (boolean)

Включает очистку блоков памяти в ОЗУ.

Включение данного параметра обеспечит заполнение нулевыми байтами освобождаемой области оперативной памяти (ОЗУ), соответствующей удаляемому контексту.

Очистка файлов WAL

wipe_xlog_on_free (boolean)

Включает очистку файлов WAL.

Включение данного параметра обеспечит заполнение нулевыми байтами сегментов журнала упреждающей записи (WAL) перед удалением или переиспользованием.


Запуск планировщика, брокера очереди сообщений при старте СУБД

with_qsched (string)

Включает запуск планировщика задач при старте СУБД.

with_mq_broker (string)

Включает запуск брокера очереди сообщений при старте СУБД.

Примечание
Значения этих параметров записываются в виде списка пар владельцев баз данных и имен баз данных через запятую. Например, 'db_owner1:dbname1, db_owner2:db_name2' или 'db_owner3:dbname3', где db_owner$ - имя владельца базы данных, а db_name$ - имя базы данных.