토토 베이-쓰기 로그 및 기타 제어 정보를 재설정합니다PostgreSQL데이터베이스 클러스터
토토 베이
[-f
] [-n
] [옵션
...] [-d
]Datadir
토토 베이
WAR (Write-Ahead Log)를 지우고 선택적으로에 저장된 다른 제어 정보를 선택적으로 재설정합니다.PG_CONTROL
파일. 이 파일이 손상되면이 기능이 때때로 필요합니다. 그러한 부패로 인해 서버가 시작되지 않을 때만 최후의 수단으로 만 사용해야합니다.
이 명령을 실행 한 후 서버를 시작할 수 있어야하지만, 부분적으로 커밋 된 트랜잭션으로 인해 데이터베이스에 일관성이없는 데이터가 포함될 수 있습니다. 즉시 데이터를 버려야합니다. runinitdb
및 다시로드. 새로 고침 후 불일치와 필요에 따라 수리를 확인하십시오.
이 유틸리티는 데이터 디렉토리에 대한 읽기/쓰기 액세스가 필요하기 때문에 서버를 설치 한 사용자 만 실행할 수 있습니다. 안전상의 이유로, 명령 줄에 데이터 디렉토리를 지정해야합니다.토토 베이
환경 변수를 사용하지 않습니다pgdata
.
if토토 베이
유효한 데이터를 결정할 수 없다고 불평합니다PG_CONTROL
, 당신은 어쨌든를 지정하여 어쨌든 진행하도록 강요 할 수 있습니다.-f
(힘) 옵션. 이 경우 타당한 값은 누락 된 데이터로 대체됩니다. 대부분의 필드는 일치 할 것으로 예상 될 수 있지만 다음 OID, 다음 트랜잭션 ID 및 Epoch, 다음 Multitransaction ID 및 오프셋 및 WAL 시작 주소 필드에 수동 지원이 필요할 수 있습니다. 이 필드는 아래에 설명 된 옵션을 사용하여 설정할 수 있습니다. 이 모든 필드에 대한 올바른 값을 결정할 수 없다면-f
여전히 사용할 수 있지만 복구 된 데이터베이스는 평소보다 훨씬 더 많은 의심으로 처리해야합니다. 즉시 덤프와 재 장전이 필수적입니다.do not덤프하기 전에 데이터베이스에서 데이터 수정 작업을 실행합니다. 그러한 조치는 부패를 악화시킬 수 있으므로
-f
힘토토 베이
유효한 데이터를 결정할 수없는 경우에도 진행하려면PG_CONTROL
, 위에서 설명한대로.
-n
the-n
(작동 없음) 옵션 지침토토 베이
재구성 된 값을 인쇄하려면PG_CONTROL
그리고 변경 될 값을 변경 한 다음 아무것도 수정하지 않고 종료합니다. 이것은 주로 디버깅 도구이지만 허용하기 전에 생계 점검으로 유용 할 수 있습니다토토 베이
Real로 진행하려면.
-v
-버전
버전 정보 표시, 종료.
-?
-help
도움말 표시 다음 종료.
다음 옵션은 만 필요합니다.토토 베이
읽기를 통해 적절한 값을 결정할 수 없습니다PG_CONTROL
. 안전한 값은 아래에 설명 된대로 결정할 수 있습니다. 숫자 인수를 취하는 값의 경우 접두사를 사용하여 16 진수 값을 지정할 수 있습니다.0x
.
-c
xid
,xid
커밋 시간을 검색 할 수있는 가장 오래되고 최신 트랜잭션 ID를 수동으로 설정합니다.
커밋 시간을 검색 할 수있는 가장 오래된 트랜잭션 ID에 대한 안전한 값 (첫 번째 부분)은 디렉토리에서 수치 적으로 가장 작은 파일 이름을 찾아 결정할 수 있습니다pg_commit_ts
데이터 디렉토리 아래. 반대로, 커밋 시간을 검색 할 수있는 최신 트랜잭션 ID에 대한 안전한 값 (두 번째 부분)은 동일한 디렉토리에서 수치 적으로 가장 큰 파일 이름을 찾아 결정할 수 있습니다. 파일 이름은 16 진수입니다.
-e
xid_epoch
수동으로 다음 트랜잭션 ID의 epoch를 설정합니다.
트랜잭션 ID Epoch는 실제로 설정된 필드를 제외하고 데이터베이스의 어느 곳에도 저장되지 않습니다토토 베이
, 따라서 모든 값은 데이터베이스 자체에 관한 한 작동합니다. 와 같은 복제 시스템을 보장하기 위해이 값을 조정해야 할 수도 있습니다.Slony-IandSkyTools올바르게 작업 - 그렇다면 다운 스트림 복제 데이터베이스의 상태에서 적절한 값을 얻을 수 있어야합니다.
-l
Walfile
WAL 시작 주소를 수동으로 설정합니다.
WAL 시작 주소는 디렉토리에 현재 존재하는 WAL 세그먼트 파일 이름보다 커야합니다PG_WAL
데이터 디렉토리 아래. 이 이름은 또한 16 진수이며 세 부분이 있습니다. 첫 번째 부분은입니다.“타임 라인 ID”일반적으로 동일하게 유지해야합니다. 예를 들어, if000000010000320000004A
에서 가장 큰 항목입니다PG_WAL
, 사용-L 00000000000320000004B
이상.
토토 베이
자체는의 파일을 봅니다.PG_WAL
기본값을 선택합니다-l
마지막 기존 파일 이름을 넘어 설정. 따라서 수동 조정-l
현재 존재하지 않는 WAL 세그먼트 파일을 알고있는 경우에만 필요합니다PG_WAL
14766_14831PG_WAL
완전히 잃어 버렸습니다.
-m
MXID
,MXID
수동으로 다음과 오래된 다중 변환 ID를 설정합니다.
다음 Multitransaction ID의 안전한 값 (첫 번째 부분)은 디렉토리에서 숫자로 가장 큰 파일 이름을 찾아 결정할 수 있습니다pg_multixact/오프셋
데이터 디렉토리 아래에 하나를 추가 한 다음 65536 (0x10000)을 곱합니다. 반대로, 가장 오래된 Multitransaction ID의 안전한 가치 (의 두 번째 부분-m
)는 동일한 디렉토리에서 수치 적으로 가장 작은 파일 이름을 찾고 65536을 곱하여 결정할 수 있습니다. 파일 이름은 16 진수 이므로이 작업을 수행하는 가장 쉬운 방법은 16 진수로 옵션 값을 지정하고 네 제로를 부속하는 것입니다.
-o
OID
다음 Oid를 수동으로 설정합니다.
데이터베이스에서 가장 큰 다음 OID를 넘어서는 다음 OID를 결정할 수있는 쉬운 방법은 없지만 다행히도 다음 OID 설정을 올바르게 얻는 것이 중요하지 않습니다..
-o
mxoff
다음 Multitransaction Offset을 수동으로 설정합니다.
디렉토리에서 수치 적으로 가장 큰 파일 이름을 찾아 안전한 값을 결정할 수 있습니다PG_MULTIXACT/회원
데이터 디렉토리 아래에 하나를 추가 한 다음 52352 (0xcc80)를 곱합니다. 파일 이름은 16 진수입니다. 0을 추가하는 다른 옵션을위한 것과 같은 간단한 레시피는 없습니다.
-uxid
수동으로 가장 오래된 Unrrozen Transaction ID를 설정하십시오.
디렉토리에서 수치 적으로 가장 작은 파일 이름을 찾아 안전한 값을 결정할 수 있습니다PG_XACT
데이터 디렉토리 아래에서 1048576 (0x100000)을 곱합니다. 파일 이름은 16 진수입니다. 일반적으로 옵션 값을 16 진수로 지정하는 것이 가장 쉽습니다. 예를 들어, if0007
에서 가장 작은 항목입니다PG_XACT
, -u 0x700000
작동합니다 (5 개의 후행 제로가 적절한 승수를 제공합니다).
-x
xid
다음 트랜잭션 ID를 수동으로 설정합니다.
디렉토리에서 수치 적으로 가장 큰 파일 이름을 찾아 안전한 값을 결정할 수 있습니다PG_XACT
데이터 디렉토리 아래에 하나를 추가 한 다음 1048576 (0x100000)을 곱합니다. 파일 이름은 16 진수입니다. 일반적으로 옵션 값을 16 진수로 지정하는 것이 가장 쉽습니다. 예를 들어, if0011
에서 가장 큰 항목입니다PG_XACT
, -x 0x1200000
작동합니다 (5 개의 후행 제로는 적절한 승수를 제공합니다).
서버가 실행 중일 때이 명령을 사용해서는 안됩니다.토토 베이
데이터 디렉토리에서 서버 잠금 파일을 찾으면 시작을 거부합니다. 서버가 충돌하면 잠금 파일이 남아있을 수 있습니다. 이 경우 허용 할 잠금 파일을 제거 할 수 있습니다토토 베이
실행. 그러나 그렇게하기 전에 서버 프로세스가 아직 살아남지 않음을 두 배로 확신하십시오.
토토 베이
동일한 주요 버전의 서버에서만 작동합니다.