Oracle 소스 데이터베이스 에서 데이터를 마이그레이션 할 때 Relational Migrator 데이터베이스 에서 필요한 구성 변경 사항을 자동으로 확인하고 이를 구현 위한 SQL 스크립트 생성합니다. 데이터베이스 관리자(DBA )에게 스크립트 검토 하고 데이터베이스 서버 에서 명령을 실행 . 이 페이지에서는 필요한 구성 단계에 대해 자세히 설명합니다.
지원되는 Oracle 버전에 대한 자세한 내용은 지원되는 데이터베이스 및 버전을 참조하세요.
이 작업에 대하여
Oracle 12c 인스턴스에서 마이그레이션하는 경우 SYSDBA 역할로 명령을 실행해야 합니다.
Oracle 12c는 플러그형 데이터베이스 (PDB)의 개념을 도입했습니다. 일부 명령은 PDB에서 실행 수 있지만
ARCHIVELOG활성화와 같은 명령은 컨테이너/master 데이터베이스 (CDB)에서 실행 해야 합니다. 각 아키텍처에 대한 자세한 내용은 컨테이너 데이터베이스 및 플러그형 데이터베이스 개요를 참조하세요.일부 명령은 데이터베이스 가 단일 테넌트인지 다중 테넌트인지에 따라 다릅니다. 멀티 테넌트 데이터베이스 에서는 권한에 접미사
CONTAINER=ALL가 포함되어야 합니다. 데이터베이스 가 멀티 테넌트인지 확인하려면 다음 SQL 쿼리 실행 .SELECT cdb AS is_multitenant FROM v$database;
단계
스냅샷 작업을 위해 Oracle 인스턴스 구성하려면 다음을 수행합니다.
사용자 권한 설정
다음 코드는 Relational Migrator가 Oracle 인스턴스에 연결할 수 있도록 새 Oracle 서비스 계정을 생성합니다. 또는 기존 Oracle 서비스 계정을 사용하여 적절한 권한으로 Relational Migrator에 연결할 수 있습니다.
팁
멀티 테넌트 컨테이너 데이터베이스에서 데이터를 마이그레이션 하려면 테이블스페이스와 일반 사용자를 생성합니다.
서비스 계정을 만듭니다:
CREATE USER <user> IDENTIFIED BY "<password>"; 서비스 계정이 마이그레이션 작업 의 테이블을 소유하고 있는지 확인합니다.
필요한 권한은 서비스 계정이 마이그레이션 작업 에 사용된 테이블을 소유하고 있는지 여부에 따라 달라집니다. 테이블 소유권을 확인하려면 다음 쿼리 실행 .
SELECT TABLE_NAME, OWNER FROM ALL_TABLES WHERE TABLE_NAME ='<table_name>' ORDER BY OWNER, TABLE_NAME; 서비스 계정에 권한을 부여합니다.
중요
멀티 테넌트 컨테이너 데이터베이스 일반 사용자로 마이그레이션하는 경우 권한을 부여할 때
CONTAINER=ALL를 추가합니다. 예시 들면 다음과 같습니다.GRANT CREATE SESSION TO <user> CONTAINER=ALL; 서비스 계정 이 테이블 소유자인 경우:
GRANT CREATE SESSION TO <user>; GRANT SELECT ON V_$DATABASE TO <user>; 서비스 계정이 테이블 소유자 가 아닌 경우:
GRANT CREATE SESSION TO <user>; GRANT SELECT_CATALOG_ROLE TO <user>; GRANT SELECT ANY TABLE TO <user>; GRANT SELECT ON V_$DATABASE TO <user>; GRANT FLASHBACK ANY TABLE TO <user>;
자세히 알아보기
Relational Migrator 오픈 소스 Debezium connector 사용하여 행 수준 변경 사항을 캡처합니다. 자세한 내용은 Debezium Oracle참조하세요.
아카이브 로깅 활성화에 대한 자세한 내용은 아카이브된 리두 로그 관리를 참조하세요.
추가 문제 해결 및 디버깅 정보는 Debezium Oracle 도움말 블로그 포스트참조하세요.