×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.4.17. Параметры для разработчиков

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

allow_in_place_tablespaces (boolean) #

Позволяет создавать табличные пространства в виде подкаталогов, pg_tblspc, когда пустая строка пути передается в команду CREATE TABLESPACE . Данная возможность предназначена для тестирования сценариев репликации, при которых основной и резервный сервер запущены на одном хосте. Наличие таких каталогов может привести к ошибкам в работе инструментов резервного копирования, ожидающих наличия только символических ссылок в данном расположении. Только суперпользователи и пользователи, обладающие соответствующими SET привилегиями, могут изменять данный параметр.

allow_system_table_mods (boolean) #

Разрешает изменение структуры системных таблиц, а также выполнение иных рискованных операций с ними. В обычном режиме такие действия запрещены даже для суперпользователей. Неосторожное использование данного параметра может привести к безвозвратной потере данных или критическому повреждению системы баз данных. Только суперпользователи и пользователи, обладающие соответствующими SET привилегиями, могут изменять данный параметр.

backtrace_functions (string) #

Данный параметр содержит список имен C-функций, разделенных запятыми. Если возникает ошибка и имя внутренней C-функции, в которой произошла ошибка, совпадает со значением в списке, то трассировка стека записывается в журнал сервера вместе с сообщением об ошибке. Это может использоваться для отладки определенных участков исходного кода.

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

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

debug_discard_caches (integer) #

При установке значения 1, каждая запись в кэше системного каталога инвалидируется при первой возможности, независимо от того, произошло ли в действительности событие, требующее её аннулирования. Кэширование системных каталогов в результате фактически отключается, поэтому сервер будет работать крайне медленно. При более высоких значениях инвалидация кэша выполняется рекурсивно, что замедляет работу еще сильнее и полезно только для тестирования самой логики кэширования. Значение по умолчанию 0 выбирает стандартный режим кэширования каталога.

Данный параметр может быть очень полезен при попытке инициировать трудновоспроизводимые ошибки, связанные с одновременным изменением системного каталога, однако он в иных случаях требуется редко. См. файлы исходного кода inval.c и pg_config_manual.h для получения подробной информации.

Данный параметр поддерживается в тех случаях, когда DISCARD_CACHES_ENABLED был определен на этапе компиляции (что происходит автоматически при использовании скрипта конфигурирования параметра --enable-cassert). В производственных сборках его значение всегда будет 0 и попытки установить для него иное значение приведут к возникновению ошибки.

debug_io_direct (string) #

Запросить у ядра минимизацию эффектов кэширования для данных отношений и файлов WAL с использованием O_DIRECT (в большинстве Unix-подобных систем), F_NOCACHE (в macOS) или FILE_FLAG_NO_BUFFERING (в Windows).

Может принимать значение пустой строки (по умолчанию) для отключения использования прямого I/O или список операций через запятую, для которых должен использоваться прямой ввод-вывод (direct I/O). Допустимыми значениями параметров являются data для основные файлы данных, wal для файлов WAL, и wal_init для файлов WAL при их первоначальном выделении на диске.

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

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

debug_parallel_query (enum) #

Позволяет использовать параллельные запросы в целях тестирования даже в тех случаях, когда не ожидается повышения производительности. Допустимыми значениями параметра debug_parallel_query являются off (использовать параллельный режим только при ожидаемом росте производительности), on (принудительно выполнять параллельный режим для всех запросов, которые считаются безопасными), и regress (аналогично параметру on, но с дополнительными изменениями поведения, как описано ниже).

Более конкретно, установка данного значения в on приведет к добавлению значением Gather узла в начало любого плана запроса, для которого это представляется безопасным, чтобы запрос выполнялся в рамках параллельного рабочего процесса. Даже если параллельный рабочий процесс недоступен или не может быть использован, такие операции, как запуск подтранзакции, которые были бы запрещены в контексте параллельного запроса, будут запрещены, если только планировщик не сочтет, что это приведет к ошибке выполнения запроса. Если возникнут сбои или неожиданные результаты при установке данного параметра, некоторым функциям, используемым в запросе, может потребоваться присвоить метку PARALLEL UNSAFE (или, возможно, PARALLEL RESTRICTED).

Установка данного значения в regress имеет те же последствия, что и установка значения в on а также некоторые дополнительные эффекты, которые предназначены для упрощения автоматизированного регрессионного тестирования. Обычно сообщения от параллельного рабочего процесса включают строку контекста, указывающую на то, что, однако значение данного параметра regress подавляет вывод этой строки, чтобы результат соответствовал выводу при непараллельном выполнении. Кроме того, конфигурационном Gather узлы, добавляемые в планы при использовании этого параметра, скрываются в EXPLAIN из вывода, чтобы результат соответствовал тому, который был бы получен, если бы данный параметр был выключен off.

ignore_system_indexes (boolean) #

Игнорировать системные индексы при чтении системных таблиц (но по-прежнему обновлять индексы при изменении таблиц). Это полезно при восстановлении поврежденных системных индексов. Данный параметр не может быть изменен после начала сеанса.

post_auth_delay (integer) #

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

pre_auth_delay (integer) #

Интервал задержки непосредственно после того, как порождается новый серверный процесс, перед выполнением им процедуры аутентификации. Это предназначено для предоставления разработчикам возможность подключения к серверному процессу с помощью отладчика для отладки некорректного поведения при аутентификации. Если данное значение указано без указания единиц измерения, оно интерпретируется как значение в секундах. Значение ноль (по умолчанию) отключает задержку. Данный параметр может быть установлен только в postgresql.conf файле или в командной строке сервера.

trace_notify (boolean) #

Формирует большой объем отладочного вывода для LISTEN и NOTIFY команд. client_min_messages или log_min_messages должен иметь значение DEBUG1 или ниже для отправки данного вывода в журналы клиента или сервера соответственно.

trace_sort (boolean) #

Если параметр включен, выводится информация об использовании ресурсов при выполнении операций сортировки. Данный параметр доступен только в том случае, если TRACE_SORT макрос был определен при Digital Q.DataBase компиляции. (Однако, TRACE_SORT в настоящее время определено по умолчанию.)

trace_locks (boolean) #

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

LOG:  LockAcquire: new: lock(0xb7acd844) id(24688,24696,0,0,0,1)
      grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0
      wait(0) type(AccessShareLock)
LOG:  GrantLock: lock(0xb7acd844) id(24688,24696,0,0,0,1)
      grantMask(2) req(1,0,0,0,0,0,0)=1 grant(1,0,0,0,0,0,0)=1
      wait(0) type(AccessShareLock)
LOG:  UnGrantLock: updated: lock(0xb7acd844) id(24688,24696,0,0,0,1)
      grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0
      wait(0) type(AccessShareLock)
LOG:  CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
      grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0
      wait(0) type(INVALID)

Подробные сведения о структуре дампа можно найти в src/include/storage/lock.h.

Данный параметр доступен только в том случае, если LOCK_DEBUG макрос был определен, когда Digital Q.DataBase была скомпилирована.

trace_lwlocks (boolean) #

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

Данный параметр доступен только в том случае, если LOCK_DEBUG макрос был определен, когда Digital Q.DataBase была скомпилирована.

trace_userlocks (boolean) #

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

Данный параметр доступен только в том случае, если LOCK_DEBUG макрос был определен, когда Digital Q.DataBase была скомпилирована.

trace_lock_oidmin (integer) #

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

Данный параметр доступен только в том случае, если LOCK_DEBUG макрос был определен, когда Digital Q.DataBase была скомпилирована.

trace_lock_table (integer) #

Безусловная трассировка блокировок для данной таблицы (OID).

Данный параметр доступен только в том случае, если LOCK_DEBUG макрос был определен, когда Digital Q.DataBase была скомпилирована.

debug_deadlocks (boolean) #

Если этот параметр установлен, выводится информация обо всех текущих блокировках при превышении времени ожидания взаимоблокировки.

Данный параметр доступен только в том случае, если LOCK_DEBUG макрос был определен, когда Digital Q.DataBase была скомпилирована.

log_btree_build_stats (boolean) #

Если этот параметр установлен, в журнал записывается статистика использования системных ресурсов (памяти и центрального процессора) при различных операциях с B-деревьями.

Данный параметр доступен только в том случае, если BTREE_BUILD_STATS макрос был определен, когда Digital Q.DataBase была скомпилирована.

wal_consistency_checking (string) #

Данный параметр предназначен для поиска ошибок в процедурах повторного выполнения WAL (redo routines). При включении данного параметра образы полных страниц всех измененных буферов добавляются в запись WAL. При последующем воспроизведении записи система сначала применяет каждую запись, а затем проверяет, соответствуют ли измененные записью буферы сохраненным образам страниц. В определенных случаях (например, для бит-подсказок) незначительные расхождения допустимы и будут проигнорированы. Любые непредвиденные различия приведут к критической ошибке (fatal error) и завершению восстановления.

По умолчанию значением данного параметра является пустая строка, что отключает эту функцию. Параметр может быть установлен в значение all для проверки всех записей или содержать разделенный запятыми список диспетчеров ресурсов для проверки только тех записей, которые созданы этими диспетчерами. В настоящее время поддерживаются следующие диспетчеры ресурсов: куча, heap2, btree, hash, gin, gist, sequence, spgist, brinи generic. Расширения могут определять дополнительные менеджеры ресурсов. Только суперпользователи и пользователи с соответствующими SET привилегиями.

wal_debug (boolean) #

При значении on выводится отладочная информация, связанная с WAL. Данный параметр доступен только в том случае, если WAL_DEBUG макрос был определен при Digital Q.DataBase была скомпилирована.

ignore_checksum_failure (boolean) #

Параметр действует только в том случае, если data checksums включены.

Обнаружение ошибки контрольной суммы при чтении обычно приводит к Digital Q.DataBase выдаче сообщения об ошибке и прерыванию текущей транзакции. Установка ignore_checksum_failure параметра в значение on приводит к тому, что система игнорирует сбой (продолжая выводить предупреждение) и продолжает обработку. Такое поведение может стать причиной аварийного завершения работы, распространения или сокрытия повреждений данных, а также иных серьезных проблем. Однако это может позволить обойти ошибку и извлечь неповрежденные кортежи, которые все еще могут содержаться в таблице, если заголовок блока корректен. Если заголовок поврежден, ошибка будет зафиксирована, даже если этот параметр включен. Значение по умолчанию — off. Только суперпользователи и пользователи, обладающие соответствующими SET привилегиями, могут изменять данный параметр.

zero_damaged_pages (boolean) #

Обнаружение поврежденного заголовка страницы обычно приводит к тому, что Digital Q.DataBase выдаче сообщения об ошибке и прерыванию текущей транзакции. Установка zero_damaged_pages параметра в значение on приводит к тому, что система выводит предупреждение, обнуляет поврежденную страницу в оперативной памяти и продолжает обработку. Данное поведение приведет к уничтожению данных,, а именно всех строк на поврежденной странице. Однако это позволяет обойти ошибку и извлечь строки из любых неповрежденных страниц, которые могут присутствовать в таблице. Данная функция полезна для восстановления данных в случае, если произошло повреждение в результате аппаратного или программного сбоя. Как правило, не следует активировать этот параметр до тех пор, пока не будут исчерпаны все возможности восстановления данных из поврежденных страниц таблицы. Обнуленные страницы не сбрасываются на диск принудительно, поэтому рекомендуется выполнить пересоздание таблицы или индекса перед деактивацией данного параметра. Значение по умолчанию — off. Только суперпользователи и пользователи, обладающие соответствующими SET привилегиями, могут изменять данный параметр.

ignore_invalid_pages (boolean) #

При установке значения off (по умолчанию), при котором обнаружение записей WAL, содержащих ссылки на невалидные страницы, в процессе восстановления вызывает Digital Q.DataBase для ошибку уровня PANIC, прерывающую процесс восстановления. Установка значения ignore_invalid_pages в значение on заставляет систему игнорировать ссылки на невалидные страницы в записях WAL (с выводом соответствующего предупреждения) и продолжать восстановление. Подобное поведение может стать причиной аварийного завершения работы, потери данных, распространения или сокрытия повреждений, а также иных серьезных проблем.. Тем не менее, это позволяет обойти ошибку уровня PANIC, для завершения восстановления и обеспечения запуска сервера. Данный параметр может быть установлен только при запуске сервера. Он применяется только в процессе восстановления или в режиме ожидания.

jit_debugging_support (boolean) #

Если LLVM обладает необходимым функционалом, регистрировать сгенерированные функции в с GDB. Это упрощает процесс отладки. Значение по умолчанию — off. Данный параметр может быть задан только при запуске сервера.

jit_dump_bitcode (boolean) #

Записывает сгенерированный LLVM IR во внешнюю файловую систему, в каталог data_directory. Это используется только при отладке внутренних механизмов реализации JIT. Значение по умолчанию — off. Только суперпользователи и пользователи, обладающие соответствующими SET привилегиями, могут изменять данный параметр.

jit_expressions (boolean) #

Определяет необходимость JIT-компиляции выражений при условии активации JIT-компилятора (см. Раздел 3.15.2). Значение по умолчанию — on.

jit_profiling_support (boolean) #

Если LLVM обладает необходимым функционалом, выводит данные, необходимые для perf для профилирования функций, сгенерированных механизмом JIT. При этом файлы записываются в каталог ~/.debug/jit/; the пользователь несет ответственность за выполнение очистки данных по своему усмотрению. Значение по умолчанию — off. Данный параметр может быть задан только при запуске сервера.

jit_tuple_deforming (boolean) #

Определяет, будет ли выполняться JIT-компиляция деформации кортежей, когда JIT- компиляция активирована (см. Раздел 3.15.2). Значение по умолчанию — on.

remove_temp_files_after_crash (boolean) #

При установке значения on, которое является значением по умолчанию, Digital Q.DataBase автоматически удаляет временные файлы после аварийного завершения фонового процесса. Если данный параметр отключен, файлы будут сохранены и могут быть использованы, например, для отладки. Повторяющиеся сбои могут, однако, привести к накоплению ненужных файлов. Данный параметр может быть задан только в конфигурационном postgresql.conf файле или в командной строке сервера.

send_abort_for_crash (boolean) #

По умолчанию после аварийного завершения фонового процесса процесс postmaster останавливает остальные дочерние процессы путем отправки им SIGQUIT сигналов, что позволяет им завершить работу более или менее корректно. Когда данный параметр имеет значение on, SIGABRT вместо этого отправляется сигнал. Обычно это приводит к созданию файла дампа памяти (core dump) для каждого такого дочернего процесса. Это может быть полезно для исследования состояния других процессов после аварийного завершения. Это также может привести к потреблению большого объема дискового пространства в случае повторяющихся сбоев, поэтому не следует активировать этот параметр в системах, которые не мониторятся должным образом. Учтите, что механизмов автоматической очистки файлов дампов памяти (core files) не предусмотрено. Данный параметр может быть задан только в конфигурационном postgresql.conf конфигурационном файле или в командной строке сервера командная строка.

send_abort_for_kill (boolean) #

По умолчанию после попытки остановить дочерний процесс с помощью SIGQUIT, процесс postmaster ожидает пять секунд, после чего отправляет сигнал SIGKILL для принудительного немедленного завершения. При установке данного параметра в on, SIGABRT отправляется вместо SIGKILL. Как правило, это приводит к созданию файла дампа ядра (core dump) для каждого такого дочернего процесса. Это может быть полезно для исследования состояний параметра «зависших» дочерних процессов. Это также может привести к потреблению большого объема дискового пространства в случае повторяющихся сбоев, поэтому не включайте данный параметр на системах, не находящихся под тщательным наблюдением. Учтите, что механизмов автоматической очистки файлов дампов памяти (core files) не предусмотрено. Данный параметр может быть задан только в конфигурационном postgresql.conf конфигурационном файле или в командной строке сервера командная строка.

debug_logical_replication_streaming (enum) #

Допустимые значения: буферизованный и немедленный. Значение по умолчанию — буферизованный. Данный параметр предназначен для тестирования логического декодирования и репликации транзакций большого объема. Эффект от debug_logical_replication_streaming различается для издателя и подписчика:

На стороне издателя, debug_logical_replication_streaming позволяет выполнять потоковую передачу или сериализацию изменений немедленно в процессе логического декодирования. При установке значения немедленный, передавать каждое изменение потоком, если streaming параметр CREATE SUBSCRIPTION включен, в противном случае — выполнять сериализацию каждого изменения. При установке значения буферизованный, процесс декодирования будет выполнять потоковую передачу или сериализацию изменений при достижении logical_decoding_work_mem is reached.

На стороне подписчика, если streaming параметр установлен в значение parallel, debug_logical_replication_streaming может использоваться для инструктирования ведущего рабочего процесса применения о передаче изменений в очередь разделяемой памяти или о сериализации всех изменений в файл. При установке значения буферизованный, ведущий процесс передает изменения параллельным рабочим процессам применения через очередь разделяемой памяти. При установке значения немедленный, ведущий процесс выполняет сериализацию всех изменений в файлы и уведомляет параллельные рабочие процессы применения о необходимости их чтения и применения в конце транзакции.

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

*поля обязательные к заполнению