19.17. 개발자 옵션#

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

allow_in_place_tablespaces(부울) #

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

allow_system_table_mods(부울) #

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

backtrace_functions(String) #

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

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

적절한 수퍼 유행자 및 사용자 만SET권한은이 설정을 변경할 수 있습니다.

debug_discard_caches(정수) #

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

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

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

debug_io_direct(String) #

커널에 관계 데이터 및 웨이스 파일에 대한 캐싱 효과를 최소화하도록 커널에o_direct(대부분의 Unix-Like Systems),f_nocache(MacOS) 또는file_flag_no_buffering(Windows).

직접 I/O의 사용을 비활성화하기 위해 빈 문자열 (기본값) 또는 직접 I/O를 사용해야하는 쉼표로 구분 된 작업 목록으로 설정 될 수 있습니다. 유효한 옵션은입니다.데이터주 데이터 파일의 경우WalWAL 파일 및Wal_init처음에 할당 될 때 WAL 파일의 경우.

일부 운영 체제 및 파일 시스템은 직접 I/O를 지원하지 않으므로 시작시 비 디펜트 설정을 거부하거나 오류를 일으킬 수 있습니다..

현재이 기능은 성능을 줄이고 개발자 테스트 전용입니다.

debug_parallel_query(enum) #

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

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

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

IGNORE_SYSTEM_INDEXES(부울) #

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

post_auth_delay(Integer) #

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

pre_auth_delay(Integer) #

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

trace_notify(부울) #

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

TRACE_SORT(부울) #

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

trace_locks(부울) #

ON이면 잠금 사용에 대한 정보를 방출합니다. 버려진 정보에는 잠금 작동 유형, 잠금 유형 및 잠금 또는 잠금 해제중인 객체의 고유 식별자가 포함됩니다. 또한이 객체에 이미 부여 된 잠금 유형 과이 객체에서 기다린 잠금 유형에 대한 비트 마스크도 포함되어 있습니다. 각 잠금 유형 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매크로가 정의되었을 때롤 토토편집되었습니다.

trace_lwlocks(부울) #

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

이 매개 변수는에만 사용할 수 있습니다Lock_Debug매크로가 정의되었을 때롤 토토편집되었습니다.

trace_userlocks(부울) #

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

이 매개 변수는에만 사용할 수 있습니다Lock_Debug매크로가 정의되었을 때롤 토토편집되었습니다.

trace_lock_oidmin(Integer) #

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

이 매개 변수는에만 사용할 수 있습니다lock_debug매크로가 정의되었을 때롤 토토편집되었습니다.

trace_lock_table(Integer) #

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

이 매개 변수는 만 사용할 수 있습니다Lock_Debug매크로가 정의되었을 때롤 토토편집되었습니다.

debug_deadlocks(부울) #

설정된 경우 교착 상태 시간 초과가 발생할 때 모든 현재 잠금에 대한 정보를 덤프합니다.

이 매개 변수는 이면만 사용할 수 있습니다lock_debug매크로가 정의되었을 때롤 토토편집되었습니다.

log_btree_build_stats(부울) #

세트 인 경우 다양한 B- 트리 작업에서 시스템 리소스 사용 통계 (메모리 및 CPU)를 로그인합니다.

이 매개 변수는에만 사용할 수 있습니다btree_build_stats매크로가 정의되었을 때롤 토토편집되었습니다.

Wal_Consistency_checking(String) #

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

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

Wal_debug(부울) #

켜져 있다면 WAL 관련 디버깅 출력을 방출하십시오. 이 매개 변수는 만 사용할 수 있습니다.Wal_debug매크로가 정의되었을 때롤 토토편집되었습니다.

IGNORE_CHECKSUM_FAILURE(부울) #

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

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

Zero_damaged_pages(부울) #

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

IGNORE_INVALID_PAGES(부울) #

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

jit_debugging_support(부울) #

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

JIT_DUMP_BITCODE(부울) #

생성 된 내용LLVM파일 시스템으로 켜짐data_directory. 이것은 JIT 구현 내부에서만 작업하는 데 유용합니다. 기본 설정은입니다.OFF. 적절한 수퍼 유행자 및 사용자 만SET권한은이 설정을 변경할 수 있습니다.

jit_expressions(부울) #

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

jit_profiling_support(부울) #

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

jit_tuple_deforming(부울) #

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

remove_temp_files_after_crash(부울) #

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

send_abort_for_crash(부울) #

기본적으로 백엔드 충돌 후 우체국 장은 자식 프로세스를 보내면서 남아있는 아동 프로세스를 중단합니다Sigquit신호로, 더 우아하게 나가는 것을 허용합니다. 이 옵션이 설정되면on, SIGABRT대신 전송됩니다. 이는 일반적으로 그러한 어린이 프로세스에 대해 핵심 덤프 파일을 생산합니다. 이는 충돌 후 다른 프로세스의 상태를 조사하는 데 유용 할 수 있습니다. 또한 충돌이 반복되는 경우 많은 디스크 공간을 소비 할 수 있으므로 신중하게 모니터링하지 않는 시스템에서이를 활성화하지 마십시오. 코어 파일을 자동으로 정리하기위한 지원이 없음을주의하십시오. 이 매개 변수는에서만 설정할 수 있습니다.롤 토토.conf파일 또는 서버 명령 줄에.

send_abort_for_kill(부울) #

기본적으로, 아동 과정을 중지하려고 시도한 후Sigquit, 우체국 장은 5 초를 기다린 다음Sigkill즉시 종료를 강요합니다. 이 옵션이 설정되면on, SIGABRT대신 발송됩니다Sigkill. 이는 일반적으로 그러한 어린이 프로세스에 대해 핵심 덤프 파일을 생산합니다. 이것은의 상태를 조사하는 데 편리 할 수 ​​있습니다Stuck아동 프로세스. 또한 충돌이 반복되는 경우 많은 디스크 공간을 소비 할 수 있으므로 신중하게 모니터링하지 않는 시스템에서이를 활성화하지 마십시오. 코어 파일을 자동으로 정리하기위한 지원이 없음을주의하십시오. 이 매개 변수는에서만 설정할 수 있습니다.롤 토토.conf파일 또는 서버 명령 줄에.

debug_logical_replication_streaming(enum) #

허용 값은입니다.버퍼링and즉시. 기본값은버퍼링. 이 매개 변수는 대규모 트랜잭션의 논리적 디코딩 및 복제를 테스트하는 데 사용됩니다. 의 효과debug_logical_replication_streaming게시자 및 가입자에 대해 다릅니다 :

게시자 측에서debug_logical_replication_streaming논리적 디코딩에서 즉시 스트리밍 또는 직렬화 변경이 가능합니다. 로 설정된 경우즉시,이면 각 변경을 스트리밍합니다.스트리밍옵션구독 생성가 활성화되어 있습니다. 그렇지 않으면 각 변경 사항을 직렬화하십시오. 로 설정된 경우버퍼링, 디코딩이 스트림 또는 직렬화 될 때logical_decoding_work_mem도달했습니다.

가입자 측에서스트리밍옵션이 설정되었습니다병렬, debug_logical_replication_streaming리더가 공유 메모리 큐에 변경 사항을 보내거나 파일의 모든 변경 사항을 직렬화하는 데 리더를 신청하는 데 사용될 수 있습니다. 로 설정된 경우버퍼링, 리더는 공유 메모리 대기열을 통해 병렬 신청 작업자에 대한 변경 사항을 보냅니다. 로 설정된 경우즉시, 리더는 모든 변경 사항을 파일로 연재하고 병렬 적용 작업자에게 거래가 끝날 때 읽고 적용하도록 통지합니다.

수정 제출

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