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