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

Общие параметры

mask_pg_version (boolean)

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

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

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

mask_version_template (string)

По умолчанию никак не влияет на значение имени и версии, то есть если значение закомментировано или убрано, то представление версии стандартное и зависит только от mask_pg_version (boolean).

В случае задания администратором в конфигурационном файле специфического выражения, например:

mask_version_template = 'This is QHB {qv} mimicking PG {pv}!\n {lv}'

где:

  • {qv} - текущая версия QHB;

  • {pv} - версия текущего ядра PostgreSQL;

  • {lv} - информация о лицензии QHB.

подменяет стандартное представление версии и имени продукта в соответствии с указанным выражением.

mask_version_template имеет более высокий приоритет, чем mask_pg_version. То есть при наличии в конфигурационном файле значения у mask_version_template значение mask_pg_version не учитывается.

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

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

enable_backtrace (boolean)

Значение по умолчанию — 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, а расширение файла — номер транзакции, в которой данные впервые появились в системе.

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

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

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)

Примечание
Параметр зависит от наличия QSS и связанных его парамеметров, см. Параметры QSS.

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

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

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



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)

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

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

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$ — имя базы данных.



Автоматическая очистка журнала выполненных задач планировщика

Включение очистки журнала выполненных задач требует указания параметров qsched_log_rotation_max_lifetime и/или qsched_log_rotation_max_entries, а также qsched_log_rotation_period.

qsched_log_rotation_max_lifetime (string)

Максимальное время жизни записи в журнале, указывается в формате '1d 1h 1m'.

qsched_log_rotation_max_entries (string)

Максимальное количество записей в журнале, указывается в формате '1d 1h 1m'.

qsched_log_rotation_period (string)

Периодичность удаления записей в журнале, указывается в формате '1d 1h 1m'.

qsched_log_rotation_strategy (integer)

Стратегия очистки журнала, 0DELETE, 1TRUNCATE, 2 — автоматически. Значение по умолчанию — 0.

Примечание
Поскольку TRUNCATE системных таблиц требует разрешения на модификацию системных таблиц, для работ стратегий 1 и 2 требуется дополнительный параметр конфигурации allow_system_table_mods = true.

qsched_log_rotation_adjustment_period (integer)

Периодичность подстройки автоматической стратегии. Значение по умолчанию — 10.



Включение фоновых процессов целостности и безопасности

Включение фонового процесса контроля целостности требует указания параметра integrity_checks.

Подсистема контроля целостности поддерживает конфигурацию периодичности проверок целостности на запущенной СУБД: используется параметр integrity_period.

Включение фонового процесса контроля профилей безопасности требует указания параметра logon_jobs.

integrity_checks (bool)

Включение фонового процесса контроля целостности, указывается в формате 'on off'. Значение по умолчанию — off (выключен).

integrity_period (string)

Период проведения проверок целостности на данной СУБД, указывается в формате временных единиц '1d 1h 1m'. Значение по умолчанию — 12 часов (12h).

logon_jobs (bool)

Включение фонового процесса контроля профилей безопасности, указывается в формате 'on off'. Значение по умолчанию — off (выключен).

Примечание
Перед обновлением кластера утилитами qhb_upgrade следует выключить параметр logon_jobs, выставив его в off, и перезапустить СУБД. Иначе стабильность процесса обновления кластера не гарантируется (см. раздел Профили безопасности).

Примечание
Перед обновлением кластера утилитами qhb_upgrade следует выключить параметр integrity_checks, выставив его в off, и перезапустить СУБД. Иначе стабильность процесса обновления кластера не гарантируется.



Параметры модуля безопасного хранения QSS

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

qss_mode (integer)

Значение 0 (по умолчанию) означает отказ от использования возможностей QSS. При значении 2 QHB может использовать возможности QSS. Значение 1 является зарезервированным и устаревшим.

qss_encrypt_statistic (bool)

Шифровать ли статистики по данным таблиц. При включении параметра будут зашифрованы статистики по всем таблицам, а не только по шифрованным. Если qss_mode выключено, то параметр игнорируется.

Значение по умолчанию false.

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

qss_shmem_size_cap (integer)

Устанавливает память, зарезервированную для связи с сервером QSS. Использование памяти в любом случае начинается с 8 Кб, но может вырасти до этого предела.

Каждый бэкэнд имеет собственную память. Объекты большего размера могут быть зашифрованы, но для обработки каждого из них память будет выделяться и освобождаться заново.