すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:自己管理型Oracleデータベースからのデータ変更の追跡

最終更新日:Nov 04, 2024

Data Transmission Service (DTS) を使用して、データベースからのデータ変更をリアルタイムで追跡できます。 変更追跡機能は、軽量キャッシュ更新、ビジネスのデカップリング、非同期データ処理、抽出、変換、読み込み (ETL) 操作の同期などのシナリオで使用できます。 このトピックでは、自己管理型Oracleデータベースからのデータ変更を追跡する方法について説明します。

前提条件

  • 自己管理型Oracleデータベースのバージョンは、9i、10g、または11gです。 Real Application Cluster (RAC) またはpluggable database (PDB) インスタンスはサポートされていません。

  • 自己管理型Oracleデータベースの補足ログが有効になっています。 SUPPLEMENTAL_LOG_DATA_PKおよびSUPPLEMENTAL_LOG_DATA_UIパラメーターはYesに設定されます。 詳細については、『サプリメンタルロギング』をご参照ください。

  • 自己管理型OracleデータベースはARCHIVELOGモードで実行されています。 アーカイブされたログファイルにアクセスでき、アーカイブされたログファイルに適切な保存期間が設定されます。 詳細については、『 アーカイブ REDO ログファイルの管理』をご参照ください。

  • ApsaraDB RDS for MySQLインスタンスがクラシックネットワークタイプの場合、ApsaraDB RDS for MySQLインスタンスに内部エンドポイントが設定されます。

使用上の注意

カテゴリ

説明

ソースデータベースの制限

  • 帯域幅要件: ソースデータベースが属するサーバーには、十分な出力帯域幅が必要です。 そうでなければ、変更追跡速度が影響を受ける。

  • ソースデータベースがExpress Connect経由で接続されたOracle RACデータベースである場合、変更追跡タスクを構成するときにデータベースの仮想IPアドレス (VIP) を指定する必要があります。

  • ソースデータベースがElastic Compute Service (ECS) インスタンスでホストされているか、Express Connect、VPN Gateway、Smart Access Gateway、database Gateway、またはCloud Enterprise Network (CEN) で接続されているOracle RACデータベースの場合、ソースデータベース情報を構成するときに、単一のクライアントアクセス名 (SCAN) IPアドレスではなく単一のVIPを使用できます。 VIPを指定すると、Oracle RACデータベースのノード・フェイルオーバーはサポートされません。

  • ソーステーブルにはPRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでなければ、追跡されたデータ変更の一部が重複し得る。

  • 追跡するオブジェクトとしてテーブルを選択した場合、1回の変更追跡タスクで最大500のテーブルを追跡できます。 変更追跡タスクを実行して500を超えるテーブルを追跡すると、リクエストエラーが発生します。 この場合、複数のタスクを構成してテーブルをバッチで追跡するか、データベース全体の変更追跡タスクを構成することをお勧めします。

  • 次の要件を満たす必要があります。

    • redoロギングとアーカイブロギングを有効にする必要があります。

    • ソースデータベースのredoログとアーカイブログは、24時間以上保存する必要があります。 そうしないと、DTSはredoログとアーカイブログの取得に失敗し、タスクが失敗する可能性があります。 例外的な状況では、データの不整合または損失が発生します。 上記の要件に基づいて、redoログとアーカイブログの保存期間を設定してください。 そうしないと、DTSのサービスレベル契約 (SLA) に記載されているサービスの信頼性とパフォーマンスが保証されない場合があります。

その他の制限

FLOATまたはDOUBLEデータ型の列の精度設定がビジネス要件を満たしていることを確認する必要があります。 DTSはROUND(COLUMN,PRECISION) 関数を使用して、FLOATまたはDOUBLEデータ型の列から値を取得します。 精度を指定しない場合、DTSはFLOATデータ型の精度を38桁に設定し、DOUBLEデータ型の精度を308桁に設定します。

始める前に

ソースOracleデータベースにログインし、データベースアカウントを作成し、そのアカウントにデータベース管理者 (DBA) 権限を付与します。 詳細については、「CREATE USER」および「GRANT」をご参照ください。

重要

Oracleデータベースからのデータ変更を追跡する必要があるが、データベース管理者 (DBA) 権限をデータベースアカウントに付与できない場合は、アーカイブロギングと補足ロギングを有効にし、アカウントにきめ細かい権限を付与できます。

  1. アーカイブロギングと補足ロギングを有効にします。

    データ型

    手順

    アーカイブロギング

    次のステートメントを実行して、アーカイブログを有効にします。

    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;
    archive log list;

    補足ロギング

    データベースまたはテーブルレベルで補足ログを有効にします。

    説明

    データベースレベルの補足ログを有効にして、DTSタスクの安定性を確保できます。 テーブルレベルの補足ロギングを有効にして、ソースOracleデータベースのディスク使用量を減らすことができます。

    • データベースレベルの補足ロギングの有効化

      1. 最小限の補足ログを有効にする:

        alter database add supplemental log data;
      2. データベースレベルで主キーと一意キーの補足ログを有効にする:

        alter database add supplemental log data (primary key,unique index) columns;
    • テーブルレベルの補足ロギングの有効化

      1. 最小限の補足ログを有効にする:

        alter database add supplemental log data;
      2. 次のいずれかの方法を使用して、テーブルレベルの補足ログを有効にします。

        • テーブルレベルでプライマリキーの補足ログを有効にする:

          alter table table_name add supplemental log data (primary key) columns;
        • すべての列でテーブルレベルの補足ログを有効にする:

          alter table tb_name add supplemental log data (all) columns ;
  2. Oracleデータベース・アカウントにきめ細かい権限を付与

    への
    # rdsdt_dtsacctなどのデータベースアカウントを作成し、そのアカウントに権限を付与します。
    rdsdt_dtsacctによるIDENTIFIEDユーザーrdsdt_dtsacctを作成します。rdsdt_dtsacctにセッション作成を付与します。rdsdt_dtsacctへの接続を許可します。rdsdt_dtsacctにリソースを付与します。sys.dbms_logmnrでrdsdt_dtsacctに実行を許可します。V_$LOGMNR_LOGSでrdsdt_dtsacctにselectを付与します。all_objectsのselectをrdsdt_dtsacctに付与します。all_tab_colsのselectをrdsdt_dtsacctに付与します。dba_registryのselectをrdsdt_dtsacctに付与します。rdsdt_dtsacctに任意のテーブルを選択します。rdsdt_dtsacctへのトランザクションの選択を許可します。-- v$log特権
    v_$ logのselectをrdsdt_dtsacctに付与します。-- v$logfile特権
    v_$ logfileのselectをrdsdt_dtsacctに付与します。-- v$archived_log特権
    v_$ archived_logでrdsdt_dtsacctにselectを付与します。-- v $パラメータ特権
    v_$ パラメータのselectをrdsdt_dtsacctに付与します。-- v $データベース特権
    v_$ データベースのselectをrdsdt_dtsacctに付与します。-- v$active_instances特権
    v_$ active_instancesのselectをrdsdt_dtsacctに付与します。-- v $インスタンス特権
    v_$ インスタンスのselectをrdsdt_dtsacctに付与します。-- v$logmnr_content権限
    v_$ logmnr_contentsのselectをrdsdt_dtsacctに付与します。-- システムテーブル
    sys.USE R$ の選択をrdsdt_dtsacctに付与します。select on SYS.OBJ $をrdsdt_dtsacctに付与します。select on SYS.COL $をrdsdt_dtsacctに付与します。select on SYS.IND $をrdsdt_dtsacctに付与します。select on SYS.ICOL $をrdsdt_dtsacctに付与します。select on SYS.CDEF $をrdsdt_dtsacctに付与します。select on SYS.CCOL $をrdsdt_dtsacctに付与します。select on SYS.TABPART $をrdsdt_dtsacctに付与します。select on SYS.TABSUBPART $をrdsdt_dtsacctに付与します。select on SYS.TABCOMPART $をrdsdt_dtsacctに付与します。

手順

  1. [追跡タスクの変更] ページに移動します。

    1. データ管理 (DMS) コンソール にログインします。

    2. 上部のナビゲーションバーで、[DTS] をクリックします。

    3. 左側のナビゲーションウィンドウで、[DTS (DTS)] > [追跡の変更] を選択します。

    説明
  2. [変更追跡タスク] の右側で、変更追跡タスクを作成するリージョンを選択します。

    説明

    新しいDTSコンソールを使用する場合は、DTSコンソールの [追跡タスクの変更] ページの [ワークベンチ] の右側にあるドロップダウンリストからリージョンを選択する必要があります。

  3. [タスクの作成] をクリックします。 表示されるページで、ソースデータベースインスタンスとコンシューマネットワークタイプを指定します。

    警告

    ソースデータベースインスタンスを指定した後、ページの上部に表示される制限を読むことを推奨します。 そうしないと、タスクが失敗するか、追跡されたデータを消費できません。

    セクション

    パラメーター

    説明

    なし

    タスク名

    変更追跡タスクの名前。 DTSはタスクに名前を自動的に割り当てます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。

    ソースデータベース

    既存のデータベース接続の選択

    ソースデータベースが属するインスタンス。 ビジネス要件に基づいて、既存のインスタンスを使用するかどうかを選択できます。

    • 既存のインスタンスを使用する場合、DTSはソースデータベースのパラメーター設定を自動的に適用します。

    • 既存のインスタンスを使用しない場合は、ソースデータベースのパラメーターを設定する必要があります。

    データベースタイプ

    移行元ディスクのタイプを設定します。 [Oracle] を選択します。

    アクセス方法

    ソースインスタンスのタイプを選択します。 この例では、ECS上の自己管理データベースが選択されています。

    説明

    ソースデータベースが自己管理データベースの場合は、データベースの準備を完了する必要があります。 詳細については、「準備の概要」をご参照ください。

    インスタンスリージョン

    自己管理型Oracleデータベースが存在するリージョン。

    ECSインスタンスID

    自己管理型OracleデータベースをホストするECSインスタンスのID。

    ポート番号

    自己管理型Oracleデータベースのサービス・ポート番号。 デフォルト値: 1521

    Oracleタイプ

    • [非RACインスタンス] を選択した場合、SIDパラメーターを指定する必要があります。

    • RACまたはPDBインスタンスを選択した場合、サービス名パラメーターを指定する必要があります。

      重要

      RACまたはPDBインスタンスはサポートされていません。

    この例では、[非RACインスタンス] が選択されています。

    データベースアカウント

    自己管理型Oracleデータベースのアカウント。 アカウントに必要な権限の詳細については、「開始前」をご参照ください。

    データベースパスワード

    データベースインスタンスへのアクセスに使用されるパスワード。

    消費者ネットワークタイプ

    ネットワークタイプ

    [ネットワークタイプ] パラメーターの値は [VPC] に固定されています。 VPCvSwitchを選択する必要があります。 詳細は、「VPC」をご参照ください。

    説明
    • 変更追跡タスクを設定した後、[コンシューマーネットワークの種類] セクションの設定を変更することはできません。

    • 変更追跡クライアントがVPCにデプロイされている場合、クライアントに接続されている同じVPCvSwitchを選択することを推奨します。

    • 内部ネットワーク上のデータ変更を追跡する場合、ネットワーク遅延は最小限に抑えられます。

  4. ページの下部で、接続性をテストして続行をクリックします。

    、ソースデータベースインスタンスがApsaraDB RDS for MySQLまたはApsaraDB for MongoDBインスタンスなどのAlibaba Cloudデータベースインスタンスの場合、DTSは自動的に対応するリージョンのDTSサーバーのCIDRブロックをインスタンスのホワイトリストに追加します。 ソースデータベースインスタンスがECSインスタンス上でホストされている自己管理データベースである場合、DTSは、対応するリージョンのDTSサーバーのCIDRブロックをECSインスタンスのセキュリティグループルールに自動的に追加します。 DTSがデータベースにアクセスできるようにするには、対応するリージョンのDTSサーバーのCIDRブロックをデータベースのセキュリティ設定に手動で追加する必要もあります。 ソースデータベースインスタンスがデータセンターにデプロイされているか、サードパーティのクラウドサービスプロバイダーによって提供されている自己管理データベースの場合、対応するリージョンのDTSサーバーのCIDRブロックをデータベースのセキュリティ設定に手動で追加して、DTSがデータベースにアクセスできるようにする必要があります。 詳細については、「DTSサーバーのCIDRブロックの追加」の「DTSサーバーのCIDRブロック」セクションをご参照ください。

    警告

    DTSサーバーのパブリックCIDRブロックがデータベースインスタンスのホワイトリストまたはECSインスタンスのセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータ変更を追跡する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。

  5. 変更追跡と詳細設定のオブジェクトを設定します。

    • 基本設定

      パラメーター

      説明

      データ変更の種類

      • データ更新

        DTSは、INSERT、DELETE、およびUPDATE操作を含む、選択したオブジェクトのデータ更新を追跡します。

      • スキーマ更新

        DTSは、ソースインスタンスのすべてのオブジェクトスキーマで実行される作成、削除、および変更操作を追跡します。 変更追跡クライアントを使用して、追跡するデータをフィルタリングする必要があります。

      ソースオブジェクト

      [ソースオブジェクト] セクションから1つ以上のオブジェクトを選択し、向右小箭头アイコンをクリックして [選択済みオブジェクト] セクションにオブジェクトを追加します。

      説明

      変更追跡のオブジェクトとしてテーブルまたはデータベースを選択できます。

      • オブジェクトとしてデータベースを選択した場合、DTSはデータベース内の新しいオブジェクトを含むすべてのオブジェクトの増分データを追跡します。

      • オブジェクトとしてテーブルを選択した場合、DTSはこのテーブルの増分データのみを追跡します。 この場合、別のテーブルのデータ変更を追跡する場合は、テーブルをオブジェクトリストに追加する必要があります。 詳細については、「変更追跡用オブジェクトの変更」をご参照ください。

    • 詳細設定

      パラメーター

      説明

      Set Alerts

      変更追跡タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、レイテンシが指定されたしきい値を超えると、指定されたアラート連絡先が通知を受信できます。 有効な値:

      • No: アラートを設定しません。

      • Yes: アラートを設定します。 この場合、アラートしきい値とアラート連絡先も指定する必要があります。

      失敗した接続のリトライ時間範囲の指定

      失敗した接続のリトライ時間範囲。 変更追跡タスクが失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位は分です。 デフォルト値: 120 時間範囲を30分以上に設定することを推奨します。 DTSが指定された時間範囲内にソースインスタンスに再接続すると、DTSは変更追跡タスクを再開します。 それ以外の場合、変更追跡タスクは失敗します。

      説明
      • インスタンスが複数の変更追跡タスクのソースまたはターゲットデータベースとして機能する場合、インスタンスに設定されている最短の再試行時間範囲が優先されます。

      • DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。

      ETLの設定

      抽出、変換、および読み込み (ETL) 機能を設定するかどうかを指定します。 詳細については、「」をご参照ください。ETLとは何ですか?. 有効な値:

      • Yes: ETL機能を設定します。 コードエディターでポリシーを入力できます。

      • No: ETL機能を設定しません。

  6. ページの下部にある [次へ: タスク設定と事前チェック] をクリックします。

    ポインタを 次:タスク設定の保存と事前チェック に移動し、[OpenAPIパラメーターのプレビュー] をクリックして、インスタンスを設定するために呼び出されるAPI操作のパラメーター設定を表示します。

    説明
    • 変更追跡タスクを開始する前に、DTSは事前チェックを実行します。 タスクが事前チェックに合格した後にのみ、変更追跡タスクを開始できます。

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 エラーメッセージに基づいて問題をトラブルシューティングした後、事前チェックを再度実行できます。

    • 事前チェック中にアイテムに対してアラートが生成された場合は、シナリオに基づいて次の操作を実行します。

      • アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。

      • アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

  7. 成功率100% になるまで待ちます。 次に、[次へ: インスタンスの購入] をクリックします。

  8. [購入] ページで、変更追跡インスタンスの課金方法を指定します。 次の表にパラメーターを示します。

    パラメーター

    説明

    課金方法

    • サブスクリプション: インスタンスの作成時にサブスクリプションの料金を支払います。 サブスクリプションの課金方法は、長期使用の場合、従量課金の課金方法よりも費用対効果が高くなります。 サブスクリプション期間が長くなると、低価格が提供されます。

    • 従量課金: 従量課金インスタンスは1時間ごとに課金されます。 短期使用の場合は、従量課金の課金方法を選択することを推奨します。 従量課金インスタンスが不要になった場合は、インスタンスをリリースしてコストを削減できます。

    リソースグループ設定

    インスタンスが属するリソースグループ。 デフォルト値: Default resource group 詳細については、「リソース管理とは 」をご参照ください。

    サブスクリプション期間

    サブスクリプションの課金方法を選択した場合は、サブスクリプション期間と作成するインスタンスの数を設定します。 サブスクリプション期間は、1〜9か月、1年、2年、3年、または5年とすることができる。

    説明

    このパラメーターは、[サブスクリプション] の課金方法を選択した場合にのみ使用できます。

  9. 読み取りと選択データ伝送サービス (従量課金) サービス規約.

  10. [購入と開始] をクリックして、変更追跡タスクを開始します。 タスクリストでタスクの進行状況を確認できます。

次のステップ

変更追跡タスクが実行されているときに、ダウンストリームクライアントに基づいてコンシューマグループを作成し、追跡されたデータを消費できます。

  1. コンシューマーグループの作成および管理方法の詳細については、「コンシューマーグループの作成」をご参照ください。

  2. 次のいずれかの方法を使用して、追跡データを消費します。