20.17. 개발자 옵션

다음 매개 변수는 개발자 테스트를위한 것이며 프로덕션 데이터베이스에서 사용해서는 안됩니다. 그러나 일부는 심하게 손상된 데이터베이스의 복구를 지원하는 데 사용될 수 있습니다. 따라서 샘플에서 제외되었습니다postgresql.conf파일. 이러한 매개 변수 중 다수는 전혀 작동하기 위해 특수 소스 컴파일 플래그가 필요합니다.

allow_in_place_tablespaces(부울)

테이블 스페이스가 내부 디렉토리로 만들 수 있습니다PG_TBLSPC, 빈 위치 문자열이 제공되는 경우테이블 스페이스 생성명령. 이는 기본 및 대기 서버가 동일한 시스템에서 실행중인 복제 시나리오를 테스트 할 수 있도록 의존합니다. 이러한 디렉토리는 해당 위치에서 상징적 링크 만 찾을 것으로 예상되는 백업 도구를 혼동 할 수 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

allow_system_table_mods(부울)

시스템 테이블의 특정 위험 조치뿐만 아니라 시스템 테이블 구조를 수정할 수 있습니다. 이것은 슈퍼 토토 커뮤니티자에게도 허용되지 않습니다. 이 설정을 잘못 조정하면 부정 할 수없는 데이터 손실을 유발하거나 데이터베이스 시스템을 심각하게 손상시킬 수 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

backtrace_functions(String)

이 매개 변수에는 C 함수 이름의 쉼표로 구분 된 목록이 포함되어 있습니다. 오류가 발생하고 오류가 발생하는 내부 C 함수의 이름이 목록의 값과 일치하면 오류 메시지와 함께 서버 로그에 백 트레이스가 기록됩니다. 소스 코드의 특정 영역을 디버그하는 데 토토 커뮤니티할 수 있습니다.

모든 플랫폼에서 백 트레이스 지원을 사용할 수 없으며 뒤쪽의 품질은 컴파일 옵션에 따라 다릅니다.

이 매개 변수는 슈퍼 유행기 만 설정할 수 있습니다.

debug_discard_caches(정수)

로 설정된 시점1, 각 시스템 카탈로그 캐시 항목은 가능한 첫 번째 기회에 무효화되어 실제로 유효하지 않은 일이 발생했는지 여부에 관계없이 무효화됩니다. 시스템 카탈로그 캐싱은 결과적으로 효과적으로 비활성화되므로 서버가 매우 느리게 실행됩니다. 더 높은 값은 캐시 무효화를 재귀 적으로 실행하며, 이는 심지어 속도가 느리고 캐싱 로직 자체를 테스트하는 데 유용합니다. 의 기본값0정상 카탈로그 캐싱 동작 선택.

이 매개 변수는 동시 카탈로그 변경과 관련된 재개하기 어려운 버그를 트리거하려고 할 때 매우 유용 할 수 있지만 그렇지 않으면 거의 필요하지 않습니다. 소스 코드 파일보기inval.candpg_config_manual.h자세한 내용.

이 매개 변수는 지원됩니다discard_caches_enabled컴파일 시간에 정의되었습니다 (구성옵션--enable-cassert). 생산 구축에서는 그 가치가 항상입니다.0다른 값으로 설정하려고 시도하면 오류가 발생합니다.

force_parallel_mode(enum)

성능 혜택이 예상되지 않는 경우에도 테스트 목적으로 병렬 쿼리를 토토 커뮤니티할 수 있습니다. 허용 값Force_Parallel_ModeareOFF(성능을 향상시킬 것으로 예상되는 경우에만 병렬 모드를 토토 커뮤니티),on(안전하다고 생각되는 모든 쿼리에 대한 병렬 쿼리) 및회귀(좋아요on, 그러나 추가 행동이 아래에 설명 된대로 변경됨).

보다 구체적 으로이 값을ona 추가수집이것은 안전한 것으로 보이는 쿼리 계획의 상단으로 노드하여 쿼리가 병렬 작업자 내부에서 실행되도록합니다. 병렬 작업자를 사용할 수 없거나 사용할 수없는 경우에도 평행 쿼리 컨텍스트에서 금지되는 하위 트랜잭션을 시작하는 것과 같은 작업은 플래너가 쿼리가 실패하지 않을 것이라고 믿지 않는 한 금지됩니다. 이 옵션이 설정되면 실패 또는 예상치 못한 결과가 발생하면 쿼리에서 사용하는 일부 기능을 표시해야 할 수 있습니다.병렬 불안한(또는 아마도병렬 제한).

이 값 설정회귀설정과 동일한 효과가 있습니다on자동화 회귀 테스트를 용이하게하기위한 몇 가지 추가 효과. 일반적으로 병렬 작업자의 메시지에는 다음을 나타내는 컨텍스트 줄이 포함되어 있지만 설정이 포함됩니다.회귀출력이 비 평행 실행과 동일하도록이 라인을 억제합니다. 또한,수집이 설정의 계획에 추가 된 노드는 숨겨져 있습니다설명출력 이이 설정이 회전하면 얻을 수있는 내용과 일치하도록 출력OFF.

IGNORE_SYSTEM_INDEXES(부울)

시스템 테이블을 읽을 때 시스템 인덱스를 무시하십시오 (테이블을 수정할 때 여전히 인덱스를 업데이트). 이것은 손상된 시스템 인덱스에서 복구 할 때 유용합니다. 이 매개 변수는 세션 시작 후에 변경할 수 없습니다.

post_auth_delay(정수)

인증 절차를 수행 한 후 새 서버 프로세스가 시작될 때 지연되는 시간. 이는 개발자에게 디버거를 사용하여 서버 프로세스에 첨부 할 수있는 기회를 제공하기위한 것입니다. 이 값이 단위없이 지정되면 몇 초 만에 가져옵니다. 0의 값 (기본값)은 지연을 비활성화합니다. 이 매개 변수는 세션 시작 후에 변경할 수 없습니다.

pre_auth_delay(Integer)

인증 프로세스를 수행하기 전에 새 서버 프로세스가 포기 직후 지연 시간의 양. 이는 개발자에게 인증의 오작동을 추적하기 위해 디버거를 사용하여 서버 프로세스에 첨부 할 수있는 기회를 제공하기위한 것입니다. 이 값이 단위없이 지정되면 몇 초 만에 가져옵니다. 0의 값 (기본값)은 지연을 비활성화합니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

trace_notify(부울)

듣기andNotify명령.client_min_messages또는log_min_messagesDebug1이 출력을 각각 클라이언트 또는 서버 로그로 보내려면.

Trace_Recovery_Messages(enum)

로그를 기록하지 않은 복구 관련 디버깅 출력의 로깅을 활성화합니다. 이 매개 변수는 토토 커뮤니티자가의 일반 설정을 무시할 수 있습니다.log_min_messages그러나 특정 메시지에만 해당됩니다. 이것은 핫 스탠드를 디버깅하는 데 토토 커뮤니티하기위한 것입니다. 유효한 값은Debug5, Debug4, Debug3, Debug2, Debug1log. 기본값,log, 로깅 결정에 전혀 영향을 미치지 않습니다. 다른 값은 해당 우선 순위 이상의 복구 관련 디버그 메시지를 유발하여 마치 마치 마치 마치 기록 할 수 있습니다.log우선 순위; 의 일반적인 설정log_min_messages이로 인해 무조건 서버 로그로 전송됩니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

trace_sort(부울)

켜기는 경우 정렬 작업 중에 리소스 토토 커뮤니티에 대한 정보를 방출합니다. 이 매개 변수는 만 토토 커뮤니티할 수 있습니다.trace_sort매크로가 정의되었을 때PostgreSQL편집되었습니다. (하지만,trace_sort현재 기본적으로 정의되어 있습니다.)

trace_locks(부울)

켜져있는 경우 잠금 사용에 대한 정보를 방출합니다. 버려진 정보에는 잠금 작동 유형, 잠금 유형 및 잠금 또는 잠금 해제중인 객체의 고유 식별자가 포함됩니다. 또한이 객체에 이미 부여 된 잠금 유형 과이 객체에서 기다린 잠금 유형에 대한 비트 마스크도 포함되어 있습니다. 각 잠금 유형 A에 대해 부여 된 잠금 및 대기 잠금 장치 수의 수와 총계도 덤프됩니다. 로그 파일 출력의 예가 여기에 표시됩니다.

로그 : 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
      대기 (0) 유형 (AccesssharElock)
로그 : 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
      대기 (0) 유형 (AccesssharElock)
로그 : UngrantLock : 업데이트 : 잠금 (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
      대기 (0) 유형 (AccesssharElock)
로그 : CleanUplock : 삭제 : 잠금 (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
      대기 (0) 유형 (무효)

버려진 구조의 세부 사항은에 있습니다.src/include/storage/lock.h.

이 매개 변수는에만 토토 커뮤니티할 수 있습니다Lock_Debug매크로가 정의되었을 때PostgreSQL편집되었습니다.

trace_lwlocks(부울)

켜져있는 경우 경량 잠금 토토 커뮤니티에 대한 정보를 방출합니다. 경량 잠금은 주로 공유 메모리 데이터 구조에 대한 액세스를 상호 배제하기위한 것입니다.

이 매개 변수는에만 토토 커뮤니티할 수 있습니다lock_debug매크로가 정의되었을 때PostgreSQL편집되었습니다.

trace_userlocks(부울)

ON이면 토토 커뮤니티자 잠금 토토 커뮤니티에 대한 정보를 방출합니다. 출력은와 동일합니다.trace_locks, 자문 잠금 장치에만 해당됩니다.

이 매개 변수는에만 토토 커뮤니티할 수 있습니다Lock_Debug매크로가 정의되었을 때PostgreSQL편집되었습니다.

trace_lock_oidmin(Integer)

설정된 경우,이 OID 아래 테이블의 잠금을 추적하지 마십시오 (시스템 테이블의 출력을 피하는 데 사용).

이 매개 변수는 만 토토 커뮤니티할 수 있습니다Lock_Debug매크로가 정의되었을 때PostgreSQL편집되었습니다.

trace_lock_table(정수)

이 테이블의 무조건 추적 잠금 장치 (OID).

이 매개 변수는 만 토토 커뮤니티할 수 있습니다Lock_Debug매크로가 정의되었을 때PostgreSQL편집되었습니다.

debug_deadlocks(부울)

설정된 경우 교착 상태 타임 아웃이 발생할 때 모든 현재 잠금에 대한 정보를 덤프합니다.

이 매개 변수는 만 토토 커뮤니티할 수 있습니다Lock_Debug매크로가 정의되었을 때PostgreSQL편집되었습니다.

log_btree_build_stats(부울)

세트 인 경우 다양한 B- 트리 작업에 대한 시스템 리소스 토토 커뮤니티 통계 (메모리 및 CPU)를 로그입니다.

이 매개 변수는 만 토토 커뮤니티할 수 있습니다btree_build_stats매크로가 정의되었을 때PostgreSQL편집되었습니다.

Wal_Consistency_checking(String)

이 매개 변수는 WAL REDO 루틴의 버그를 확인하는 데 사용됩니다. 활성화되면 WAL 레코드와 함께 수정 된 버퍼의 전체 페이지 이미지가 레코드에 추가됩니다. 레코드가 이후에 재생되는 경우 시스템은 먼저 각 레코드를 적용한 다음 레코드로 수정 된 버퍼가 저장된 이미지와 일치하는지 테스트합니다. 어떤 경우 (예 : 힌트 비트)에서는 사소한 변형이 허용되며 무시됩니다. 예상치 못한 차이로 인해 치명적인 오류가 발생하여 회복을 종료합니다.

이 설정의 기본값은 빈 문자열로 기능을 비활성화합니다. 로 설정할 수 있습니다.all모든 레코드를 확인하거나 쉼표로 구분 된 리소스 관리자 목록에 해당 리소스 관리자로부터 유래 한 레코드 만 확인합니다. 현재 지원되는 자원 관리자는, Heap2, btree, HASH, gin, gist, 시퀀스, spgist, 브린제네릭. 수퍼 유저만이 설정을 변경할 수 있습니다.

Wal_debug(부울)

켜져있는 경우 WAL 관련 디버깅 출력을 방출합니다. 이 매개 변수는 만 토토 커뮤니티할 수 있습니다.Wal_debug매크로가 정의되었을 때PostgreSQL편집되었습니다.

IGNORE_CHECKSUM_FAILURE(부울)

만 효과가 있습니다데이터 체크섬활성화되었습니다.

읽기 중 체크섬 고장 감지 정상적으로 원인PostgreSQL현재 거래를 중단하고 오류를보고합니다. 환경IGNORE_CHECKSUM_FAILUREON ON은 시스템이 실패를 무시하고 (경고를보고) 계속 처리합니다. 이 행동은부패 또는 기타 심각한 문제로 충돌, 전파 또는 숨기기 원인. 그러나 오류를 지나서 블록 헤더가 여전히 제정신 인 경우 테이블에 여전히 존재할 수있는 손상되지 않은 튜플을 검색 할 수 있습니다. 헤더가 손상되면이 옵션이 활성화 된 경우에도 오류 가보고됩니다. 기본 설정은입니다.OFF

Zero_damaged_Pages(부울)

손상된 페이지 헤더 감지는 일반적으로 원인입니다PostgreSQL현재 거래를 중단하고 오류를보고합니다. 환경Zero_damaged_Pageson ON은 시스템이 경고를보고하고 메모리의 손상된 페이지를 제로화하고 처리를 계속합니다. 이 행동데이터를 파괴 할 것입니다, 즉 손상된 페이지의 모든 행. 그러나 오류를지나 표에 존재할 수있는 손상되지 않은 페이지에서 행을 검색 할 수 있습니다. 하드웨어 또는 소프트웨어 오류로 인해 손상이 발생한 경우 데이터를 복구하는 데 유용합니다. 테이블의 손상된 페이지에서 데이터를 복구 할 희망을 포기할 때까지 일반적으로 이것을 설정해서는 안됩니다. 제로화 페이지는 디스크를 강제로하지 않으므로이 매개 변수를 다시 끄기 전에 테이블이나 인덱스를 재현하는 것이 좋습니다. 기본 설정은입니다.OFF

IGNORE_INVALID_PAGES(부울)

로 설정된 경우OFF(기본값), 복구 원인 중 유효하지 않은 페이지에 대한 참조가있는 WAL 레코드 감지PostgreSQL공황 수준 오류를 높이고 복구를 중단합니다. 환경IGNORE_INVALID_PAGEStoon시스템이 WAL 레코드에서 유효하지 않은 페이지 참조를 무시하고 경고를보고하고 복구를 계속합니다. 이 행동은사고, 데이터 손실, 손상 전파 또는 숨기기 또는 기타 심각한 문제를 원인. 그러나 공황 수준의 오류를지나 복구를 완료하고 서버가 시작될 수 있습니다. 매개 변수는 서버 시작시에만 설정할 수 있습니다. 복구 중 또는 대기 모드에서만 영향을 미칩니다.

jit_debugging_support(부울)

LLVM이 필요한 기능이있는 경우 등록 된 기능gdb. 이로 인해 디버깅이 더 쉬워집니다. 기본 설정은입니다.OFF. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

JIT_DUMP_BITCODE(부울)

생성 된 내용llvm내부 파일 시스템으로 나가​​data_directory. 이것은 JIT 구현 내부에서만 작업하는 데 유용합니다. 기본 설정은입니다.OFF. 이 매개 변수는 슈퍼업자에 의해서만 변경 될 수 있습니다.

jit_expressions(부울)

JIT 컴파일이 활성화 될 때 표현식이 JIT 컴파일인지 결정합니다 (참조PostgreSQL : 문서 : 14 : 32.2. 언제 토토 핫?). 기본값은on.

jit_profiling_support(부울)

LLVM이 필요한 기능이 있으면 허용하는 데 필요한 데이터를 방출합니다perfJIT에 의해 생성 된 프로파일 함수. 이것은 파일을 작성합니다~/.debug/jit/; 토토 커뮤니티자는 원하는 경우 정리를 수행 할 책임이 있습니다. 기본 설정은입니다.OFF. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

jit_tuple_deforming(부울)

JIT 컴파일이 활성화 될 때 튜플 변형이 JIT 컴파일인지 결정합니다 (참조PostgreSQL : 문서 : 14 : 32.2. 언제 토토 핫?). 기본값은on.

remove_temp_files_after_crash(부울)

로 설정된 시점on, 기본값 인PostgreSQL백엔드 충돌 후 임시 파일을 자동으로 제거합니다. 비활성화 된 경우 파일이 유지되며 예를 들어 디버깅에 토토 커뮤니티될 수 있습니다. 그러나 반복적 인 충돌로 인해 쓸모없는 파일이 축적 될 수 있습니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면