소스 Oracle 데이터베이스

이 섹션에는 다음에 대한 정보가 포함되어 있습니다.

  • 소스 Oracle 데이터베이스에서 가져오는 데이터가 Datastream에서 처리되는 방법
  • Datastream에서 지원되는 Oracle 데이터베이스 버전
  • 데이터를 대상으로 스트리밍할 수 있도록 소스 Oracle 데이터베이스를 설정하는 방법의 개요
  • Oracle 데이터베이스를 소스로 사용할 경우의 알려진 제한사항

동작

소스 Oracle 데이터베이스는 데이터 변경사항을 노출하기 위해 Oracle Logminer 기능을 사용합니다.

  • 특정 데이터베이스의 모든 스키마 또는 특정 스키마와 스키마의 모든 테이블 또는 특정 테이블을 선택할 수 있습니다.
  • 모든 이전 데이터가 복제됩니다.
  • 지정된 데이터베이스 및 테이블의 삽입, 업데이트, 삭제와 같은 모든 데이터 조작 언어(DML) 변경사항이 복제됩니다.
  • Datastream은 커밋된 변경사항과 경우에 따라 커밋되지 않은 변경사항을 대상에 복제합니다. Datastream은 커밋되지 않은 변경사항을 읽습니다. 롤백하는 경우 Datastream 출력 레코드에 반대 작업도 포함됩니다. 예를 들어 롤백된 INSERT 작업이 있으면 출력 레코드에 해당 DELETE 작업도 포함됩니다. 이 경우 이벤트는 ROWID만 포함된 DELETE 이벤트로 표시됩니다.

버전

Datastream은 다음 버전의 Oracle 데이터베이스를 지원합니다.

  • Oracle 11g, 버전 11.2.0.4
  • Oracle 12c, 버전 12.1.0.2
  • Oracle 12c, 버전 12.2.0.1
  • Oracle 18c
  • Oracle 19c
  • Oracle 21c

Datastream은 다음 유형의 Oracle 데이터베이스를 지원합니다.

  • 온프레미스 또는 모든 클라우드 제공업체에서 자체 호스팅
  • Oracle용 Amazon RDS
  • Oracle Cloud
  • Oracle Exadata
  • Oracle RAC

설정

데이터를 대상으로 스트리밍할 수 있도록 소스 Oracle 데이터베이스를 설정하려면 데이터베이스를 구성하여 액세스 권한을 부여하고, 로깅을 설정하고 보관 정책을 정의하는 등의 작업을 수행해야 합니다.

Datastream이 해당 데이터베이스에서 대상으로 데이터를 가져올 수 있도록 구성하는 방법은 소스 Oracle 데이터베이스 구성을 참조하세요.

알려진 제한사항

Oracle 데이터베이스를 소스로 사용할 경우의 알려진 제한사항은 다음과 같습니다.

  • 행 개수가 5억 개를 초과하는 테이블은 다음 조건이 충족되지 않는 한 백필할 수 없습니다.
    1. 테이블에 고유 색인이 포함됩니다.
    2. 이 색인은 또한 기본 색인인 B-tree여야 합니다. 색인은 복합적일 수 있습니다.
    3. 색인은 되돌릴 수 없습니다.
    4. 색인은 함수 기반 열을 포함할 수 없습니다.
    5. 색인의 열 중에 null이 허용되는 열이 없습니다.
    6. 색인에는 음수 날짜를 값으로 포함하는 DATE 유형의 열이 포함되지 않습니다.
    7. 색인의 모든 열이 스트림에 포함됩니다.
  • 스트림이 테이블 10,000개로 제한됩니다.
  • Datastream은 Oracle 멀티 테넌트 아키텍처(CDB/PDB)를 지원하지만 스트림에서 플러그인 가능한 단일 데이터베이스만 복제할 수 있습니다.
  • Oracle Autonomous 데이터베이스는 지원되지 않습니다.
  • 기본 키가 없는 테이블의 경우 Datastream은 행의 ROWID를 사용해서 소비자 측에서 병합 작업을 수행합니다. ROWID는 고유하지 않을 수 있습니다. 예를 들어 Oracle의 내보내기/가져오기 유틸리티를 사용해서 행을 삭제하고 다시 삽입하면 행의 ROWID가 변경될 수 있습니다. 행을 삭제하면 Oracle이 나중에 삽입되는 새 행에 ROWID를 다시 할당할 수 있습니다.
  • 색인 구성 테이블(IOT)은 지원되지 않습니다.
  • 임시 테이블은 지원되지 않습니다.
  • BFILE 유형 열의 경우 파일 경로만 복제됩니다. 파일 콘텐츠는 복제되지 않습니다.
  • ANYDATA, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH, LONG/LONG RAW, SDO_GEOMETRY, UDT, UROWID, XMLTYPE 데이터 유형의 열은 지원되지 않으며 NULL 값으로 바뀝니다.
  • 대용량 바이너리 객체(BLOB), 대용량 문자 객체(CLOB), 대용량 국가별 문자 객체(NCLOB)와 같은 대용량 객체 데이터 유형의 열을 스트리밍하려면 스트림 구성에 streamLargeObjects 플래그를 포함해야 합니다. 플래그를 포함하지 않으면 Datastream이 이러한 열을 스트리밍하지 않으며 대상의 NULL 값으로 바뀝니다. 자세한 내용은 Oracle 소스의 대용량 객체 스트리밍 사용 설정을 참조하세요.
  • Oracle 11g의 경우 데이터 유형이 ANYDATA 또는 UDT인 열이 있는 테이블은 지원되지 않으며 전체 테이블이 복제되지 않습니다.
  • Oracle 라벨 보안(OLS)은 복제되지 않습니다.
  • Datastream은 이벤트가 처리될 때 소스에서 최신 스키마를 주기적으로 가져옵니다. 스키마가 변경되면 이전 스키마가 적용되는 동안 새 스키마의 일부 이벤트가 읽힐 수 있습니다. 여기에서 Datastream은 스키마 변경사항을 감지하고 스키마 가져오기를 트리거하고 실패한 이벤트를 다시 처리합니다.
  • 소스 스키마에 대한 모든 변경사항이 올바르게 검색되지 않아서 데이터 손상이 발생할 수 있습니다. 다음 스키마 변경으로 인해 데이터가 손상되거나 이벤트 다운스트림을 처리하지 못할 수 있습니다.
    • 열 삭제
    • 테이블 중간에 열 추가
    • 열의 데이터 유형 변경
    • 열 재정렬
    • 테이블 삭제(새 데이터를 추가한 후 같은 테이블을 다시 만드는 경우에 해당)
    • 테이블 자르기
  • Datastream은 뷰 복제를 지원하지 않습니다.
  • Datastream은 구체화된 뷰를 지원합니다. 하지만 스트림이 실행되는 동안 생성된 새 뷰는 자동으로 백필되지 않습니다.
  • SAVEPOINT은 지원되지 않으며 롤백 시 데이터 불일치가 발생할 수 있습니다.
  • Datastream은 Oracle 데이터베이스에 대해 다음 문자 집합 인코딩을 지원합니다.
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • JA16SJIS
    • US7ASCII
    • UTF8
    • WE8ISO8859P1
    • WE8ISO8859P9
    • WE8ISO8859P15
    • WE8MSWIN1252
    • ZHT16BIG5
  • DataStream은 0 날짜 값 복제를 지원하지 않습니다. 이러한 날짜는 NULL 값으로 바뀝니다.
  • 대용량 로그 파일을 생성하면 Datastream이 시간 초과되어 스트림이 실패할 수 있습니다. 권장 재실행 로그 파일 크기는 1GB 미만입니다.
  • Datastream은 Oracle Real Application Clusters(RAC) 환경에서 단일 클라이언트 액세스 이름(SCAN) 기능을 사용하여 데이터베이스에 대한 직접 연결을 지원하지 않습니다. 잠재적 솔루션에 대한 자세한 내용은 Oracle 소스 동작 및 제한사항을 참조하세요.