이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : O.4. pg_resetxlog pg_resetwal로 메이저 토토 사이트 변경되었습니다버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

롤 토토

이름

롤 토토 --미리 쓰기 로그 재설정 및 a의 기타 제어 정보포스트그레SQL데이터베이스 클러스터

시놉시스

롤 토토[-f] [-n] [-ooid] [-xxid] [-exid_epoch] [-mmxid] [-Omxoff] [-l타임라인id,파일 ID,세그 ] datadir

설명

롤 토토미리 쓰기를 지웁니다. 로그(WAL)를 기록하고 선택적으로 다른 제어 정보를 재설정합니다. 에 저장됨pg_control파일. 이 이러한 파일이 다음과 같은 경우 기능이 필요할 수 있습니다. 손상되었습니다. 다음과 같은 경우 최후의 수단으로만 사용해야 합니다. 이러한 손상으로 인해 서버가 시작되지 않습니다.

이 명령을 실행한 후 다음을 시작할 수 있습니다. 하지만 데이터베이스에는 다음이 포함될 수 있다는 점을 명심하세요. 부분적으로 커밋된 트랜잭션으로 인해 데이터가 일치하지 않습니다. 당신 즉시 데이터를 덤프하고 실행해야 합니다.initdb하고 다시 로드하세요. 새로고침한 후 확인하세요. 불일치 및 필요에 따라 수리합니다.

이 유틸리티는 다음을 설치한 사용자만 실행할 수 있습니다. 서버(데이터에 대한 읽기/쓰기 액세스가 필요하기 때문) 디렉토리. 안전상의 이유로 데이터를 지정해야 합니다. 명령줄의 디렉터리입니다.롤 토토환경 변수를 사용하지 않습니다PGDATA.

만약롤 토토그렇다고 불평합니다 유효한 데이터를 확인할 수 없습니다.pg_control, 어쨌든 강제로 진행하도록 할 수 있습니다. 를 지정-f(강제) 스위치. 에서 이 경우 그럴듯한 값이 누락된 값으로 대체됩니다. 데이터. 대부분의 필드가 일치할 것으로 예상할 수 있지만 수동으로 다음 OID, 다음 거래 ID에 대한 지원이 필요할 수 있습니다. 및 에포크, 다음 다중 트랜잭션 ID 및 오프셋, WAL 시작 주소 필드. 이 필드는 스위치를 사용하여 설정할 수 있습니다. 아래에서 논의됩니다. 정확한 값을 결정할 수 없는 경우 이 모든 필드에 대해,-f아직 그럴 수 있어요 사용되지만 복구된 데이터베이스는 더 많은 조치를 취해야 합니다. 평소보다 의심스럽습니다. 즉시 덤프하고 다시 로드해야 합니다.하지 마세요아무거나 실행 덤프하기 전에 데이터베이스에서 데이터 수정 작업을 수행합니다. 그러한 조치는 부패를 더욱 악화시킬 가능성이 높습니다.

-o, -x, -e, -m, -O-l스위치는 다음 OID, 다음 트랜잭션 ID, 다음을 허용합니다. 트랜잭션 ID의 에포크, 다음 다중 트랜잭션 ID, 다음 다중 트랜잭션 오프셋 및 WAL 시작 주소 값은 수동으로 설정하세요. 이는 다음 경우에만 필요합니다.롤 토토적절한 결정을 내릴 수 없습니다 읽기에 의한 가치pg_control. 안전함 값은 다음과 같이 결정될 수 있습니다.

  • 다음 거래 ID의 안전한 값(-x)는 다음을 검색하여 결정할 수 있습니다. 디렉토리에서 숫자로 가장 큰 파일 이름pg_clog데이터 디렉토리 아래에 하나를 추가하고, 그런 다음 1048576을 곱합니다. 파일 이름은 다음과 같습니다. 16진수로. 일반적으로 스위치를 지정하는 것이 가장 쉽습니다. 값도 16진수로 표시됩니다. 예를 들어, 만약0011다음에서 가장 큰 항목입니다.pg_clog, -x 0x1200000작동합니다(뒤에 0이 5개 있으면 적절한 승수).

  • 다음 다중 트랜잭션 ID의 안전한 값(-m)은 다음을 찾아 결정될 수 있습니다. 디렉토리에서 숫자로 가장 큰 파일 이름pg_multixact/오프셋데이터 아래 디렉터리에 1을 더한 다음 65536을 곱합니다. 위에서는 파일 이름이 16진수이므로 가장 쉬운 방법은 이를 수행하려면 스위치 값을 16진수로 지정하고 4개의 0을 추가하세요.

  • 다음 다중 트랜잭션 오프셋을 위한 안전한 값 (-O)은 다음을 통해 확인할 수 있습니다. 디렉토리에서 수치적으로 가장 큰 파일 이름에 대해pg_multixact/members데이터 아래 디렉터리에 1을 더한 다음 65536을 곱합니다. 위에서는 파일 이름이 16진수이므로 가장 쉬운 방법은 이를 수행하려면 스위치 값을 16진수로 지정하고 4개의 0을 추가하세요.

  • WAL 시작 주소(-l) 현재 WAL 세그먼트 파일 이름보다 커야 합니다. 디렉토리에 존재함pg_xlog데이터 디렉토리 아래. 이 이름은 16진수로도 표시됩니다. 세 부분으로 구성됩니다. 첫 번째 부분은"타임라인 ID"일반적으로 유지되어야 합니다. 동일합니다. 255()보다 큰 값을 선택하지 마십시오.0xFF) 세 번째 부분; 대신 증가 두 번째 부분을 삭제하고 세 번째 부분을 0으로 재설정합니다. 예를 들어, 만일00000001000000320000004A이것은 에서 가장 큰 항목pg_xlog, -l 0x1,0x32,0x4B작동합니다; 하지만 만약에 가장 큰 항목은 다음과 같습니다.000000010000003A000000FF, 선택-l 0x1,0x3B,0x0또는 그 이상.

    참고: 롤 토토자체는 다음의 파일을 봅니다pg_xlog기본값을 선택합니다-l마지막 기존 파일 이후 설정 이름. 따라서 수동 조정-l당신이 알고 있는 경우에만 필요합니다 현재 존재하지 않는 WAL 세그먼트 파일 중pg_xlog(예: 오프라인 아카이브; 또는 다음의 내용인 경우pg_xlog완전히 사라졌습니다.

  • 다음 OID를 결정하는 비교적 쉬운 방법은 없습니다. 이는 데이터베이스에서 가장 큰 것보다 크지만 다행히 다음 OID 설정을 얻는 것은 중요하지 않습니다. 그렇죠.

  • 트랜잭션 ID 에포크는 실제로 어디에도 저장되지 않습니다 다음으로 설정된 필드를 제외한 데이터베이스에서롤 토토, 따라서 어떤 값이든 지금까지는 작동합니다. 데이터베이스 자체가 관련됩니다. 조정해야 할 수도 있습니다. 이 값은 다음과 같은 복제 시스템을 보장하기 위한 것입니다.슬로니-I제대로 작동 — 만약 따라서 국가로부터 적절한 값을 얻을 수 있어야 합니다. 다운스트림 복제 데이터베이스의.

-n(작동 없음) 스위치 지시한다롤 토토인쇄하려면 다음에서 재구성된 값pg_control그런 다음 아무것도 수정하지 않고 종료합니다. 이는 주로 디버깅 도구이지만 이전에 온전한지 확인하는 데 유용할 수 있습니다. 허용롤 토토진행하다 진짜.

-V그리고--버전옵션 인쇄롤 토토버전을 종료하고 종료합니다. 옵션-?그리고--도움말지원되는 인수를 표시하고 종료합니다.

참고

이 명령은 서버가 실행 중일 때 사용되어서는 안됩니다.롤 토토다음의 경우 시작을 거부합니다. 데이터 디렉터리에서 서버 잠금 파일을 찾습니다. 서버의 경우 충돌이 발생하면 잠금 파일이 남아 있을 수 있습니다. 그 안에 경우에 따라 잠금 파일을 제거하여 허용할 수 있습니다.롤 토토실행합니다. 하지만 그렇게 하기 전에, 아직 살아있는 서버 프로세스가 없다는 것을 두 배로 확신합니다.