64.1. 일반 와이즈 토토 레코드#

내장된 모든 와이즈 토토 로그 모듈에는 고유한 유형의 와이즈 토토 레코드가 있지만 일반적인 방식으로 페이지 변경 사항을 설명하는 일반 와이즈 토토 레코드 유형도 있습니다.

참고

일반 WAL 레코드는 다음 동안 무시됩니다.43토토 꽁 머니17. 확장 프로그램에 논리적 디코딩이 필요한 경우 Custom WAL Resource Manager를 고려하세요.

일반 WAL 레코드를 구성하기 위한 API는 다음에 정의되어 있습니다.access/generic_xlog.h다음에서 구현됨액세스/transam/generic_xlog.c.

일반 WAL 레코드 기능을 사용하여 WAL 로그 데이터 업데이트를 수행하려면 다음 단계를 따르십시오.

  1. 상태 = GenericXLogStart(관계)— 주어진 관계에 대한 일반 와이즈 토토 레코드 구성을 시작합니다.

  2. page = GenericXLogRegisterBuffer(상태, 버퍼, 플래그)— 현재 일반 WAL 레코드 내에서 수정될 버퍼를 등록합니다. 이 함수는 수정이 이루어져야 하는 버퍼 페이지의 임시 복사본에 대한 포인터를 반환합니다. (버퍼의 내용을 직접 수정하지 마십시오.) 세 번째 인수는 작업에 적용할 수 있는 플래그의 비트 마스크입니다. 현재 유일한 플래그는 다음과 같습니다.GENERIC_XLOG_FULL_IMAGE, 이는 델타 업데이트가 아닌 전체 페이지 이미지가 와이즈 토토 레코드에 포함되어야 함을 나타냅니다. 일반적으로 이 플래그는 페이지가 새 페이지이거나 완전히 다시 작성된 경우 설정됩니다.GenericXLogRegisterBuffer와이즈 토토에 기록된 작업이 여러 페이지를 수정해야 하는 경우 반복될 수 있습니다.

  3. 이전 단계에서 얻은 페이지 이미지에 수정 사항을 적용합니다.

  4. GenericXLogFinish(상태)— 버퍼에 변경 사항을 적용하고 일반 와이즈 토토 레코드를 내보냅니다.

와이즈 토토 레코드 생성은 호출을 통해 위 단계 사이에서 취소될 수 있습니다.GenericXLogAbort(상태). 페이지 이미지 사본에 대한 모든 변경사항이 삭제됩니다.

일반 WAL 레코드 기능을 사용할 때 다음 사항에 유의하십시오.

  • 버퍼를 직접 수정하는 것은 허용되지 않습니다! 모든 수정은 다음에서 얻은 사본으로 수행되어야 합니다.GenericXLogRegisterBuffer(). 즉, 일반 와이즈 토토 레코드를 만드는 코드는 절대 호출하면 안 됩니다.BufferGetPage()그 자체로. 그러나 적절한 시간에 버퍼를 고정/고정 해제하고 잠그거나 잠금 해제하는 것은 호출자의 책임입니다. 이전부터 각 대상 버퍼에 배타적 잠금을 유지해야 합니다.GenericXLogRegisterBuffer()다음 이후까지GenericXLogFinish().

  • 버퍼 등록(2단계)과 페이지 이미지 수정(3단계)을 자유롭게 혼합할 수 있습니다. 즉, 두 단계를 임의의 순서로 반복할 수 있습니다. 버퍼는 재생 중에 잠금을 얻는 순서와 동일한 순서로 등록되어야 한다는 점을 명심하세요.

  • 일반 WAL 레코드에 등록할 수 있는 최대 버퍼 수는 다음과 같습니다.MAX_GENERIC_XLOG_PAGES. 이 한도를 초과하면 오류가 발생합니다.

  • 일반 와이즈 토토은 수정될 페이지가 표준 레이아웃을 가지고 있으며 특히 사이에 유용한 데이터가 없다고 가정합니다.pd_lower그리고pd_upper.

  • 버퍼 페이지의 복사본을 수정하고 있으므로,GenericXLogStart()중요 섹션을 시작하지 않습니다. 따라서 사이에 메모리 할당, 오류 던지기 등을 안전하게 수행할 수 있습니다.GenericXLogStart()그리고GenericXLogFinish(). 내부에는 유일한 실제 중요 섹션이 있습니다.GenericXLogFinish(). 전화는 걱정하지 않으셔도 됩니다.GenericXLogAbort()오류 종료 중.

  • GenericXLogFinish()버퍼를 더티로 표시하고 해당 LSN을 설정합니다. 이 작업을 명시적으로 수행할 필요는 없습니다.

  • 기록되지 않은 관계의 경우 실제 와이즈 토토 기록이 내보내지지 않는다는 점을 제외하면 모든 것이 동일하게 작동합니다. 따라서 일반적으로 기록되지 않은 관계에 대해 명시적인 검사를 수행할 필요가 없습니다.

  • 일반 와이즈 토토 다시 실행 기능은 등록된 순서와 동일한 순서로 버퍼에 대한 배타적 잠금을 획득합니다. 모든 변경 사항을 다시 실행한 후에는 동일한 순서로 잠금이 해제됩니다.

  • 만약GENERIC_XLOG_FULL_IMAGE13408_13686

수정사항 제출

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