メインコンテンツまでスキップ

Oracle Source Connector

Oracle source connector の作成

ユースケース: Type は source、Database は Oracle です。

前提条件: CDC service のステータスが healthy であること。

Oracle Source connector は Oracle LogMiner を使用して redo ログを読み取り、データ変更(CDC)をキャプチャします。コネクターは 3 つの snapshot モードをサポートします:

  • initial: 既存のデータをすべて snapshot し、その後変更のキャプチャを継続します。
  • initial_only: 既存のデータのみ snapshot し、変更はキャプチャしません。
  • no_data: snapshot は行わず、コネクター起動時点からの変更のみキャプチャします。

Oracle Database の設定(コネクター作成前に必須)

1. CDC 用 Oracle ユーザーの作成:

CREATE USER cdc_user IDENTIFIED BY <PASSWORD>;

2. Oracle source connector に必要な権限:

GRANT CREATE SESSION TO cdc_user;
GRANT SELECT ON V$DATABASE TO cdc_user;
GRANT FLASHBACK ANY TABLE TO cdc_user;
GRANT SELECT ANY TABLE TO cdc_user;
GRANT SELECT_CATALOG_ROLE TO cdc_user;
GRANT EXECUTE_CATALOG_ROLE TO cdc_user;
GRANT SELECT ANY TRANSACTION TO cdc_user;
GRANT LOGMINING TO cdc_user;

または特定のスキーマに権限を付与する場合:

GRANT SELECT ON <SCHEMA_NAME>.<TABLE_NAME> TO cdc_user;

3. Archive Log Mode の有効化: Archive Log がすでに有効かどうかを確認します:

SELECT LOG_MODE FROM V$DATABASE;

結果は ARCHIVELOG である必要があります。結果が NOARCHIVELOG の場合は、Archive Log Mode を有効にします:

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

確認:

SELECT LOG_MODE FROM V$DATABASE;

4. Supplemental Logging の有効化:

Oracle CDC は変更情報を完全にキャプチャするために Supplemental Logging が必要です。

データベースレベルで Supplemental Logging を有効にします:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

CDC が必要な各テーブルで Supplemental Logging を有効にします:

ALTER TABLE <SCHEMA_NAME>.<TABLE_NAME> ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

Supplemental Logging を確認します:

SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK,
SUPPLEMENTAL_LOG_DATA_UI, SUPPLEMENTAL_LOG_DATA_FK,
SUPPLEMENTAL_LOG_DATA_ALL
FROM V$DATABASE;

5. LogMiner 権限の確認:

ユーザーが LogMiner へのアクセス権を持っているか確認します:

SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'CDC_USER';

LogMiner のテストクエリ:

SELECT * FROM V$LOGMNR_CONTENTS WHERE ROWNUM <= 10;

コネクターを作成するには、以下の手順を実行してください: 手順 1: メニューバーから Data Platform > Workspace Management > Workspace name を選択します。

手順 2: My services セクションで CDC service を選択します。

手順 3: CDC service 詳細画面 > Connectors タブを選択 > Create a connector をクリックします。

手順 4: Connector Information 画面に以下の情報を入力します:

Alt text

  • Name(必須): コネクター名

注意: コネクター名には a-z、A-Z、0-9、ハイフン「-」を使用できます。特殊文字とスペースは使用できません。

  • Type(必須): source を選択

  • Database(必須): Oracle を選択

手順 5: Next をクリックして Properties 画面に進みます。

Properties 情報を入力します:

Manual configuration を選択した場合

Alt text

以下の項目を入力します:

  • Host name(必須): Oracle Database のホスト名または IP アドレス

  • Port(必須): Oracle サーバーポート、デフォルト: '1521'

  • Container database name: コンテナデータベース名(CDB)- Oracle 12c 以降の Multitenant アーキテクチャに適用

  • Pluggable database name(必須): プラガブルデータベース名(PDB)- データが格納されている実際のデータベース

  • Username(必須): LogMiner 権限を持つユーザー名(例: cdc_user)

  • Password(必須): ユーザーパスワード

  • Archive log(必須): Archive Log モードを選択(ARCHIVELOG であること)

  • Topic prefix(必須): Kafka トピックのプレフィックス。トピックのフォーマット:

<topic_prefix>.<schema>.<table>

注意: すべての情報を入力した後、必ず Test connection をクリックして接続を確認してください。接続テストが成功した場合のみ次のステップに進めます。

手順 6: Next をクリックして Additional properties 画面に進みます。

Additional properties 情報を入力します:

  • Mode(必須): snapshot モードを選択

    • initial: コネクターはテーブル内の既存データをすべて snapshot し、その後 LogMiner を通じてデータ変更のキャプチャを継続します。

    • initial_only: コネクターはテーブル内の既存データのみ snapshot し、その後停止します(変更のキャプチャは行いません)。

    • no_data: コネクターは既存データの snapshot を行わず、起動時点からの変更のみキャプチャします。

  • Schema: データベースのスキーマを選択(複数選択可)

  • Table: CDC 対象のテーブルを選択(複数選択可)

  • Column: CDC 対象の列を選択(デフォルトはすべて: .*)

  • ボタンを使用してテーブルを CDC リストに追加します。削除アイコンを使用してテーブルをリストから削除します。手順 7: Next をクリックして Review 画面に進みます。

Alt text

Review 画面には、前の手順で入力したすべての設定が表示されます。以下の情報を確認してください:

  • Basic Information: Name、Type、Database

  • Database Information: Host name、Port、Container database name、Pluggable database name、Username、Password

  • Archive log: Archive log モード

  • Kafka topic: Topic prefix

  • Snapshot: Mode

  • Include: Schema、Table、Column

変更が必要な場合は Back ボタンをクリックして前のステップに戻ってください。