와이즈 토토 생성 - 새 와이즈 토토 정의
와이즈 토토 생성subscription_name
연결 'Conninfo
' 출판publication_name
[, ...] [ 와 함께 (Subscription_Parameter
[=value
] [, ...])
와이즈 토토 생성
새로운 논리적 반복 와이즈 토토을 추가합니다. 와이즈 토토을 생성하는 사용자는 와이즈 토토의 소유자가됩니다. 와이즈 토토 이름은 현재 데이터베이스의 기존 와이즈 토토 이름과 구별되어야합니다.
와이즈 토토은 게시자에 대한 복제 연결을 나타냅니다. 따라서 로컬 카탈로그에 정의를 추가하는 것 외에도이 명령은 일반적으로 게시자에 복제 슬롯을 만듭니다.
논리적 복제 작업자는 와이즈 토토이 처음 비활성화되지 않는 한이 명령이 실행되는 트랜잭션 커밋에서 새 와이즈 토토에 대한 데이터를 복제하기 시작합니다.
와이즈 토토을 만들 수 있으려면의 권한이 있어야합니다.pg_create_subscription
역할 및Create
현재 데이터베이스의 권한.
와이즈 토토 및 논리 복제에 대한 추가 정보 전체에서 사용할 수 있습니다와이즈 토토 커뮤니티및PostgreSQL : 문서 : 16 : 31 장. 논리적 젠 와이즈 토토.
subscription_name
#새 와이즈 토토의 이름.
연결 'Conninfo
'
#thelibpq연결 문자열이 게시자 데이터베이스에 연결하는 방법을 정의합니다. 자세한 내용은 참조섹션 34.1.1.
Publicationpublication_name
[, ...]
#가입자가 출판사의 출판물 이름.
with (Subscription_Parameter
[=value
] [, ...])
#이 조항은 와이즈 토토에 대한 선택적 매개 변수를 지정합니다.
다음 매개 변수는 와이즈 토토 생성 중에 발생하는 일을 제어합니다.
Connect
(부울
) #와이즈 토토 생성
명령은 게시자에게 전혀 연결해야합니다. 기본값은true
. 이것을 설정false
의 값을 강요 할 것입니다create_slot
, 활성화
andCopy_Data
tofalse
. (설정을 결합 할 수 없습니다Connect
to거짓
설정create_slot
, 활성화
또는Copy_Data
totrue
.)
이 옵션이있을 때 연결되지 않으므로거짓
, 표가 와이즈 토토되지 않습니다. 복제를 시작하려면 복제 슬롯을 수동으로 생성하고 와이즈 토토을 활성화하고 와이즈 토토을 새로 고치십시오. 보다섹션 31.2.3예제.
create_slot
(부울
) #명령이 게시자에 복제 슬롯을 생성 해야하는지 여부를 지정합니다. 기본값은true
.
로 설정된 경우false
, 귀하는 다른 방식으로 게시자의 슬롯을 작성해야합니다. 보다섹션 31.2.3예제.
활성화
(부울
) #와이즈 토토이 적극적으로 복제되어야하는지 또는 아직 설정되어야하지만 아직 시작되지 않았는지 여부를 지정합니다. 기본값은true
.
slot_name
(Stri와이즈 토토
) #사용할 게시자의 복제 슬롯의 이름. 기본값은 슬롯 이름의 와이즈 토토 이름을 사용하는 것입니다.
설정slot_name
to없음
가입과 관련된 복제 슬롯이 없음을 의미합니다. 이러한 와이즈 토토에는 둘 다 있어야합니다활성화
및create_slot
설정거짓
. 나중에 복제 슬롯을 수동으로 생성 할 때 이것을 사용하십시오. 보다섹션 31.2.3예제.
다음 매개 변수는 와이즈 토토의 복제 동작이 생성 된 후에 :을 제어합니다.
BINAGE
(부울
) #와이즈 토토이 게시자에게 데이터를 이진 형식으로 보내도록 요청할지 여부를 지정합니다 (텍스트와 반대). 기본값은거짓
. 초기 테이블 동기화 사본 (참조Copy_Data
)도 동일한 형식을 사용합니다. 이진 형식은 텍스트 형식보다 빠를 수 있지만 기계 아키텍처에서 휴대용이 덜 휴대합니다.PostgreSQL버전. 이진 형식은 매우 데이터 유형에 따라 다릅니다. 예를 들어, A에서 복사 할 수 없습니다.smallint
열에서정수
열은 텍스트 형식으로 잘 작동하지만. 이 옵션이 활성화 되더라도 바이너리 보내기 및 수신 기능이있는 데이터 유형 만 바이너리로 전송됩니다. 초기 동기화에는 모든 데이터 유형이 바이너리 보내기 및 수신 함수를 갖도록 요구합니다. 그렇지 않으면 동기화가 실패합니다 (참조유형 만들기송수지/수신 기능에 대한 자세한 내용).
교차 버전 복제를 수행 할 때 게시자는 일부 데이터 유형에 대한 이진 보내기 기능이 있지만 가입자는 해당 유형에 대한 이진 수신 기능이 부족할 수 있습니다. 이 경우 데이터 전송이 실패하고BINAGE
옵션을 사용할 수 없습니다.
게시자가 A 인 경우PostgreSQL16 이전 버전, 그러면 모든 초기 테이블 동기화는 텍스트 형식을 사용하더라도BINAGE = TRUE
.
Copy_Data
(부울
) #복제가 시작될 때 와이즈 토토중인 간행물에서 기존 데이터를 복사할지 여부를 지정합니다. 기본값은true
.
간행물에 포함 된 경우여기서
조항은 복사 된 데이터에 영향을 미칩니다. 참조노트자세한 내용.
참조노트방법에 대한 세부 사항copy_data = true
원산지
매개 변수.
스트리밍
(enum
) #이 와이즈 토토에 대한 진행중인 트랜잭션 스트리밍을 활성화할지 여부를 지정합니다. 기본값은입니다.OFF
, 즉 모든 트랜잭션이 게시자에서 완전히 디코딩 된 후 와이즈 토토자에게만 전송됩니다.
로 설정된 경우on
, 들어오는 변경 사항은 임시 파일에 기록 된 다음 거래가 게시자에게 커밋되고 가입자가 수신 한 후에 만 적용됩니다..
로 설정된 경우병렬
, 들어오는 변경 사항은 가능한 경우 병렬 적 신청 작업자 중 하나를 통해 직접 적용됩니다. 병렬 적 신청 작업자가 스트리밍 트랜잭션을 자유롭게 처리 할 수없는 경우 변경 사항은 임시 파일에 기록되고 거래가 커밋 된 후에 적용됩니다. 병렬 적용 작업자에서 오류가 발생하면 원격 트랜잭션의 마무리 LSN이 서버 로그에서보고되지 않을 수 있습니다.
synchronous_commit
(enum
) #이 매개 변수의 값은를 무시합니다.synchronous_commit이 와이즈 토토의 적용 작업자 프로세스 내에서 설정. 기본값은입니다.OFF
.
사용하기에 안전합니다OFF
논리적 복제의 경우 : 가입자가 동기화 누락으로 인해 트랜잭션을 잃으면 데이터가 게시자로부터 다시 전송됩니다.
동기 논리 복제를 수행 할 때 다른 설정이 적절할 수 있습니다. 논리적 복제 작업자는 쓰기의 위치를보고하고 플러시가 게시자에게보고하며, 동기 복제를 사용할 때 게시자는 실제 플러시를 기다립니다. 이것은 설정을 의미synchronous_commit
가입자의 경우OFF
와이즈 토토이 동기식 복제에 사용되는 경우 대기 시간이 증가 할 수 있습니다.커밋
출판사에서. 이 시나리오에서는 설정하는 것이 유리할 수 있습니다synchronous_commit
toLocal
이상.
Two_Phase
(부울
) #이 와이즈 토토에 대해 2 단계 커밋이 활성화되어 있는지 여부를 지정합니다. 기본값은거짓
.
2 단계 커밋이 활성화되면 준비된 트랜잭션이 가입자에게 전송됩니다.거래 준비
, 가입자의 2 상 트랜잭션으로 처리됩니다. 그렇지 않으면, 준비된 거래는 커밋 된 경우에만 가입자에게 전송 된 다음 가입자가 즉시 처리됩니다.
2 단계 커밋의 구현을 위해서는 복제가 초기 테이블 동기화 단계를 성공적으로 완료해야합니다. 그래서Two_phase
와이즈 토토에 대해 활성화되어 있으며 내부 2 상 상태는 일시적으로 유지됩니다“보류 중”초기화 단계가 완료 될 때까지. 열 참조Subtwophasestate
ofpg_subscription
실제 2 상 상태를 알기 위해.
disable_on_error
(부울
) #게시자의 데이터 복제 중에 가입 작업자가 오류를 감지하면 와이즈 토토이 자동으로 비활성화되어야하는지 여부를 지정합니다. 기본값은거짓
.
password_required
(부울
) #로 설정된 경우true
,이 와이즈 토토의 결과로 작성된 게시자에 대한 연결은 비밀번호 인증을 사용해야하며 비밀번호는 연결 문자열의 일부로 지정되어야합니다. 이 설정은 슈퍼 사용자가 와이즈 토토을 소유 할 때 무시됩니다. 기본값은true
. 수퍼 유저만이 값을로 설정할 수 있습니다.거짓
.
run_as_owner
(부울
) #True 인 경우 모든 복제 작업은 가입 소유자로 수행됩니다. False 인 경우 복제 작업자는 해당 테이블의 소유자로 각 테이블에서 작업을 수행합니다. 후자의 구성은 일반적으로 훨씬 더 안전합니다. 자세한 내용은 참조PostgreSQL : 문서 : 16 : 31.9. 스포츠 토토 베트맨. 기본값은거짓
.
원산지
(Stri와이즈 토토
) #와이즈 토토이 출판사에게 원산지에 관계없이 원점이없는 변경 사항 만 보내거나 변경 사항을 보내도록 요청할지 여부를 지정합니다. 환경원산지
to없음
와이즈 토토은 게시자가 원산지가없는 변경 사항 만 보내도록 요청한다는 것을 의미합니다. 환경원산지
toAny
는 출판사가 원산지에 관계없이 변경 사항을 보낸다는 것을 의미합니다. 기본값은Any
.
참조노트방법에 대한 세부 사항copy_data = true
와 상호 작용할 수 있습니다원산지
매개 변수.
유형의 매개 변수를 지정할 때부울
, The=
value
부품을 생략 할 수 있습니다. 이는 지정과 동일합니다true
.
참조PostgreSQL : 문서 : 16 : 31.9. 스포츠 토토 베트맨와이즈 토토 및 게시 인스턴스 간의 액세스 제어를 구성하는 방법에 대한 자세한 내용.
복제 슬롯을 만들 때 (기본 동작),와이즈 토토 생성
트랜잭션 블록 내부에서 실행할 수 없습니다.
동일한 데이터베이스 클러스터에 연결되는 와이즈 토토 생성 (예 : 동일한 클러스터의 데이터베이스간에 복제하거나 동일한 데이터베이스 내에서 복제하기 위해)은 복제 슬롯이 동일한 명령의 일부로 생성되지 않은 경우에만 성공합니다. 그렇지 않으면와이즈 토토 생성
전화가 걸려 있습니다. 이 작동하려면 복제 슬롯을 별도로 만듭니다 (함수 사용pg_create_logical_replication_slot
플러그인 이름이있는pgoutput
) 및 매개 변수를 사용하여 와이즈 토토 생성create_slot = false
. 보다섹션 31.2.3예제. 이것은 향후 릴리스에서 해제 될 수있는 구현 제한입니다.
출판물에있는 테이블에여기서
조항, 행표현
False로 평가하거나 NULL이 게시되지 않습니다. 와이즈 토토에 동일한 테이블이 다른 것으로 게시 된 몇 가지 간행물이있는 경우여기서
클로즈, 출판물을 참조하는 표현이 만족되면 행이 게시됩니다. 다른 경우여기서
출판물 중 하나에 없으면 조항여기서
절 (해당 게시 작업 참조) 또는 간행물은로 선언됩니다.모든 테이블의 경우
또는스키마 테이블
, 행은 다른 표현의 정의에 관계없이 항상 게시됩니다. 가입자가 A 인 경우PostgreSQL버전 15 이전 버전에서는 초기 데이터 동기화 단계에서 행 필터링이 무시됩니다. 이 경우 사용자는 후속 필터링과 호환되지 않는 처음 복사 된 데이터 삭제를 고려할 수 있습니다. 초기 데이터 동기화가 출판물을 고려하지 않기 때문에게시
매개 변수 기존 테이블 데이터를 복사 할 때 DML을 사용하여 복제되지 않는 일부 행을 복사 할 수 있습니다. 보다섹션 31.2.2예제.
다른 열 목록과 함께 동일한 테이블이 게시 된 여러 간행물이있는 와이즈 토토은 지원되지 않습니다.
사용자가 나중에 이들을 추가 할 수 있도록 존재하지 않는 출판물을 지정할 수 있습니다. 이것은 의미pg_subscription
존재하지 않는 출판물을 가질 수 있습니다.
와이즈 토토 매개 변수 조합을 사용할 때copy_data = true
및원산지 = 없음
, 초기 동기화 테이블 데이터는 게시자로부터 직접 복사되므로 해당 데이터의 실제 기원에 대한 지식이 불가능하다는 것을 의미합니다. 게시자에 와이즈 토토이있는 경우 복사 된 테이블 데이터가 추가 업스트림에서 시작되었을 수 있습니다. 이 시나리오가 감지되고 경고가 사용자에게 기록되어 있지만 경고는 잠재적 인 문제를 나타내는 것입니다. 복사 된 데이터 원산지가 실제로 원하는지 아닌지 확인하기 위해 필요한 점검을하는 것은 사용자의 책임입니다.
게시자에 생성 된 다른 와이즈 토토으로 인해 비 국소 기원을 포함 할 수있는 테이블을 찾으려면이 SQL 쿼리를 시도하십시오.
### pub-names 아래의 출판물 이름과 함께 쿼리 할 것입니다. 별도의 pt.schemaname, pt.tablename을 선택하십시오 pg_publication_tables pt pg_class c에 가입하십시오 (c.relname = pt.tablename) pg_namespace n on (n.nspname = pt.schemaname), pg_subscription_rel ps 여기서 c.relnamespace = n.oid 및 (ps.srrelid = C.Oid 또는 C.Oid in (PG_PARTITION_ANCESSTORS (PS.SRRELID) UNION에서 RELID를 선택하십시오 pg_partition_tree (ps.srrelid))))에서 린드를 선택하십시오 Pt.pubName in (<pub-names);
간행물에서 테이블을 복제하는 원격 서버에 대한 와이즈 토토 생성MyPublication
andinsert_only
그리고 즉시 커밋에서 복제를 시작합니다 :
와이즈 토토 생성 MySub 연결 '호스트 = 192.168.1.50 포트 = 5432 사용자 = foo dbname = foodb' 간행물 mypublication, insert_only;
|insert_only
출판 및 나중에 활성화 될 때까지 복제를 시작하지 않습니다.
와이즈 토토 생성 MySub 연결 '호스트 = 192.168.1.50 포트 = 5432 사용자 = foo dbname = foodb' 출판물 insert_only (enabled = false);
와이즈 토토 생성
isPostgreSQL확장.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면