19.17. 토토 옵션#

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

allow_in_place_tablespaces (부울) #

테이블스페이스가 내부 디렉토리로 생성되도록 허용pg_tblspc, 빈 위치 문자열이에 제공되는 경우테이블스페이스 생성명령. 이는 기본 서버와 대기 서버가 동일한 시스템에서 실행되는 복제 시나리오를 테스트할 수 있도록 하기 위한 것입니다. 이러한 디렉터리는 해당 위치에서 기호 링크만 찾을 것으로 예상하는 백업 도구를 혼동할 가능성이 높습니다. 적절한 권한을 가진 수퍼유저 및 사용자만SET권한으로 이 설정을 변경할 수 있습니다.

allow_system_table_mods (부울) #

시스템 테이블의 구조 수정과 시스템 테이블에 대한 기타 위험한 작업을 허용합니다. 그렇지 않으면 슈퍼유저에게도 허용되지 않습니다. 이 설정을 부주의하게 사용하면 복구할 수 없는 데이터 손실이 발생하거나 데이터베이스 시스템이 심각하게 손상될 수 있습니다. 적절한 권한을 가진 수퍼유저 및 사용자만SET권한으로 이 설정을 변경할 수 있습니다.

backtrace_functions (문자열) #

이 매개변수는 쉼표로 구분된 C 함수 이름 목록을 포함합니다. 오류가 발생하고 오류가 발생한 내부 C 함수의 이름이 목록의 값과 일치하면 역추적이 오류 메시지와 함께 서버 로그에 기록됩니다. 이는 소스 코드의 특정 영역을 디버깅하는 데 사용될 수 있습니다.

역추적 지원은 모든 플랫폼에서 사용할 수 없으며 역추적의 품질은 컴파일 옵션에 따라 다릅니다.

슈퍼유저와 적절한 권한을 가진 사용자만SET권한으로 이 설정을 변경할 수 있습니다.

debug_copy_parse_plan_trees (부울) #

이 기능을 활성화하면 모든 구문 분석 및 계획 트리가 통과됩니다.copyObject(), 오류 및 누락 포착을 용이하게 하기 위해copyObject(). 기본값은 꺼져 있습니다.

이 매개변수는 다음 경우에만 사용할 수 있습니다.DEBUG_NODE_TESTS_ENABLED컴파일 시 정의되었습니다(이는 다음을 사용할 때 자동으로 발생함구성옵션--enable-cassert).

debug_discard_caches (정수) #

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

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

이 매개변수는 다음 경우에 지원됩니다.DISCARD_CACHES_ENABLED컴파일 시 정의되었습니다(이는 다음을 사용할 때 자동으로 발생함구성옵션--enable-cassert). 프로덕션 빌드에서는 해당 값이 항상 다음과 같습니다.0다른 값으로 설정하려고 하면 오류가 발생합니다.

debug_io_direct (문자열) #

다음을 사용하여 관계 데이터 및 WAL 파일에 대한 캐싱 효과를 최소화하도록 커널에 요청O_DIRECT(대부분의 Unix 계열 시스템),F_NOCACHE(macOS) 또는FILE_FLAG_NO_BUFFERING(윈도우).

직접 I/O 사용을 비활성화하기 위해 빈 문자열(기본값)로 설정하거나 직접 I/O를 사용해야 하는 쉼표로 구분된 작업 목록으로 설정할 수 있습니다. 유효한 옵션은 다음과 같습니다.데이터주요 데이터 파일의 경우,WAL 파일의 경우 및wal_init초기 할당 시 WAL 파일용.

일부 운영 체제 및 파일 시스템은 직접 I/O를 지원하지 않으므로 기본이 아닌 설정은 시작 시 거부되거나 오류가 발생할 수 있습니다.

현재 이 기능은 성능을 저하시키며 토토 테스트 전용입니다.

debug_parallel_query (열거형) #

성능상의 이점이 예상되지 않는 경우에도 테스트 목적으로 병렬 쿼리를 사용할 수 있습니다. 허용되는 값은debug_parallel_query아르꺼짐(성능 향상이 예상되는 경우에만 병렬 모드를 사용하십시오),켜짐(안전하다고 생각되는 모든 쿼리에 대해 병렬 쿼리를 강제 실행) 및회귀(좋아요켜짐, 그러나 아래 설명과 같이 추가 동작 변경이 있습니다.

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

이 값을 다음으로 설정 중회귀다음으로 설정한 것과 모두 동일한 효과를 갖습니다.켜짐그리고 자동화된 회귀 테스트를 용이하게 하기 위한 몇 가지 추가 효과입니다. 일반적으로 병렬 작업자의 메시지에는 이를 나타내는 컨텍스트 줄이 포함되지만 설정은회귀은 출력이 비병렬 실행과 동일하도록 이 줄을 억제합니다. 또한,집결이 설정으로 계획에 추가된 노드는 다음에 숨겨져 있습니다.설명이 설정을 바꾸면 얻을 수 있는 결과와 일치하도록 출력꺼짐.

debug_raw_expression_coverage_test (부울) #

이 기능을 활성화하면 DML 문의 모든 원시 구문 분석 트리를 강제로 검사합니다.raw_expression_tree_walker(), 해당 함수의 오류 및 누락을 쉽게 포착할 수 있습니다. 기본값은 꺼져 있습니다.

이 매개변수는 다음 경우에만 사용할 수 있습니다.DEBUG_NODE_TESTS_ENABLED컴파일 시 정의되었습니다(이는 다음을 사용할 때 자동으로 발생함구성옵션--enable-cassert).

debug_write_read_parse_plan_trees (부울) #

이 기능을 활성화하면 모든 구문 분석 및 계획 트리가 통과됩니다.outfuncs.c/readfuncs.c, 해당 모듈에서 오류 및 누락을 쉽게 포착할 수 있습니다. 기본값은 꺼져 있습니다.

이 매개변수는 다음 경우에만 사용할 수 있습니다.DEBUG_NODE_TESTS_ENABLED컴파일 시 정의되었습니다(이는 다음을 사용할 때 자동으로 발생함구성옵션--enable-cassert).

ignore_system_indexes (부울) #

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

post_auth_delay (정수) #

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

pre_auth_delay (정수) #

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

trace_notify (부울) #

에 대한 많은 양의 디버깅 출력을 생성합니다.듣기그리고알림명령.client_min_messages또는log_min_messages반드시디버그1또는 그 이하로 이 출력을 각각 클라이언트 또는 서버 로그로 보냅니다.

trace_sort (부울) #

켜져 있으면 정렬 작업 중 리소스 사용량에 대한 정보를 내보냅니다.

trace_locks (부울) #

켜져 있으면 잠금 사용에 대한 정보를 내보냅니다. 덤프되는 정보에는 잠금 작업 유형, 잠금 유형 및 잠기거나 잠금 해제되는 개체의 고유 식별자가 포함됩니다. 또한 이 개체에 이미 부여된 잠금 유형과 이 개체에 대해 대기 중인 잠금 유형에 대한 비트 마스크도 포함됩니다. 각 잠금 유형에 대해 부여된 잠금 및 대기 중인 잠금의 수와 총계도 덤프됩니다. 로그 파일 출력의 예는 다음과 같습니다.

로그: LockAcquire: 신규: 잠금(0xb7acd844) id(24688,24696,0,0,0,1)
      그랜트마스크(0) 요청(0,0,0,0,0,0,0)=0 그랜트(0,0,0,0,0,0,0)=0
      대기(0) 유형(AccessShareLock)
로그: GrantLock: 잠금(0xb7acd844) ID(24688,24696,0,0,0,1)
      grantMask(2) req(1,0,0,0,0,0,0)=1 부여(1,0,0,0,0,0,0)=1
      대기(0) 유형(AccessShareLock)
로그: UnGrantLock: 업데이트됨: 잠금(0xb7acd844) ID(24688,24696,0,0,0,1)
      그랜트마스크(0) 요청(0,0,0,0,0,0,0)=0 그랜트(0,0,0,0,0,0,0)=0
      대기(0) 유형(AccessShareLock)
로그: CleanUpLock: 삭제: 잠금(0xb7acd844) ID(24688,24696,0,0,0,1)
      그랜트마스크(0) 요청(0,0,0,0,0,0,0)=0 그랜트(0,0,0,0,0,0,0)=0
      대기(0) 유형(잘못됨)

덤핑되는 구조물에 대한 자세한 내용은 다음에서 찾을 수 있습니다.src/include/storage/lock.h.

이 매개변수는 다음 경우에만 사용할 수 있습니다.LOCK_DEBUG매크로가 정의된 시기토토컴파일되었습니다.

trace_lwlocks (부울) #

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

이 매개변수는 다음 경우에만 사용할 수 있습니다.LOCK_DEBUG매크로가 정의된 시기토토컴파일되었습니다.

trace_userlocks (부울) #

켜져 있으면 사용자 잠금 사용에 대한 정보를 내보냅니다. 출력은 다음과 동일합니다.trace_locks, 권고 잠금에만 해당됩니다.

이 매개변수는 다음 경우에만 사용할 수 있습니다.LOCK_DEBUG매크로가 정의된 시기토토컴파일되었습니다.

trace_lock_oidmin (정수) #

설정된 경우 이 OID 아래 테이블에 대한 잠금을 추적하지 않습니다(시스템 테이블의 출력을 방지하는 데 사용됨).

이 매개변수는 다음의 경우에만 사용할 수 있습니다.LOCK_DEBUG매크로가 정의된 시기토토컴파일되었습니다.

trace_lock_table (정수) #

무조건적으로 이 테이블(OID)에 대한 잠금을 추적합니다.

이 매개변수는 다음 경우에만 사용할 수 있습니다.LOCK_DEBUG매크로가 정의된 시기토토컴파일되었습니다.

debug_deadlocks (부울) #

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

이 매개변수는 다음 경우에만 사용할 수 있습니다.LOCK_DEBUG매크로가 정의된 시기포스트그레SQL컴파일되었습니다.

log_btree_build_stats (부울) #

설정된 경우 다양한 B-트리 작업에 대한 시스템 리소스 사용량 통계(메모리 및 CPU)를 기록합니다.

이 매개변수는 다음 경우에만 사용할 수 있습니다.BTREE_BUILD_STATS매크로가 정의된 시기토토컴파일되었습니다.

wal_consistency_checking (문자열) #

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

이 설정의 기본값은 기능을 비활성화하는 빈 문자열입니다. 로 설정할 수 있습니다.전체모든 레코드를 확인하려면, 또는 해당 리소스 관리자에서 발생한 레코드만 확인하려면 쉼표로 구분된 리소스 관리자 목록으로 연결하세요. 현재 지원되는 리소스 관리자는 다음과 같습니다., 힙2, 브트리, 해시, , 요점, 시퀀스, spgist, 브린일반. 확장은 추가 리소스 관리자를 정의할 수 있습니다. 적절한 권한을 가진 수퍼유저 및 사용자만SET권한으로 이 설정을 변경할 수 있습니다.

wal_debug (부울) #

켜져 있으면 WAL 관련 디버깅 출력을 내보냅니다. 이 매개변수는 다음과 같은 경우에만 사용할 수 있습니다.WAL_DEBUG매크로가 정의된 시기포스트그레SQL컴파일되었습니다.

ignore_checksum_failure (부울) #

다음의 경우에만 효과가 있습니다.-k활성화되었습니다.

읽기 중 체크섬 오류가 감지되면 일반적으로 다음이 발생합니다.토토오류를 보고하고 현재 거래를 중단합니다. 설정ignore_checksum_failure을 켜면 시스템이 실패를 무시하고(그러나 여전히 경고를 보고함) 처리를 계속합니다. 이 동작은 다음과 같습니다.충돌을 일으키거나 손상을 전파하거나 숨기거나 기타 심각한 문제를 일으키는 경우. 그러나 이를 통해 오류를 극복하고 블록 헤더가 여전히 정상인 경우 테이블에 여전히 존재할 수 있는 손상되지 않은 튜플을 검색할 수 있습니다. 헤더가 손상되면 이 옵션이 활성화되어 있어도 오류가 보고됩니다. 기본 설정은꺼짐. 적절한 권한을 가진 수퍼유저 및 사용자만SET권한으로 이 설정을 변경할 수 있습니다.

zero_damaged_pages (부울) #

손상된 페이지 헤더를 감지하면 일반적으로 다음이 발생합니다.포스트그레SQL오류를 보고하고 현재 트랜잭션을 중단합니다. 설정zero_damaged_pages을 켜면 시스템이 대신 경고를 보고하고 메모리의 손상된 페이지를 비우고 처리를 계속합니다. 이 행동데이터를 파괴합니다, 즉 손상된 페이지의 모든 행입니다. 그러나 이를 통해 오류를 극복하고 테이블에 있을 수 있는 손상되지 않은 페이지에서 행을 검색할 수 있습니다. 하드웨어나 소프트웨어 오류로 인해 손상이 발생한 경우 데이터를 복구하는 데 유용합니다. 일반적으로 테이블의 손상된 페이지에서 데이터를 복구하려는 희망을 포기할 때까지 이 설정을 설정해서는 안 됩니다. 비워진 페이지는 디스크에 강제로 저장되지 않으므로 이 매개변수를 다시 끄기 전에 테이블이나 인덱스를 다시 생성하는 것이 좋습니다. 기본 설정은꺼짐. 적절한 권한을 가진 수퍼유저 및 사용자만SET권한으로 이 설정을 변경할 수 있습니다.

ignore_invalid_pages (부울) #

다음으로 설정된 경우꺼짐(기본값), 복구 중 잘못된 페이지에 대한 참조가 있는 WAL 레코드 감지로 인해 발생토토PANIC 수준 오류를 발생시켜 복구를 중단합니다. 설정ignore_invalid_pages켜짐시스템이 WAL 레코드의 유효하지 않은 페이지 참조를 무시하도록 하고(그러나 여전히 경고를 보고함) 복구를 계속합니다. 이 동작은 다음과 같습니다.충돌, 데이터 손실, 손상 전파 또는 숨기기 또는 기타 심각한 문제 발생. 그러나 이를 통해 PANIC 수준 오류를 극복하고 복구를 완료하고 서버를 시작할 수 있습니다. 매개변수는 서버 시작 시에만 설정할 수 있습니다. 복구 중이나 대기 모드에서만 효과가 있습니다.

jit_debugging_support (부울) #

LLVM에 필요한 기능이 있는 경우 생성된 함수를 다음으로 등록하십시오.GDB. 이렇게 하면 디버깅이 더 쉬워집니다. 기본 설정은꺼짐. 이 매개변수는 서버 시작 시에만 설정할 수 있습니다.

jit_dump_bitcode (부울) #

생성된 내용을 씁니다LLVM파일 시스템으로 IR 출력, 내부data_directory. 이는 JIT 구현의 내부 작업에만 유용합니다. 기본 설정은꺼짐. 적절한 권한을 가진 수퍼유저 및 사용자만SET권한으로 이 설정을 변경할 수 있습니다.

jit_expressions (부울) #

JIT 컴파일이 활성화될 때 표현식이 JIT 컴파일되는지 결정합니다(참조PostgreSQL : 문서 : 17 : 30.2. 언제 메이저 토토 사이트?). 기본값은켜짐.

jit_profiling_support (부울) #

LLVM에 필요한 기능이 있는 경우 허용하는 데 필요한 데이터를 내보냅니다.성능JIT에서 생성된 기능을 프로파일링합니다. 그러면 파일이 다음 위치에 기록됩니다.~/.debug/jit/; 사용자는 원할 때 정리 작업을 수행할 책임이 있습니다. 기본 설정은꺼짐. 이 매개변수는 서버 시작 시에만 설정할 수 있습니다.

jit_tuple_deforming (부울) #

JIT 컴파일이 활성화될 때 튜플 변형이 JIT 컴파일되는지 결정합니다(참조PostgreSQL : 문서 : 17 : 30.2. 언제 메이저 토토 사이트?). 기본값은켜짐.

remove_temp_files_after_crash (부울) #

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

send_abort_for_crash (부울) #

기본적으로 백엔드 충돌 후 포스트마스터는 남은 하위 프로세스를 전송하여 중지합니다.서명 종료신호를 통해 어느 정도 우아하게 종료할 수 있습니다. 이 옵션이 로 설정된 경우켜짐, SIGABRT40021_40463토토.conf파일 또는 서버 명령줄에서.

send_abort_for_kill (부울) #

기본적으로 다음을 사용하여 하위 프로세스를 중지하려고 시도한 후SIGQUIT, 포스트마스터는 5초를 기다린 후 보냅니다.SIGKILL즉시 종료를 강제합니다. 이 옵션이 로 설정된 경우켜짐, SIGABRT대신 전송됨SIGKILL. 이로 인해 일반적으로 각 하위 프로세스에 대한 코어 덤프 파일이 생성됩니다. 이는 상태를 조사하는 데 유용할 수 있습니다.걸림하위 프로세스. 또한 충돌이 반복되는 경우 많은 디스크 공간을 소비할 수 있으므로 주의 깊게 모니터링하지 않는 시스템에서는 이 기능을 활성화하지 마십시오. 코어 파일을 자동으로 정리하는 기능은 지원되지 않습니다. 이 매개변수는에서만 설정할 수 있습니다.토토.conf파일 또는 서버 명령줄에서.

debug_logical_replication_streaming (열거형) #

허용되는 값은버퍼됨그리고즉시. 기본값은버퍼됨. 이 매개변수는 대규모 트랜잭션의 논리적 디코딩 및 복제를 테스트하는 데 사용됩니다. 효과debug_logical_replication_streaming게시자와 구독자마다 다릅니다.

게시자 측에서는,debug_logical_replication_streaming논리적 디코딩에서 변경 사항을 즉시 스트리밍하거나 직렬화할 수 있습니다. 으로 설정된 경우즉시, 다음과 같은 경우 각 변경 사항을 스트리밍합니다.스트리밍옵션구독 작성이 활성화되어 있습니다. 그렇지 않으면 각 변경 사항을 직렬화합니다. 으로 설정된 경우버퍼됨, 디코딩은 다음과 같은 경우 변경 사항을 스트리밍하거나 직렬화합니다.logical_decoding_work_mem도달했습니다.

구독자 측에서 다음과 같은 경우스트리밍옵션이 다음으로 설정되었습니다.병렬, debug_logical_replication_streaming리더 적용 작업자에게 변경 사항을 공유 메모리 큐에 보내거나 모든 변경 사항을 파일에 직렬화하도록 지시하는 데 사용할 수 있습니다. 으로 설정된 경우버퍼됨, 리더는 공유 메모리 큐를 통해 병렬 적용 작업자에게 변경 사항을 보냅니다. 으로 설정된 경우즉시, 리더는 파일에 대한 모든 변경 사항을 직렬화하고 병렬 적용 작업자에게 이를 읽고 트랜잭션이 끝날 때 적용하도록 알립니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.