Datastream은 데이터 변경사항을 노출하기 위해 Oracle LogMiner 기능도 지원합니다. 이 메서드는 다음과 같이 동작합니다.
특정 데이터베이스의 모든 스키마 또는 특정 스키마와 스키마의 모든 테이블 또는 특정 테이블을 선택할 수 있습니다.
모든 이전 데이터가 복제됩니다.
지정된 데이터베이스 및 테이블의 삽입, 업데이트, 삭제와 같은 모든 데이터 조작 언어(DML) 변경사항이 복제됩니다.
Datastream은 커밋된 변경사항과 경우에 따라 커밋되지 않은 변경사항을 대상에 복제합니다. Datastream은 커밋되지 않은 변경사항을 읽습니다. 롤백하는 경우 Datastream 출력 레코드에 반대 작업도 포함됩니다. 예를 들어 롤백된 INSERT 작업이 있으면 출력 레코드에 해당 DELETE 작업도 포함됩니다. 이 경우 이벤트는 ROWID만 포함된 DELETE 이벤트로 표시됩니다.
ROWID 기반 백필
Oracle에서 ROWID는 테이블에 있는 행의 고유 식별자를 저장하는 유사 열입니다. Datastream은 백필 작업에 ROWID 값을 사용합니다. 따라서 백필 작업이 완료될 때까지 소스 Oracle 데이터베이스에서 ROWID 값을 변경할 수 있는 작업을 수행하지 않는 것이 좋습니다.
ROWID 값을 변경할 수 있는 작업은 다음과 같습니다.
행의 물리적 이동:
내보내기 및 가져오기 작업: 테이블을 내보낸 후 다시 가져오면 행의 물리적 위치가 변경되어 새 ROWID 값이 생성될 수 있습니다.
ALTER TABLE (...) MOVE 명령어: 테이블을 다른 테이블스페이스로 이동하면 물리적 스토리지가 변경되고 ROWID가 변경될 수 있습니다.
ALTER TABLE (...) SHRINK SPACE 명령어: 이 명령어는 테이블을 압축하므로 행이 잠재적으로 이동하고 ROWID 값이 영향을 받을 수 있습니다.
파티셔닝 작업: 파티션을 분할, 병합 또는 이동하면 행의 물리적 위치와 ROWID 값이 변경될 수 있습니다.
플래시백 작업:
FLASHBACK TABLE 명령어: 테이블을 이전 상태로 복원하려면 행을 삭제하고 다시 삽입해야 하므로 새 ROWID 값이 생성됩니다.
FLASHBACK_TRANSACTION_QUERY: FLASHBACK TABLE와 비슷함. 트랜잭션을 롤백하면 트랜잭션 내에서 행이 삭제되거나 업데이트된 경우 ROWID가 변경될 수 있습니다.
버전
Datastream은 다음 버전의 Oracle 데이터베이스를 지원합니다.
Oracle 11g, 버전 11.2.0.4 (Logminer CDC 메서드에서만 지원됨)
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 Active Data Guard 대기 데이터베이스
설정
데이터를 대상으로 스트리밍할 수 있도록 소스 Oracle 데이터베이스를 설정하려면 데이터베이스를 구성하여 액세스 권한을 부여하고, 로깅을 설정하고 보관 정책을 정의해야 합니다.
Datastream이 해당 데이터베이스에서 대상으로 데이터를 가져올 수 있도록 구성하는 방법은 소스 Oracle 데이터베이스 구성을 참조하세요.
알려진 제한사항
Oracle 데이터베이스를 소스로 사용할 경우의 알려진 제한사항은 다음과 같습니다.
스트림이 테이블 10,000개로 제한됩니다. 스트림에 테이블이 10,000개 넘게 포함되면 오류가 발생할 수 있습니다.
Datastream은 Oracle 멀티 테넌트 아키텍처(CDB/PDB)를 지원하지만 스트림에서 플러그인 가능한 단일 데이터베이스만 복제할 수 있습니다.
Oracle Autonomous 데이터베이스는 지원되지 않습니다.
기본 키가 없는 테이블의 경우 Datastream은 행의 ROWID를 사용해서 소비자 측에서 병합 작업을 수행합니다. ROWID는 고유하지 않을 수 있습니다. 예를 들어 Oracle의 내보내기/가져오기 유틸리티를 사용해서 행을 삭제하고 다시 삽입하면 행의 ROWID가 변경될 수 있습니다. 행을 삭제하면 Oracle이 나중에 삽입되는 새 행에 ROWID를 다시 할당할 수 있습니다.
색인 구성 테이블(IOT)은 지원되지 않습니다.
임시 테이블은 지원되지 않습니다.
ANYDATA, BFILE, 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은 구체화된 뷰를 지원합니다. 하지만 스트림이 실행되는 동안 생성된 새 뷰는 자동으로 백필되지 않습니다.
Oracle LogMiner 메서드를 사용하는 경우 SAVEPOINT 문은 지원되지 않으며 롤백 시 데이터 불일치가 발생할 수 있습니다.
Oracle LogMiner 메서드를 사용하는 경우 Datastream은 이름이 30자(영문 기준)를 초과하는 테이블과 열의 복제를 지원하지 않습니다.
Datastream은 Oracle 데이터베이스에 대해 다음 문자 집합 인코딩을 지원합니다.
AL16UTF16
AL32UTF8
IN8ISCII
IW8ISO8859P8
JA16SJIS
JA16SJISTILDE
KO16MSWIN949
US7ASCII
UTF8
WE8ISO8859P1
WE8ISO8859P9
WE8ISO8859P15
WE8MSWIN1252
ZHT16BIG5
DataStream은 0 날짜 값 복제를 지원하지 않습니다. 이러한 날짜는 NULL 값으로 대체됩니다.
Datastream은 Oracle Real Application Clusters(RAC) 환경에서 단일 클라이언트 액세스 이름(SCAN) 기능을 사용하여 데이터베이스에 대한 직접 연결을 지원하지 않습니다. 가능한 솔루션에 대한 자세한 내용은 Oracle 소스 동작 및 제한사항을 참조하세요.
소스가 Oracle Active Data Guard 대기 데이터베이스이면 Datastream은 암호화된 데이터를 복제할 수 없습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eDatastream extracts data changes from Oracle databases using either the Oracle binary log reader or Oracle LogMiner, each with distinct behaviors regarding committed vs.uncommitted transactions and handling of data types.\u003c/p\u003e\n"],["\u003cp\u003eDatastream supports multiple versions of Oracle database, ranging from 11g to 21c, and various deployment types including self-hosted, Amazon RDS, and Oracle Cloud, however Oracle Autonomous Database is not supported.\u003c/p\u003e\n"],["\u003cp\u003eProper configuration of the source Oracle database is required to allow Datastream to stream data, including setting up logging and defining a retention policy.\u003c/p\u003e\n"],["\u003cp\u003eThere are several known limitations when using an Oracle database as a source, such as restrictions on the number of tables, certain data types not being supported, and limitations on schema changes.\u003c/p\u003e\n"],["\u003cp\u003eThe use of the binary reader has additional limitations such as not supporting Transparent Database Encryption, Hybrid Columnar Compression, and Secure files, as well as not being available for Oracle 11g and earlier versions.\u003c/p\u003e\n"]]],[],null,["# Source Oracle database\n\nThis section contains information about:\n\n- The behavior of how Datastream handles data that's being pulled from a source Oracle database\n- The versions of Oracle database that Datastream supports\n- An overview of how to setup a source Oracle database so that data can be streamed from it to a destination\n- Known limitations for using Oracle database as a source\n\nBehavior\n--------\n\nDatastream supports two methods of extracting changes to the data from\nonline redo log files: the Oracle binary log reader\n([Preview](/products#product-launch-stages)) and the Oracle LogMiner.\n\nWith the binary log reader method\n([Preview](/products#product-launch-stages)), the following behavior\nis observed:\n\n- If there's a read lag when extracting the changes from the online log files,\n Datastream extracts the changes from archived log files.\n\n- Datastream replicates only committed changes into the destination.\n Uncommitted or rolled back transactions aren't replicated.\n\n- The binary reader supports replicating Oracle `VARCHAR2` columns longer than\n 4000 characters.\n\nDatastream also supports the [Oracle LogMiner](https://docs.oracle.com/en/database/oracle/oracle-database/18/sutil/oracle-logminer-utility.html#GUID-3417B738-374C-4EE3-B15C-3A66E01AE2B5) feature for exposing changes to the data. The method has the following behavior:\n\n- All schemas or specific schemas from a given database, as well as all tables from the schemas or specific tables, can be selected.\n- All historical data is replicated.\n- All data manipulation language (DML) changes, such as inserts, updates, and deletes from the specified databases and tables, are replicated.\n- Datastream replicates both committed and, in some cases, uncommitted changes into the destination. Datastream reads uncommitted changes. In case of a rollback, the Datastream output records also include the opposite operation. For example, if there's a rolled-back `INSERT` operation, then the output records will also contain a corresponding `DELETE` operation. In this case, the event will appear as a `DELETE` event with only the `ROWID`.\n\n### `ROWID` based backfill\n\nIn Oracle, `ROWID` is a pseudocolumn that stores unique identifiers for rows in a table. Datastream uses the `ROWID` values for its backfill operations. Because of this, we recommend that you don't perform any actions that could change the `ROWID` values in your source Oracle database until the backfill operation completes.\n\nThe actions that can change the `ROWID` values include:\n\n- Physical movement of rows:\n\n - Export and import operations: when you export a table, and then you import it back, the physical location of rows might change, resulting in new `ROWID` values.\n - `ALTER TABLE (...) MOVE` command: moving a table to a different tablespace can change the physical storage and lead to `ROWID` changes.\n - `ALTER TABLE (...) SHRINK SPACE` command: this command compresses the table, potentially moving rows and affecting their `ROWID` values.\n - Partitioning operations: splitting, merging, or moving partitions can change the physical placement of rows and their `ROWID` values.\n- Flashback operations:\n\n - `FLASHBACK TABLE` command: restoring a table to a previous state involves deleting and re-inserting rows, thus creating new `ROWID` values.\n - `FLASHBACK_TRANSACTION_QUERY`: Similar to `FLASHBACK TABLE`. Rolling back a transaction can cause `ROWID` changes if rows were deleted or updated within the transaction.\n\nVersions\n--------\n\nDatastream supports the following versions of Oracle database:\n\n- Oracle 11g, Version 11.2.0.4 (supported only with the Logminer CDC method)\n- Oracle 12c, Version 12.1.0.2\n- Oracle 12c, Version 12.2.0.1\n- Oracle 18c\n- Oracle 19c\n- Oracle 21c\n\nDatastream supports the following types of Oracle database:\n\n- Self-hosted on-premises or on any cloud provider\n- Amazon RDS for Oracle\n- Oracle Cloud\n- Oracle Exadata\n- Oracle RAC\n- Oracle Active Data Guard standby database\n\nSetup\n-----\n\nTo set up a source Oracle database so that data from it can be streamed into a destination, you must configure the database to grant access, set up logging, and define a retention policy.\n\nSee [Configure a source Oracle database](/datastream/docs/configure-your-source-oracle-database) to learn how to configure this database so that Datastream can pull data from it into a destination.\n\nKnown limitations\n-----------------\n\nKnown limitations for using Oracle database as a source include:\n\n- Streams are limited to 10,000 tables. If a stream includes more than 10,000 tables, then it might run into errors.\n- Datastream supports Oracle multi-tenant architecture (CDB/PDB), however, you can only replicate a single pluggable database in a stream.\n- Oracle Autonomous Database isn't supported.\n- For tables that don't have a primary key, Datastream uses the row's [`ROWID`](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWID-Pseudocolumn.html) to perform a merge operation on the consumer side. Note that the `ROWID` might not be unique. If you delete and reinsert a row with [Oracle's Export/Import utility](https://docs.oracle.com/en/database/other-databases/nosql-database/21.2/admin/using-export-and-import-utilities.html), for example, then the row's `ROWID` might change. If you delete a row, then Oracle can reassign its `ROWID` to a new row inserted later.\n- Index-organized tables (IOTs) aren't supported.\n- Temporary tables aren't supported.\n- Columns of data types `ANYDATA`, `BFILE`, `INTERVAL DAY TO SECOND`, `INTERVAL YEAR TO MONTH`, `LONG/LONG RAW`, `SDO_GEOMETRY`, `UDT`, `UROWID`, `XMLTYPE` aren't supported, and are replaced with `NULL` values.\n- To stream columns of large object data types, such as binary large objects (`BLOB`), character large objects (`CLOB`) and national character large objects (`NCLOB`), you need to include the `streamLargeObjects` flag in your stream configuration. If you don't include the flag, Datastream doesn't stream such columns and they're replaced with `NULL` values in the destination. For more information, see [Enable streaming of large objects for Oracle sources](/datastream/docs/manage-streams#streamlargeobjects).\n- For Oracle 11g, tables that have columns of data types `ANYDATA` or `UDT` aren't supported, and the entire table won't be replicated.\n- Oracle Label Security (OLS) isn't replicated.\n- Datastream periodically fetches the latest schema from the source as events are processed. If a schema changes, then some events from the new schema might be read while the old schema is still applied. In this case, Datastream detects the schema change, triggers a schema fetch, and reprocesses the failed events.\n- Not all changes to the source schema can be detected automatically, in which case data corruption may occur. The following schema changes may cause data corruption or failure to process the events downstream:\n - Dropping columns\n - Adding columns to the middle of a table\n - Changing the data type of a column\n - Reordering columns\n - Dropping tables (relevant if the same table is then recreated with new data added)\n - Truncating tables\n- Datastream doesn't support replicating views.\n- Datastream supports materialized views. However, new views created while the stream is running aren't backfilled automatically.\n- When using the Oracle LogMiner method, [`SAVEPOINT` statements](https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10001.htm) aren't supported and can cause data discrepancy in case of a rollback.\n- When using the Oracle LogMiner method, Datastream doesn't support replicating tables and columns whose names exceed 30 characters.\n- Datastream supports the following character set encodings for Oracle databases:\n - `AL16UTF16`\n - `AL32UTF8`\n - `IN8ISCII`\n - `IW8ISO8859P8`\n - `JA16SJIS`\n - `JA16SJISTILDE`\n - `KO16MSWIN949`\n - `US7ASCII`\n - `UTF8`\n - `WE8ISO8859P1`\n - `WE8ISO8859P9`\n - `WE8ISO8859P15`\n - `WE8MSWIN1252`\n - `ZHT16BIG5`\n- Datastream doesn't support replicating zero date values. Such dates are replaced with `NULL` values.\n- Datastream doesn't support direct connectivity to databases using the Single Client Access Name (SCAN) feature in Oracle Real Application Clusters (RAC) environments. For information about potential solutions, see [Oracle source behavior and limitations](/datastream/docs/faq#oracle-source).\n- If the source is an Oracle Active Data Guard standby database, Datastream doesn't support replicating encrypted data.\n\nAdditional limitations when using the binary reader\n---------------------------------------------------\n\n|\n| **Preview**\n|\n|\n| This feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| Pre-GA features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\n- Binary reader doesn't support the following features:\n\n - Transparent Database Encryption (TDE)\n - Hybrid Columnar Compression\n - Secure files\n - ASM isn't supported for Amazon RDS sources.\n - The binary reader CDC method doesn't support Oracle 11g and earlier versions.\n\nWhat's next\n-----------\n\n- Learn how to [configure an Oracle source](/datastream/docs/configure-your-source-oracle-database) for use with Datastream."]]