이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 47.1. 논리적 디코딩 토토버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

47.1. 논리적 메이저 토토 사이트 예제

다음 예제는 SQL 인터페이스를 사용하여 논리 메이저 토토 사이트 제어를 보여줍니다.

논리적 메이저 토토 사이트을 사용하기 전에 설정해야합니다Wal_leveltoLogicalandmax_replication_slots~ 1 개 이상. 그러면 대상 데이터베이스에 연결해야합니다 (아래 메이저 토토 사이트에서메이저 토토 사이트) 슈퍼 사용자로서.

postgres =# - 출력 플러그인 'test_decoding'을 사용하여 'regression_slot'이라는 슬롯을 만듭니다.
postgres =# select * from pg_create_logical_replication_slot ( 'regression_slot', 'test_decoding');
    slot_name | xlog_position
----------------+----------------
 회귀 _slot | 0/16B1970
(1 줄)

postgres =# select selt_name, 플러그인, slot_type, database, active, retart_lsn, pg_replication_slots에서 volucted_flush_lsn;
    slot_name |    플러그인 | slot_type | 데이터베이스 | 활성 | RETART_LSN | 확인 된_flush_lsn
-----------------------------------------------------------------------------------------------------------------
 회귀 _slot | test_decoding | 논리적 | 메이저 토토 사이트 | f | 0/16A4408 | 0/16A4440
(1 줄)

메이저 토토 사이트 =# - 아직 볼 수있는 변경 사항이 없습니다
postgres =# select * from pg_logical_slot_get_changes ( 'regression_slot', null, null);
 위치 | xid | 데이터
----------+-----+------
(0 줄)

postgres =# 테이블 데이터 생성 (ID 직렬 기본 키, 데이터 텍스트);
테이블을 만듭니다

메이저 토토 사이트 =# - DDL은 복제되지 않았으므로 볼 수있는 것은 거래입니다.
postgres =# select * from pg_logical_slot_get_changes ( 'regression_slot', null, null);
 위치 | xid |    데이터
-----------+-----+------------
 0/16d5d48 | 688 | 시작 688을 시작하십시오
 0/16e0380 | 688 | 커밋 688
(2 줄)

메이저 토토 사이트 =# - 일단 변경되면 소비되고 방출되지 않습니다.
메이저 토토 사이트 =# - 후속 호출에서 :
postgres =# select * from pg_logical_slot_get_changes ( 'regression_slot', null, null);
 위치 | xid | 데이터
----------+-----+------
(0 줄)

postgres =# 시작;
메이저 토토 사이트 =# 데이터에 삽입 (데이터) 값 ( '1');
메이저 토토 사이트 =# 데이터에 삽입 (데이터) 값 ( '2');
메이저 토토 사이트 =# 커밋;

postgres =# select * from pg_logical_slot_get_changes ( 'regression_slot', null, null);
 위치 | xid |                     데이터
-----------+-----+------------------------------------------------------
 0/16E0478 | 689 | 689 시작
 0/16E0478 | 689 | 테이블 public.data : 삽입 : id [정수] : 1 데이터 [텍스트] : '1'
 0/16e0580 | 689 | table public.data : 삽입 : id [정수] : 2 데이터 [텍스트] : '2'
 0/16E0650 | 689 | 커밋 689
(4 줄)

postgres =# 데이터에 삽입 (데이터) 값 ( '3');

메이저 토토 사이트 =# - 변경 스트림에서도 앞서 나갈 수 있습니다.
postgres =# select * from pg_logical_slot_peek_changes ( 'regression_slot', null, null);
 위치 | xid |                     데이터
-----------+-----+------------------------------------------------------
 0/16e09c0 | 690 | 690을 시작하십시오
 0/16e09c0 | 690 | table public.data : 삽입 : ID [정수] : 3 데이터 [텍스트] : '3'
 0/16E0B90 | 690 | 커밋 690
(3 줄)

postgres =# - pg_logical_slot_peek_changes ()에 대한 다음 호출은 동일한 변경 사항을 다시 반환합니다.
postgres =# select * from pg_logical_slot_peek_changes ( 'regression_slot', null, null);
 위치 | xid |                     데이터
-----------+-----+------------------------------------------------------
 0/16e09c0 | 690 | 690을 시작하십시오
 0/16e09c0 | 690 | table public.data : 삽입 : ID [정수] : 3 데이터 [텍스트] : '3'
 0/16E0B90 | 690 | 커밋 690
(3 줄)

메이저 토토 사이트 = #- 옵션을 출력 플러그인으로 전달하여 서식에 영향을 줄 수 있습니다.
postgres =# select * from pg_logical_slot_peek_changes ( 'regression_slot', null, null, 'clude-timestamp', 'on');
 위치 | xid |                     데이터
-----------+-----+------------------------------------------------------
 0/16e09c0 | 690 | 690을 시작하십시오
 0/16e09c0 | 690 | table public.data : 삽입 : ID [정수] : 3 데이터 [텍스트] : '3'
 0/16E0B90 | 690 | Commit 690 (2014-02-27 16 : 41 : 51.863092+01)
(3 줄)

메이저 토토 사이트 =# - 더 이상 소비를 멈출 필요가없는 슬롯을 파괴하는 것을 잊지 마십시오.
메이저 토토 사이트 =# - 서버 리소스 :
메이저 토토 사이트 =# 선택 PG_DROP_REPLICATION_SLOT ( 'regression_slot');
 PG_DROP_REPLICATION_SLOT
-------------------------

(1 행)

다음 예제는 프로그램을 사용하여 스트리밍 복제 프로토콜을 통해 논리적 디코딩이 어떻게 제어되는지 보여줍니다postgresql : 문서메이저 토토 사이트QL 분포에 포함됩니다. 이를 위해서는 클라이언트 인증이 복제 연결을 허용하도록 설정되어 있어야합니다 (참조섹션 26.2.5.1) 그리고 그max_wal_senders추가 연결을 허용하기에 충분히 높게 설정되어 있습니다.

$ pg_recvlogical -d postgres -슬롯 테스트 -크리징 슬롯
$ PG_RECVLOGICAL -D POSTRGES -슬롯 테스트 -시작 -F-컨트롤+Z$ psql -d 메이저 토토 사이트 -c "데이터에 삽입 (데이터) 값 ( '4');"
$ fg
693을 시작하십시오
table public.data : 삽입 : id [정수] : 4 데이터 [텍스트] : '4'
커밋 693컨트롤+C$ pg_recvlogical -d 메이저 토토 사이트 -슬롯 테스트 -drop -slot