Datastream은 단일 컨테이너 데이터베이스(CDB)에 하나 이상의 플러그인 가능한 데이터베이스(PDB)가 포함된 Oracle 멀티 테넌트 아키텍처를 지원합니다. 각 PDB(pluggable database)는 고유한 ID와 이름이 있는 독립 실행형 데이터베이스이며 독립적으로 관리될 수 있습니다.
다음 CDC 메서드와 함께 사용할 수 있도록 플러그인 가능 Oracle 데이터베이스를 구성할 수 있습니다.바이너리 로그 리더 및 LogMiner API에 관한 자세한 내용은 Oracle 데이터베이스 재실행 로그 파일 작업을 참고하세요.
이러한 각 방법에 대해 소스 Oracle 데이터베이스를 구성하는 방법에 관한 자세한 안내는 다음 섹션을 참고하세요.
바이너리 로그 리더를 위해 플러그인 가능 Oracle 데이터베이스 구성
바이너리 로그 리더 CDC 메서드와 함께 사용할 수 있도록 플러그인 가능 Oracle 데이터베이스를 구성하려면 다음 단계를 따르세요.
다음 방법 중 하나를 선택하여 로그 파일에 액세스합니다.
- 자동 스토리지 관리 (ASM): 이 옵션을 선택하면 전용 ASM 연결을 만들고 연결 프로필을 만들 때 세부정보를 제공해야 합니다.
- 데이터베이스 디렉터리: 이 옵션을 선택하면 재실행 로그 파일과 보관처리된 로그 파일을 가리키는 데이터베이스 디렉터리 객체를 만들고 데이터베이스 사용자에게 디렉터리에 대한
READ
액세스 권한을 부여해야 합니다.
CREATE DIRECTORY DIRECTORY_NAME_1 as 'ONLINE_REDO_LOGS_PATH'; CREATE DIRECTORY DIRECTORY_NAME_2 as 'ARCHIVED_REDO_LOGS_PATH'; GRANT READ ON DIRECTORY DIRECTORY_NAME_1 to USER_NAME; GRANT READ ON DIRECTORY DIRECTORY_NAME_2 to USER_NAME;
다음을 바꿉니다.
- DIRECTORY_NAME_1: 온라인 재실행 로그 파일의 디렉터리 이름입니다.
- DIRECTORY_NAME_2: 보관처리된 재실행 로그 파일의 디렉터리 이름입니다.
- ONLINE_REDO_LOGS_PATH: 온라인 재기록 로그 파일이 저장될 디렉터리의 경로입니다.
- ARCHIVED_REDO_LOGS_PATH: 보관처리된 로그 파일을 저장할 디렉터리의 경로입니다.
- USER_NAME:
READ
액세스 권한을 부여하려는 데이터베이스 사용자의 이름입니다.
바이너리 로그 리더 메서드를 선택하고 데이터베이스 디렉터리를 사용하는 경우 스트림을 만들 때 재실행 로그 및 보관처리된 로그 디렉터리 이름을 제공해야 합니다.
데이터베이스가
ARCHIVELOG
모드로 실행되는지 확인합니다.이렇게 하려면 Oracle 데이터베이스에 로그인하고 SQL 프롬프트에서 다음 명령어를 실행합니다.
SELECT LOG_MODE FROM V$DATABASE;
- 결과가
ARCHIVELOG
이면 다음 단계로 이동합니다. - 결과가
NOARCHIVELOG
이면 데이터베이스에 대해ARCHIVELOG
모드를 사용 설정해야 합니다. SYSDBA
로 로그인된 상태로 다음 명령어를 실행합니다.SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
보관처리된 로그 파일은 디스크 공간을 사용하므로 데이터베이스에 DB_RECOVERY_FILE_DEST_SIZE 매개변수를 구성해야 할 수 있습니다. 이 매개변수를 사용하면 대상 데이터베이스 복구 파일에 사용할 총 공간에 대해 엄격한 제한(바이트)을 지정할 수 있습니다. 이 매개변수를 설정하면 디스크 공간 소진으로부터의 데이터베이스 보호와 로그 위치 손실로 인한 스트림 실패 간의 균형을 맞출 수 있습니다.
- 결과가
다음 Oracle 복구 관리자(RMAN) 명령어를 실행하여 데이터베이스에 대해 데이터 보관 정책을 정의합니다.
TARGET / CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
백업 및 보관처리 로그는 최소 4일 동안 보관해야 하며, 7일이 권장됩니다.
Oracle 로그 파일 순환 정책을 구성하기 위해 사용 중인 데이터베이스 도구의 SQL 프롬프트로 돌아갑니다. 최대 로그 파일 크기는 512MB 이하로 설정하는 것이 좋습니다.
추가 로그 데이터를 사용 설정합니다. 이렇게 하려면 먼저 다음 명령어를 실행하여 최소한의 데이터베이스 수준 추가 로깅을 사용 설정합니다.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
그런 후 특정 테이블 또는 전체 데이터베이스에 대해 로깅을 설정할지 여부를 선택합니다.
특정 테이블에 대해서만 변경사항을 로깅하려면 복제하려는 각 테이블에 대해 다음 명령어를 실행합니다.
ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
다음을 바꿉니다.
- SCHEMA: 테이블이 포함된 스키마의 이름입니다.
- TABLE: 변경사항을 로깅하려는 테이블의 이름입니다.
데이터베이스의 대부분 또는 모든 테이블을 복제하려면 전체 데이터베이스에 대해 로깅을 설정합니다. 다음 명령어를 실행하여 전체 데이터베이스에 대해 추가 로그 데이터를 사용 설정합니다.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
일반 사용자를 만듭니다.
CDB$ROOT
컨테이너와 PDB(pluggable database)에서는 일반 사용자의 ID가 같습니다. 일반 사용자는CDB$ROOT
컨테이너와 권한이 있는 플러그인 가능한 데이터베이스에 연결하고 내부에서 작업을 수행할 수 있습니다. 일반 사용자 이름은C##
또는c##
으로 시작해야 합니다.데이터베이스에 연결하는 데 사용할 사용자 계정에 필요한 적절한 권한을 부여합니다. 이렇게 하려면 다음 명령어를 실행하세요.
GRANT CONNECT TO USER_NAME; GRANT CREATE SESSION TO USER_NAME; GRANT SELECT ANY TRANSACTION TO USER_NAME; GRANT SELECT ANY TABLE TO USER_NAME; GRANT SELECT ANY DICTIONARY TO USER_NAME; GRANT SELECT ON DBA_EXTENTS TO USER_NAME; GRANT EXECUTE_CATALOG_ROLE TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;
USER_NAME를 데이터베이스에 연결하는 데 사용할 사용자 계정의 이름으로 바꿉니다.
LogMiner용 플러그인 가능 Oracle 데이터베이스 구성
자체 호스팅 Oracle 플러그인 가능 데이터베이스를 LogMiner API와 함께 사용할 수 있도록 구성하려면 다음 단계를 따르세요.
데이터베이스가
ARCHIVELOG
모드로 실행되는지 확인합니다. 이렇게 하려면CDB$ROOT
컨테이너에서 다음 명령어를 실행합니다.SELECT LOG_MODE FROM V$DATABASE;
- 결과가
ARCHIVELOG
이면 2단계로 이동합니다. - 결과가
NOARCHIVELOG
이면 데이터베이스에 대해ARCHIVELOG
모드를 사용 설정해야 합니다. SYSDBA
로 로그인된 상태로 다음 명령어를 실행합니다.SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
보관처리된 로그 파일은 디스크 공간을 사용하므로 데이터베이스에 DB_RECOVERY_FILE_DEST_SIZE 매개변수를 구성해야 할 수 있습니다. 이 매개변수를 사용하면 대상 데이터베이스 복구 파일에 사용할 총 공간에 대해 엄격한 제한(바이트)을 지정할 수 있습니다. 이 매개변수를 설정하면 디스크 공간 소진으로부터의 데이터베이스 보호와 로그 위치 손실로 인한 스트림 실패 간의 균형을 맞출 수 있습니다.
- 결과가
CDB$ROOT
컨테이너에서 다음 Oracle Recovery Manager(RMAN) 명령어를 실행하여 데이터베이스에 대한 데이터 보관 정책을 정의합니다.CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
이 명령어는 컨테이너 데이터베이스에 있는 플러그인 가능한 모든 데이터베이스의 데이터 보관 정책을 정의합니다.
백업 및 보관처리 로그는 최소 4일 동안 보관해야 하며, 7일이 권장됩니다.
Oracle 로그 파일 순환 정책을 구성하기 위해 사용 중인 데이터베이스 도구의 SQL 프롬프트로 돌아갑니다. 최대 로그 파일 크기는 512MB 이하로 설정하는 것이 좋습니다.
추가 로그 데이터를 사용 설정합니다. 이렇게 하려면 먼저 다음 명령어를 실행하여 데이터베이스에
CDB$ROOT
컨테이너 수준에서 추가 로깅을 사용 설정합니다.ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
그런 후 특정 테이블 또는 전체 플러그인 가능 데이터베이스에 대해 로깅을 설정할지 여부를 선택합니다.
특정 테이블에 대한 변경사항만 로깅하려면 PDB(pluggable database) 컨테이너에 연결하고 복제하려는 테이블마다 다음 명령어를 실행합니다.
ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
다음을 바꿉니다.
- SCHEMA: 테이블이 포함된 스키마의 이름입니다.
- TABLE: 변경사항을 로깅하려는 테이블의 이름입니다.
데이터베이스의 여러 또는 모든 테이블을 복제하려면 전체 데이터베이스에 대해 로깅을 설정합니다.
다음 명령어를 실행하여 전체 데이터베이스에 대해 추가 로그 데이터를 사용 설정합니다.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
일반 사용자를 만듭니다.
CDB$ROOT
컨테이너와 PDB(pluggable database)에서는 일반 사용자의 ID가 같습니다. 일반 사용자는CDB$ROOT
컨테이너와 권한이 있는 플러그인 가능한 데이터베이스에 연결하고 내부에서 작업을 수행할 수 있습니다. 일반 사용자 이름은C##
또는c##
으로 시작해야 합니다.데이터베이스 연결에 사용할 일반 사용자에게 적절한 권한을 부여합니다.
CDB$ROOT
컨테이너와 PDB(pluggable database) 수준에서는 서로 다른 권한이 필요합니다.CDB$ROOT
컨테이너에 연결하고 다음 명령어를 실행합니다.
GRANT CREATE SESSION TO USER_NAME; GRANT SET CONTAINER TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME; GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME; GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME; GRANT LOGMINING TO USER_NAME; GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
- PDB(pluggable database)에 연결하고 다음 명령어를 실행합니다.
GRANT CREATE SESSION TO USER_NAME; GRANT SET CONTAINER TO USER_NAME; GRANT SELECT ANY TABLE TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME; GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;
일반 사용자에게 데이터베이스의
DBA_EXTENTS
뷰에 대한SELECT
액세스 권한을 부여합니다. 이 권한을 통해 Oracle 소스의ROWID
기반 백필을 사용할 수 있습니다.GRANT SELECT ON DBA_EXTENTS TO USER_NAME;
다음 단계
- Datastream의 Oracle 소스 작동 방법 자세히 알아보기