REGISTER EXTRACT
이 명령은 Oracle AI Database 및 PostgreSQL에 적용됩니다.
Oracle AI Database
이 명령은 통합 캡처 모드를 사용하도록 기본 Extract 그룹을 등록하고 다중 테넌트 컨테이너 데이터베이스에서 통합된 Extract에 대한 옵션을 지정합니다.
Extract 그룹을 데이터베이스에서 등록 해제하려면 UNREGISTER EXTRACT 명령을 사용합니다.
구문:
REGISTER EXTRACT group-name
( , DATABASE
( [ CONTAINER container-list |
ADD CONTAINER container-list |
DROP CONTAINER container-list ]
[ SCN scn ]
[ SHARE ( AUTOMATIC | group-name | NONE ) ]
[ [NO]OPTIMIZED ]
) )
Container-list는 (pdbeast, pdbwest)과 같은 콤마로 구분된 PDB 이름 목록, (pdb* or pdb?)과 같은 와일드 카드 문자 응용 PDB 이름 또는 두 개의 조합인(cdbnorth, pdb*) 등입니다. 지원되는 대체 문자는 ? 및 *입니다.
OPTIMIZED 옵션은 Extract 빠른 시작을 향상시킵니다. 기본값은 NOOPTIMIZED입니다. OPTIMIZED 옵션은 업스트림 비다중 테넌트 구성에만 영향을 끼칩니다.
DATABASE [
CONTAINER (container[, ...]) |
ADD CONTAINER (container[, ...]) |
DROP CONTAINER (container[, ...])
]
Oracle의 경우 적합합니다.
옵션 없이 DATABASE는 Extract 그룹에 대한 비CDB 데이터베이스에서 통합 캡처를 사용으로 설정합니다. 이 모드에서 Extract는 데이터베이스 로그마이닝 서버와 통합하여 LCR(논리적 변경 레코드) 형식으로 변경 데이터를 수신합니다. Extract는 리두 로그를 읽지 않습니다. Extract는 캡처 처리, 변환 및 기타 요구사항을 수행합니다. DML 필터링은 로그마이닝 서버가 수행합니다.
DATABASE와 함께 REGISTER EXTRACT를 사용하기 전에 dbms_goldengate_auth.grant_admin_privilege 프로시저를 사용하여 부여된 권한으로 모든 Extract에 대해 DBLOGIN USERIDALIAS 명령을 사용하십시오. 다운스트림 구성을 사용하는 경우 MININGDBLOGIN 명령도 실행해야 합니다. 등록하려는 소스 데이터베이스가 CDB 데이터베이스인 경우 Extract가 데이터를 인출하면 grant_admin_privilege를 사용하여 CONTAINER=>'ALL를 호출해야 합니다.
REGISTER EXTRACT를 사용한 후 INTEGRATED TRANLOG 옵션과 함께 ADD EXTRACT을 사용하여 동일한 이름의 Extract 그룹을 생성합니다.
CONTAINER (container[, ...])
다중 테넌트 CDB(컨테이너 데이터베이스)의 플러그인할 수 있는 하나 이상의 플러그인할 수 있는 데이터베이스(컨테이너) 목록에 등록을 적용합니다. CONTAINER (pdbeast, pdbwest)와 같이 괄호 안의 콤마로 구분된 목록으로 플러그인할 수 있는 데이터베이스를 하나 이상 지정합니다. 플러그인할 수 있는 데이터베이스를 나열하는 경우 데이터베이스에 존재해야 합니다. 와일드카드 문자 * 및 ?를 사용하여 플러그인할 수 없는 데이터베이스를 지정할 수도 있습니다. CONTAINER (pdb*)를 예로 들 수 없습니다.
ADD CONTAINER (container[, ...])
기존 Extract 캡처 구성에 지정된 플러그인할 수 있는 데이터베이스를 추가합니다. 괄호 안의 콤마로 구분된 목록으로 또는 와이드 카드 * 및 ?를 사용하여 플러그인할 수 없는 데이터베이스를 하나 이상 지정합니다. 예: ADD CONTAINER (pdbeast, pdbwest). 이 옵션과 함께 REGISTER EXTRACT를 실행하려면 Extract 그룹을 정지합니다.
Oracle의 경우 기존 Extract의 특정 SCN에서 컨테이너를 추가하는 것은 지원되지 않습니다.
DROP CONTAINER (container[, ...])
기존 Extract 캡처 구성에서 지정된 플러그인할 수 있는 데이터베이스를 삭제합니다. 괄호 안의 콤마로 구분된 목록으로 또는 와이드 카드 * 및 ?를 사용하여 플러그인할 수 없는 데이터베이스를 하나 이상 지정합니다. DROP CONTAINER (pdbeast, pdbwest)를 예로 들 수 없습니다.
drop container 옵션 실행 후 Extract 등록은 추출이 시작될 때까지 완전히 수행되지 않으며, Extract 체크포인트 SCN보다 큰 삭제된 플러그인할 수 있는 데이터베이스에서 커밋된 트랜잭션을 읽습니다. 그런 다음 Extract는 컨테이너를 완전히 삭제한 후 메시지와 함께 종료를 수행합니다.
이 옵션과 함께 REGISTER EXTRACT를 실행하려면 Extract 그룹을 정지합니다.
SCN system_change_number
과거의 특정 SCN(시스템 변경 번호)에서 캡처를 시작하도록 Extract를 등록합니다. 이 옵션이 지정되지 않은 경우 REGISTER EXTRACT가 실행된 시점부터 캡처가 시작됩니다. 지정된 SCN은 로그 파일에 있는 딕셔너리 작성 작업의 시작 SCN과 일치해야 합니다. 다음 query를 실행하여 CDB 레벨에서 딕셔너리 덤프에서 적합한 모든 SCN 값을 찾을 수 있습니다.
SELECT first_change#
FROM v$archived_log
WHERE dictionary_begin = 'YES' AND
standby_dest = 'NO' AND
name IS NOT NULL AND
status = 'A';
그러나 PDB별 추출을 등록할 때는 이 질의가 작동하지 않습니다. 특정 PDB에 대해 사용 가능한 딕셔너리 덤프의 시작 SCN을 식별하려면 다음 단계를 수행하십시오.
-
PDB에 연결합니다.
-
show con_id명령을 실행하여 PDB 식별자를 가져옵니다. -
다음 query를 실행하여 사용 가능한 모든 딕셔너리 덤프를 내림차순으로 나열합니다.
SELECT DATE_OF_BUILD, START_SCN FROM dba_logmnr_dictionary_buildlog WHERE CONTAINER_ID = PDB identifier ORDER BY DATE_OF_BUILD DESC;
단독으로 사용할 경우 SCN 값은 로그 파일에 있는 딕셔너리 작성 작업의 시작 SCN입니다.
SHARE AUTOMATIC 또는 SHARE extract_name와 함께 사용할 경우 지정된 SCN은 캡처 세션의 start_scn이며 다음 제한 사항이 적용됩니다.
-
현재 SCN보다 작거나 같아야 합니다.
-
기존 캡처의 최소값(첫번째 SCN)보다 커야 합니다.
{SHARE [ AUTOMATIC | extract | NONE]}
Oracle의 경우 적합합니다.
복제본을 생성하는 지정된 SCN을 사용하여 기존 LogMiner 데이터 딕셔너리 작성으로 돌아가도록 Extract를 등록합니다. 이에 따라 기존 딕셔너리 작성을 활용하여 Extract를 보다 빠르게 생성할 수 있습니다.
SHARE는 CDB에서 사용할 수 없습니다.
다음 명령이 지원됩니다.
REGISTER EXTRACT extract database SCN #### SHARE AUTOMATIC
REGISTER EXTRACT extract database SCN #### SHARE extract
REGISTER EXTRACT extract database SHARE NONE
REGISTER EXTRACT extract database SCN #### SHARE NONE
또는
REGISTER EXTRACT extract database SHARE NONE
REGISTER EXTRACT extract database SCN #### SHARE NONE
반대로 다음 명령은 다운스트림 구성에서 지원되지 않습니다.
REGISTER EXTRACT extract DATABASE SHARE AUTOMATIC
REGISTER EXTRACT extract DATABASE SHARE extract
AUTOMATIC
기존의 가장 가까운 캡처에서 복제합니다. 적절한 복제본 후보자를 찾을 수 없을 경우 작성이 새로 만들어집니다.
extract
지정된 Extract에 대해 연관된 캡처 세션에서 복제합니다. 불가능할 경우 오류가 발생하고 등록이 완료되지 않습니다.
NONE
복제하지 않거나 작성을 새로 만들지 않습니다(기본값).
다운스트림 구성에서 Extract 등록 시 SHARE 절은 반드시 SCN 절과 함께 사용해야 합니다.
PostgreSQL
이 명령은 연결된 소스 데이터베이스에 복제 슬롯을 만들고 복제 슬롯이 이동되거나 제거될 때까지 PostgreSQL 데이터베이스가 트랜잭션 로그를 비우지 않도록 합니다. ADD EXTRACT 명령을 실행하기 전에 REGISTER EXTRACT 명령을 실행해야 합니다.
Extract를 등록하기 전에 DBLOGIN USERIDALIAS을 사용하여 PostgreSQL 데이터베이스 인스턴스에 접속해야 합니다.
Oracle GoldenGate 관리 서비스 웹 인터페이스에서 추출을 등록할 수도 있습니다. 자세한 내용은 Oracle GoldenGate Microservices 설명서의 Extract for PostgreSQL 등록을 참조하십시오.
복제 시작 중 매개변수를 제공하기 위해 TRANLOGOPTIONS STREAMINGOPTIONS 매개변수를 사용하여 PostgreSQL에 대한 스트리밍 옵션을 설정할 수도 있습니다. 자세한 내용은 TRANLOGOPTIONS을 참조하십시오.
주: Oracle GoldenGate 21c(21.3) 릴리스부터는 database_name를 입력할 필요가 없습니다.
구문:
REGISTER EXTRACT group_name
또는
REGISTER EXTRACT group_name PGPLUGINTYPE pgoutput;
주: pgoutput 플러그인에 명시적으로 등록하려면 명령에 pgoutput 플러그인 유형을 지정해야 합니다. pgoutput 플러그인을 선택하지 않으면 기본 플러그인 유형인 test_decoding가 설정됩니다.
또는
REGISTER EXTRACT group_name MIGRATE replication_slot_name
또는
REGISTER EXTRACT group_name with DATABASE database_name
또는
group_name
등록될 Extract 그룹 이름입니다. 와일드 카드 문자를 사용하지 마십시오.
MIGRATE replication_slot_name
PostgreSQL의 경우 적합합니다.
Extract 프로세스에 대해 설치 디렉토리가 다른 Oracle GoldenGate 업그레이드의 경우 MIGRATE 옵션을 사용하는 REGISTER EXTRACT가 필요합니다.
replication_slot_name은 데이터베이스에 있는 기존 복제 슬롯의 이름입니다. 이 명령은 원래 슬롯 replication_slot_name에 있는 LSN 정보를 복사하여 새 복제 슬롯을 생성합니다. 복사된 복제 슬롯은 원본과 동일한 LSN에서 시작됩니다.
주: 원래 복제 슬롯은 새 슬롯을 생성하려는 데이터베이스와 동일한 데이터베이스에 있어야 합니다.
PGPLUGINTYPE test_decoding | pgoutput
PostgreSQL의 경우 적합합니다.
이 옵션은 PostgreSQL에 대한 논리적 디코딩 플러그인을 선택할 수 있도록 추가되었습니다. test_decoding 또는 pgoutput을 선택할 수 있습니다. 기본적으로 CDC Extract는 test_decoding 플러그인 유형을 사용하여 등록합니다. 따라서 pgplugintype를 pgoutput로 지정하지 않으면 test_decoding가 자동으로 사용됩니다.
예제
REGISTER EXTRACT exte LOGRETENTION
REGISTER EXTRACT exte DATABASE
REGISTER EXTRACT exte DATABASE CONTAINER (pdbeast, pdbwest, pdbsouth)
REGISTER EXTRACT exte DATABASE ADD CONTAINER (pdbnorth)
REGISTER EXTRACT exte DATABASE DROP CONTAINER (pdbnorth)
REGISTER EXTRACT exte DATABASE SCN 136589
딕셔너리 작성의 시작 SCN은 136589입니다.
REGISTER EXTRACT exte DATABASE SCN 67000 SHARE extw
적합한 시작 SCN(이 경우 67000)입니다. 현재 SCN일 필요는 없습니다.
REGISTER EXTRACT exte DATABASE CONTAINER (pdbeast, pdbeast, pdbsouth) SCN 136589
플러그인 유형이 PGOUTOPUT로 지정된 PostgreSQL의 경우:
REGISTER EXTRACT exte PGPLUGINTYPE pgoutput WITH DATABASE hr