이 장은 핵심 사이의 인터페이스를 설명합니다PostgreSQL시스템 및 사용자 정의 메이저 토토 사이트 리소스 관리자, 확장자가 직접 통합 할 수 있도록합니다.메이저 토토 사이트.
확장, 특히 APostgreSQL : 문서 : 16 : 63 장. 테이블 스포츠 토토 베트맨 방법 인터페이스 정의또는PostgreSQL : 문서 : 16 : 64 장 INDEX 사설 토토 사이트 방법 인터페이스 정의, 복구, 복제 및/또는에 WAL을 사용해야 할 수도 있습니다.PostgreSQL : 문서 : 16 : 49 장. 무지개 토토 디코딩. 맞춤형 자원 관리자는에 대한보다 유연한 대안입니다.PostgreSQL : 문서 : 16 : 65 장 일반 토토 결과 레코드(논리적 디코딩을 지원하지 않음), 확장이 구현하기위한 더 복잡한 것입니다.
새로운 Custom 메이저 토토 사이트 Resource Manager를 작성하려면 먼저 정의rmgrdata
자원 관리자 방법에 대한 구현이있는 구조. 참조src/backend/access/transam/readme
andsrc/include/access/acceld/xlog_internal.h
inpostgresql소스.
/* * 리소스 관리자를위한 메소드 테이블. * *이 구조는 pg_rmgr 정의와 동기화되어야합니다. * rmgr.c. * * rm_identify는 xl_info를 기준으로 레코드의 이름을 반환해야합니다 ( * RMID에 대한 참조). 예를 들어, XLOG_BTREE_VACUUM의 이름이 지정됩니다 * "진공". 그런 다음 RM_DESC를 호출하여 추가 세부 사항을 얻을 수 있습니다. * 사용 가능한 경우 기록하십시오 (예 : 마지막 블록). * * rm_mask는 리소스 관리자와 마스크가 수정 한 페이지를 입력으로 사용합니다. * wal_consistency_checking에 의해 플래그를 지정해서는 안되는 비트. * * rmgrtable []는 rmgrid 값으로 인덱싱됩니다 (rmgrlist.h 참조). rm_name이라면 * NULL, 해당 RMGRTABLE 항목은 유효하지 않은 것으로 간주됩니다. */ typedef struct rmgrdata const char *rm_name; void ( *rm_redo) (xlogreaderstate *레코드); void ( *rm_desc) (StringInfo buf, xlogreaderstate *레코드); const char *( *rm_identify) (uint8 info); void (*rm_startup) (void); void (*rm_cleanup) (void); void ( *rm_mask) (char *pagedata, blocknumber blkno); void ( *rm_decode) (struct logicaldecodingcontext *ctx, struct xlogrecordbuffer *buf); rmgrdata;
thesrc/test/modules/test_custom_rmgrs
모듈은 커스텀 월드 리소스 관리자의 사용을 보여주는 작업 예제를 포함합니다.
그런 다음 새 리소스 관리자를 등록하십시오.
/* * 새 Custom 메이저 토토 사이트 Resource Manager를 등록하십시오. * * 리소스 관리자 ID는 모든 확장에서 전 세계적으로 고유해야합니다. 나타내다 * https://wiki.postgresql.org/wiki/customwalresourcemanagers에 a * 다른 확장과의 충돌을 피하기 위해 확장을위한 고유 한 rmgrid * 개발자. 개발 중에 RM_ExperImental_id를 사용하여 불필요하게 피하십시오 * 새 ID를 예약합니다. */ extern void registercustomrmgr (rmgrid rmid, const rmgrdata *rmgr);
RegisterCustomRMGR
확장 모듈에서 호출해야합니다_pg_init함수. 새로운 확장을 개발하는 동안 사용rm_experimental_id
forrmid
. 사용자에게 확장을 해제 할 준비가되면에서 새로운 리소스 관리자 ID를 예약하십시오.Custom 메이저 토토 사이트 Resource Manager페이지.
확장 모듈 배치shared_preload_libraries그래서 일찍로드되도록PostgreSQL스타트 업.
확장자는 시스템에 사용자 정의 메이저 토토 사이트 레코드가 존재할 수있는 한 Shared_preload_libraries에 남아 있어야합니다. 그렇지 않으면postgresql사용자 정의 메이저 토토 사이트 레코드를 적용하거나 해독 할 수 없으므로 서버가 시작되지 않을 수 있습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면