Oracle

Version 24.2.9064


Oracle


CData Sync アプリケーションからOracle コネクタを使用して、Oracle からデータを取得してサポートされている任意の同期先に移動できます。これを行うには、コネクタを追加し、コネクタへの認証を行い、接続を完了する必要があります。

接続の確立

Sync でOracle のデータを使用するには、はじめにOracle への接続を確立する必要があります。以下の手順で、Oracle をSync アカウントに接続します。

  1. Sync のダッシュボードから接続 ページを開きます。

  2. 接続を追加をクリックしてコネクタを選択ページを開きます。

  3. データソースタブをクリックしてOracle 行に移動します。

  4. 行末にある接続を設定アイコンをクリックします。接続を設定アイコンが見当たらない場合は、接続の説明に従ってコネクタを追加する必要があります。

  5. 設定タブで接続の設定を入力します。

    • Connection Name - 任意の接続名を入力します。

    • Server - Oracle データベースをホストしているサーバーのホスト名またはIP アドレスを入力します。

    • User - Oracle データベースへの認証に使用するユーザー名を入力します。

    • Password - Oracle データベースへの認証に使用するパスワードを入力します。

    • Service Name - Oracle データベースのサービス名を入力します。この名前を取得するには、Oracle SQL*PLUS コマンドラインから次のクエリを送信します:

      global_name (select * from global_name)

  6. 作成およびテストをクリックして接続を作成します。

  7. 高度な設定タブで接続の高度な設定を定義します。(ただし、ほとんどの場合これらの設定は必要ありません。)

Oracle LogMiner とOracle Flashback Query の設定

Oracle は、ソースデータベースからの変更を追跡する2つの方法を提供しています。

  • Oracle LogMiner(ログマイナー)

  • Oracle Flashback Query(フラッシュバッククエリ)

Note:これらのメソッドの両方がテーブルで有効になっている場合、Sync はOracle LogMiner を使用します。

次のセクションでは、これら2つの方法と、それらを有効にする方法について説明します。

Oracle LogMiner vs. Oracle Flashback Query

Oracle LogMiner はREDO ログの変更を追跡し、それによりSync はそのログを読んで特定のテーブルへの変更を判断することができます。Orcale LogMiner とFlahsback の主な違いは、LogMiner ではSync がソーステーブルを操作しないことです。その代わりにSync はログを直接読み込みます。これにより、ソースデータベースに対する要求が低くなりパフォーマンスにプラスの影響を与えます。

Oracle Flashback Query は、CData Sync に効率的な追跡メカニズムを提供する軽量ソリューションです。テーブルでFlashback Query 設定を行うと、Sync はソーステーブルに対してFlashback Query を実行し、前回の実行以降にテーブルにどのような変更が加えられたかを判断することができます。

CData Sync のOracle LogMiner を有効化

  1. データベースでARCHIVELOG モードを有効化します。ARCHIVELOG モードがすでに有効になっているかどうかを確認するには、次のステートメントを送信します。

    SELECT LOG_MODE FROM V$DATABASE
    

    このステートメントの出力でログモードにARCHIVELOG が表示されない場合は、以下のステートメントを送信してARCHIVELOG モードを有効化します。

    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER DATABASE ARCHIVELOG;
    ALTER DATABASE OPEN;
    
  2. データベースがバックアップとアーカイブログを少なくとも24時間保持するようにします。なお、CData では、この例に示すようにバックアップとログを7日間保持することを推奨しています。

    RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
    
  3. 以下の適切なステートメントを送信して、データベースまたはテーブルレベルのいずれかで補助ログを有効にします。補助ログは、これらのレベルのうち1つのレベルでのみ必要です。

    データベースレベル

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
    

    テーブルレベル

    ALTER TABLE SchemaName.TableName ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
    

    Note:Oracle LogMiner を使用するには、各テーブルに少なくとも1つの主キーが必要です。

  4. 特定のデータベースの種類に応じて、以下の手順に従って、LogMiner を実行する権限をユーザーに付与します。

    スタンドアロンデータベース

    次のコマンドを送信して、LogMiner の実行権限を付与します。

    GRANT SELECT ON SYS.V_$DATABASE TO <Username>;
    GRANT SELECT ON SYS.V_$PARAMETER TO <Username>;
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO <Username>;
    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO <Username>;
    GRANT EXECUTE ON DBMS_LOGMNR TO <Username>;
    GRANT EXECUTE ON DBMS_LOGMNR_D TO <Username>;
    GRANT SELECT ANY TRANSACTION TO <Username>;
    GRANT EXECUTE_CATALOG_ROLE TO <Username>;
       
    

    マルチテナントコンテナデータベース

    1. LogMiner の実行権限を付与する前に、次のコマンドを実行します。

      ALTER SESSION SET CONTAINER=CDB$ROOT;

    2. 次のコマンドを送信して、LogMiner の実行権限を付与します。

      GRANT SELECT ON SYS.V_$DATABASE TO <Username>;
      GRANT SELECT ON SYS.V_$PARAMETER TO <Username>;
      GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO <Username>;
      GRANT SELECT ON SYS.V_$ARCHIVE_DEST TO <Username>;
      GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO <Username>;
      GRANT EXECUTE ON DBMS_LOGMNR TO <Username>;
      GRANT EXECUTE ON DBMS_LOGMNR_D TO <Username>;
      GRANT SELECT ANY TRANSACTION TO <Username>;
      GRANT EXECUTE_CATALOG_ROLE TO <Username>;
      
  5. (Oracle 12 以降の場合)次のコマンドを送信して、ユーザーにログマイニング権限を付与します。

    GRANT LOGMINING TO <Username>;
    
  6. データベースを再起動します。

  7. Sync でOracle データソースでジョブを作成し、変更データキャプチャオプションを選択します。

CData Sync のOracle Flashback Query を有効化

  1. 次のステートメントを送信してtablespace を設定します。Note:System ユーザーとして接続する必要があります。

    CREATE TABLESPACE TablespaceName DATAFILE 'YourLocalFilepath' SIZE 100M AUTOEXTEND ON MAXSIZE 200M;
    

    上記のステートメントでは、YourLocalFilepath は、データファイルを作成するローカルマシン上の場所を指定します。次の例に示すように、パス内のファイル名には.dbf 拡張子が必要です。

    CREATE TABLESPACE UserData DATAFILE 'C:\Oracle19c\oradata\YourDataFile.dbf' SIZE 100M AUTOEXTEND ON MAXSIZE 200M;
    
  2. 次のステートメントを送信してアーカイブを作成します。

    CREATE FLASHBACK ARCHIVE ArchiveName TABLESPACE TablespaceName RETENTION 7 DAY;
    

    このステートメントでは、RETENTION は、アーカイブ情報がデータベースに保持される期間を指定します。ベストプラクティスとして、Sync がコンフリクトやエラーを解決する時間を確保できるように、保持期間を長く設定します。最後に正常に実行されたジョブが保持期間外であった場合(例:RETENTION が7日に設定されているが、最後に同期が成功したのが8日前であった場合)、Sync は自動的にテーブル全体を複製し、変更漏れがないことを確認します。

  3. 次のステートメントを送信して、各テーブルでFlashback Query を有効にします。(Flashback Query を有効にするテーブルごとに個別のステートメントが必要です。)

    ALTER TABLE TableName FLASHBACK ARCHIVE ArchiveName;
    

    Note:Flashback Query を使用するには、各テーブルに少なくとも1つの主キーが必要です。

  4. データベースを再起動します。

  5. Sync でOracle データソースでジョブを作成し、変更データキャプチャオプションを選択します。

差分レプリケーションのサポート

Oracle データソースは差分レプリケーションをサポートしています。差分レプリケーションによりワークロードが大幅に軽減され、帯域幅の使用と同期の遅延が最小限に抑えられます。データを差分ごとに移動させることで、遅いAPI や毎日のクオータに対処する際、非常に高い柔軟性を発揮します。

Oracle データソースのカラムに基づいて差分チェックカラムを構成する必要があります。

差分レプリケーションの設定方法の詳細は、差分レプリケーションを参照してください。

詳細情報

CData Sync とOracle の連携について、詳しくはOracle Connector for CData Sync を参照してください。