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

Data Transmission Service:Oracle データベースの制限事項と事前準備

最終更新日:Dec 03, 2025

Data Transfer Service (DTS) を使用して Oracle データベースとの間でデータを転送する前に、サポートされている機能、制限事項、および準備手順を理解し、スムーズなデータ同期またはデータ移行を確実に行ってください。

データベースの制限事項

ソースとしてのセルフマネージド Oracle

制限事項

説明

サポートされるバージョン

バージョン 10g、11g、12c、18c、19c がサポートされています。

サポートされるアーキテクチャ

  • シングルノードおよび Real Application Clusters (RAC) アーキテクチャがサポートされています。

    説明

    RAC アーキテクチャの Oracle データベースにノードを追加または削除しないでください。これにより、DTS タスクが失敗する可能性があります。

  • バージョン 12c 以降では、コンテナデータベース (CDB) および非 CDB アーキテクチャがサポートされています。

    説明

    1 つのタスクで移行できるプラガブル・データベース (PDB) は 1 つだけです。

サポートされるデータ

  • 一般的なテーブル、インデックス (関数ベースのインデックスを含む)、データ型、および文字セットがサポートされています。サポートされているデータ型と文字セットの詳細については、「付録」をご参照ください。

  • カスケード削除および更新操作がサポートされています。

  • パーティションおよびサブパーティションに対するデータ操作言語 (DML) 操作はサポートされています。パーティションテーブルに対するデータ定義言語 (DDL) 操作はサポートされていませんが、タスクは引き続き実行されます。

  • 分散トランザクションログの解析がサポートされています。

  • 完全および部分的なトランザクションのロールバックがサポートされています。

  • 名前が 30 バイトを超えるオブジェクトの同期と移行がサポートされています。

  • empty_blob() や empty_clob() などの null オブジェクトの同期と移行がサポートされています。

  • 仮想カラムの同期と移行がサポートされています。

  • Hybrid Columnar Compression (HCC) を使用したデータの同期と移行がサポートされています。

  • 完全移行タスクは不可視列をサポートしますが、増分同期タスクはサポートしません。

  • テーブル名やカラム名などの属性名に対する大文字と小文字を区別するマッピングがサポートされています。

ネットワーク帯域幅

100 Mb/s 以上である必要があります。

ビジネス要件

  • ピーク時のログボリュームは 1 TB 未満、1 時間あたりの平均ログボリュームは 50 GB 未満、ピークトラフィックは 15 MB/s 未満である必要があります。

    重要

    DTS はデフォルトでデータベースインスタンス全体のログをプルします。同期または移行の対象ではないオブジェクトで大量のデータ変更が発生した場合も、タスクの遅延を引き起こす可能性があります。

  • CLOB、BLOB、LONG などのラージオブジェクト (LOB) データ型に対するバッチデータ更新や大規模な変更は、タスクの遅延を引き起こす可能性があります。これらの操作は、より小さなバッチで実行するか、可能であれば避けてください。

  • プライマリキーのないテーブルに対する頻繁な削除または更新操作は避けてください。これにより、タスクの遅延が発生する可能性があります。

  • DDL 操作の頻度を減らしてください。タスクの遅延を避けるため、1 秒あたり 10 を超える DDL 文を実行しないでください。

  • 単一のトランザクションで 100 GB を超えるログが生成される大規模なトランザクションは避けてください。これにより、タスクが失敗する可能性があります。

接続タイプ

  • パブリックネットワーク IP アドレスおよびプライベート IP アドレスを使用した接続がサポートされています。

  • RAC アーキテクチャの場合、Scan IP、シングルノード VIP、または物理 IP アドレスを使用した接続がサポートされています。

  • 専用回線経由の接続がサポートされています。専用回線経由での RAC ノードの Scan IP への接続はサポートされていません。

  • ADG セットアップのプライマリおよびセカンダリデータベースへの接続がサポートされています。

    説明

    DTS 接続が ADG セカンダリデータベースに対して行われ、オンライン REDO ファイルがアーカイブされていない場合、DTS インスタンスで遅延が発生します。

  • Amazon RDS for Oracle はソースデータベースとしてサポートされています。

その他の制限事項

  • データ同期または移行タスクを開始する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。タスクはオフピーク時に実行してください。完全移行フェーズ中、DTS はソースデータベースの読み取りリソースを一部消費するため、データベースの負荷が増加する可能性があります。通常、影響は 2 CPU コアと 4 GB のメモリ未満です。実際の負荷への影響は、データベースの状態によって異なります。

  • 同期または移行するテーブルには、プライマリキーまたは一意制約が必要であり、フィールドは一意である必要があります。そうでない場合、タスクの遅延やターゲットデータベースでのデータ重複が発生する可能性があります。

  • Oracle がソースの場合、DTS は書き込み文字セットがデータベース文字セットと異なるシナリオをサポートします。

    説明

    実際の書き込みコード パラメーター (source.column.encoding) を設定する必要があります。

  • タスクの実行中に resetlogs コマンドを実行しないでください。これにより、DTS タスクが失敗する可能性があります。

  • DCL 操作はサポートされていません。

  • 増分同期タスクはトリガーをサポートしていません。ターゲットの Oracle データベースでトリガーを無効にしてください。

  • 増分同期タスクは外部キー制約のあるデータをサポートしていません。

  • 増分同期タスクは、Oracle Data Pump を使用してソースデータベースにインポートされたデータをサポートしていません。

  • 増分タスク中は、ソースデータベース上の large トランザクションにおける部分的なロールバックおよびバッチ削除を避けてください。これにより、増分の DELETE 文が欠落する可能性があります。

  • プライマリキーまたは一意キーのないテーブルからデータを同期または移行する場合:

    • データの書き込み速度が遅くなり、タスクの遅延を引き起こす可能性があります。

    • データの一貫性は保証できません。重複データが発生する可能性があります。

  • 名前が 30 バイトを超えるオブジェクトの同期と移行はサポートされていません。

  • 連続した `RENAME TABLE` 操作はサポートされていません。これにより、タスクが失敗する可能性があります。

  • グローバル一時テーブルはサポートされていません。タスクは続行されますが、これらのテーブルは移行されません。

  • デフォルト値に関数を含むテーブルはサポートされていません。これにより、データが不整合になる可能性があります。

  • デフォルト値に式を含むテーブルはサポートされていません。

  • 外部テーブルはサポートされていません。

  • 計算列と暗号化列はサポートされていません。

  • VPD はサポートされていません。

  • `dbms_scheduler` および `dbms_job` によって作成されたジョブはサポートされていません。

  • スキーマ名の変更はサポートされていません。

  • ネストされたテーブルはサポートされていません。これにより、タスクが失敗する可能性があります。

  • マテリアライズド・ビューはサポートされていません。

  • 名前にキーワードや特殊文字を含む属性に対する DDL 操作はサポートされていません。

  • `split partition`、`table move`、`table shrink`、`move partition key` などの ROWID 変更操作はサポートされていません。これにより、データの不整合やタスクの失敗が発生する可能性があります。

  • データ転送のための SSL 暗号化はサポートされていません。

  • Oracle Label Security モードはサポートされていません。

  • Oracle は商用のクローズドソースデータベースです。そのログフォーマットは、既知または未知のフォーマット特性により、DTS による CDC および解析中に避けられない問題を引き起こす可能性があります。本番環境で Oracle ソースからの増分同期または移行を有効にする前に、包括的な POC テストを実施してください。このテストでは、すべてのビジネス変更タイプ、テーブルスキーマの調整、およびピーク時のストレステストをカバーする必要があります。Oracle ログフォーマットの予測不可能な性質のため、本番環境のビジネスロジックが POC フェーズのものと同一であることを確認してください。これは、DTS の安定的かつ効率的な運用のために不可欠です。

ソースとしての Amazon RDS for Oracle

制限事項

説明

サポートされるバージョン

バージョン 10g、11g、12c、18c、19c がサポートされています。

サポートされるアーキテクチャ

  • シングルノードおよび RAC アーキテクチャがサポートされています。

  • バージョン 12c、18c、19c では、非 CDB アーキテクチャのみがサポートされています。

サポートされるデータ

  • 一般的なテーブル、インデックス (関数ベースのインデックスを含む)、データ型、および文字セットがサポートされています。サポートされているデータ型と文字セットの詳細については、「付録」をご参照ください。

  • カスケード削除および更新操作がサポートされています。

  • パーティションおよびサブパーティションに対するデータ操作言語 (DML) 操作はサポートされています。パーティションテーブルに対するデータ定義言語 (DDL) 操作はサポートされていませんが、タスクは引き続き実行されます。

  • 分散トランザクションログの解析がサポートされています。

  • 完全および部分的なトランザクションのロールバックがサポートされています。

  • 名前が 30 バイトを超えるオブジェクトの同期と移行がサポートされています。

  • empty_blob() や empty_clob() などの null オブジェクトの同期と移行がサポートされています。

  • 仮想カラムの同期と移行がサポートされています。

  • Hybrid Columnar Compression (HCC) を使用したデータの同期と移行がサポートされています。

  • 完全移行タスクは不可視列をサポートしますが、増分同期タスクはサポートしません。

  • テーブル名やカラム名などの属性名に対する大文字と小文字を区別するマッピングがサポートされています。

ネットワーク帯域幅

100 Mb/s 以上である必要があります。

ビジネス要件

  • ピーク時のログボリュームは 1 TB 未満、1 時間あたりの平均ログボリュームは 50 GB 未満、ピークトラフィックは 15 MB/s 未満である必要があります。

    重要

    DTS はデフォルトでデータベースインスタンス全体のログをプルします。同期または移行の対象ではないオブジェクトで大量のデータ変更が発生した場合も、タスクの遅延を引き起こす可能性があります。

  • CLOB、BLOB、LONG などのラージオブジェクト (LOB) データ型に対するバッチデータ更新や大規模な変更は、タスクの遅延を引き起こす可能性があります。これらの操作は、より小さなバッチで実行するか、可能であれば避けてください。

  • プライマリキーのないテーブルに対する頻繁な削除または更新操作は避けてください。これにより、タスクの遅延が発生する可能性があります。

  • DDL 操作の頻度を減らしてください。タスクの遅延を避けるため、1 秒あたり 10 を超える DDL 文を実行しないでください。

  • 単一のトランザクションで 100 GB を超えるログが生成される大規模なトランザクションは避けてください。これにより、タスクが失敗する可能性があります。

接続タイプ

  • パブリックネットワーク IP アドレスおよびプライベート IP アドレスを使用した接続がサポートされています。

  • RAC アーキテクチャの場合、Scan IP、シングルノード VIP、または物理 IP アドレスを使用した接続がサポートされています。

  • 専用回線経由の接続がサポートされています。専用回線経由での RAC ノードの Scan IP への接続はサポートされていません。

  • ADG セットアップのプライマリおよびセカンダリデータベースへの接続がサポートされています。

    説明

    DTS 接続が ADG セカンダリデータベースに対して行われ、オンライン REDO ファイルがアーカイブされていない場合、DTS インスタンスで遅延が発生します。

その他の制限事項

  • データ同期または移行タスクを開始する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。タスクはオフピーク時に実行してください。完全移行フェーズ中、DTS はソースデータベースの読み取りリソースを一部消費するため、データベースの負荷が増加する可能性があります。通常、影響は 2 CPU コアと 4 GB のメモリ未満です。実際の負荷への影響は、データベースの状態によって異なります。

  • 同期または移行するテーブルには、プライマリキーまたは一意制約が必要であり、フィールドは一意である必要があります。そうでない場合、タスクの遅延やターゲットデータベースでのデータ重複が発生する可能性があります。

  • Oracle がソースの場合、DTS は書き込み文字セットがデータベース文字セットと異なるシナリオをサポートします。

    説明

    実際の書き込みコード パラメーター (source.column.encoding) を設定する必要があります。

  • タスクの実行中に resetlogs コマンドを実行しないでください。これにより、DTS タスクが失敗する原因となります。

  • DCL 操作はサポートされていません。

  • 増分同期タスクはトリガーをサポートしていません。ターゲットの Oracle データベースでトリガーを無効にしてください。

  • 増分同期タスクは外部キー制約のあるデータをサポートしていません。

  • 増分同期タスクは、Oracle Data Pump を使用してソースデータベースにインポートされたデータをサポートしていません。

  • 増分タスク中は、ソースデータベースの large トランザクションにおいて、部分的なロールバックとバッチ削除を避けてください。これにより、増分の DELETE 文が欠落する可能性があります。

  • プライマリキーまたは一意キーのないテーブルからデータを同期または移行する場合:

    • データの書き込み速度が遅くなり、タスクの遅延を引き起こす可能性があります。

    • データの一貫性は保証できません。重複データが発生する可能性があります。

  • 名前が 30 バイトを超えるオブジェクトの同期と移行はサポートされていません。

  • 連続した `RENAME TABLE` 操作はサポートされていません。これにより、タスクが失敗する可能性があります。

  • グローバル一時テーブルはサポートされていません。タスクは続行されますが、これらのテーブルは移行されません。

  • デフォルト値に関数を含むテーブルはサポートされていません。これにより、データが不整合になる可能性があります。

  • デフォルト値に式を含むテーブルはサポートされていません。

  • 外部テーブルはサポートされていません。

  • 計算列と暗号化列はサポートされていません。

  • VPD はサポートされていません。

  • `dbms_scheduler` および `dbms_job` によって作成されたジョブはサポートされていません。

  • スキーマ名の変更はサポートされていません。

  • ネストされたテーブルはサポートされていません。これにより、タスクが失敗する可能性があります。

  • マテリアライズド・ビューはサポートされていません。

  • 名前にキーワードや特殊文字を含む属性に対する DDL 操作はサポートされていません。

  • `split partition`、`table move`、`table shrink`、`move partition key` などの ROWID 変更操作はサポートされていません。これにより、データの不整合やタスクの失敗が発生する可能性があります。

  • データ転送のための SSL 暗号化はサポートされていません。

  • Oracle Label Security モードはサポートされていません。

  • Oracle は商用のクローズドソースデータベースです。そのログフォーマットは、既知または未知のフォーマット特性により、DTS による CDC および解析中に避けられない問題を引き起こす可能性があります。本番環境で Oracle ソースからの増分同期または移行を有効にする前に、包括的な POC テストを実施してください。このテストでは、すべてのビジネス変更タイプ、テーブルスキーマの調整、およびピーク時のストレステストをカバーする必要があります。Oracle ログフォーマットの予測不可能な性質のため、本番環境のビジネスロジックが POC フェーズのものと同一であることを確認してください。これは、DTS の安定的かつ効率的な運用のために不可欠です。

ターゲットとしての Oracle

制限事項

説明

サポートされるバージョン

バージョン 10g、11g、12c、18c、19c がサポートされています。

サポートされるアーキテクチャ

  • シングルノードおよび Real Application Clusters (RAC) アーキテクチャがサポートされています。

    説明

    RAC アーキテクチャの Oracle データベースにノードを追加または削除しないでください。これにより、DTS タスクが失敗する可能性があります。

  • バージョン 12c 以降では、コンテナデータベース (CDB) および非 CDB アーキテクチャがサポートされています。

    説明

    1 つのタスクで移行できるプラガブル・データベース (PDB) は 1 つだけです。

ネットワーク帯域幅

100 Mb/s 以上である必要があります。

接続タイプ

  • パブリックネットワーク IP アドレスおよびプライベート IP アドレスを使用した接続がサポートされています。

  • RAC アーキテクチャの場合、Scan IP、シングルノード VIP、または物理 IP アドレスを使用した接続がサポートされています。

  • 専用回線経由の接続がサポートされています。専用回線経由での RAC ノードの Scan IP への接続はサポートされていません。

  • ADG セットアップのプライマリおよびセカンダリデータベースへの接続がサポートされています。

    説明

    DTS 接続が ADG セカンダリデータベースに対して行われ、オンライン REDO ファイルがアーカイブされていない場合、DTS インスタンスで遅延が発生します。

  • Amazon RDS for Oracle はターゲットデータベースとしてサポートされています。

その他の制限事項

  • データ同期または移行タスクを開始する前に、ターゲットデータベースのパフォーマンスを評価してください。タスクはオフピーク時に実行してください。完全移行フェーズ中、DTS はターゲットデータベースのネットワークおよび書き込みリソースを一部消費します。これにより、データベースの負荷が増加する可能性があります。たとえば、ソースデータベースとターゲットデータベースの両方の CPU 負荷を 30% 未満に保ちます。

  • DTS は、完全なデータ同期または移行中に同時 `INSERT` 操作を実行します。これにより、ターゲットデータベースでテーブルの断片化が発生する可能性があります。その結果、タスク完了後、ターゲットデータベースが使用するストレージ領域はソースデータベースよりも大きくなります。

  • Oracle は、`VARCHAR` または `VARCHAR2` 型の空の文字列を `NULL` として扱います。Oracle をターゲットとする異種データベース間でデータを同期または移行する場合は、Oracle データベースの `VARCHAR` および `VARCHAR2` フィールドから非 NULL 制約を削除してください。そうしないと、DTS インスタンスが失敗する可能性があります。

  • Oracle では、`VARCHAR` や `VARCHAR2` などの文字精度を持つフィールドは、最大 4000 バイトを格納できます。Oracle をターゲットとする異種データベース間でデータを同期または移行し、`VARCHAR` または `VARCHAR2` フィールドへのデータ書き込みに失敗した場合は、フィールドの型を `CLOB` に変更して DTS インスタンスを再起動してください。

データベースの構成

  • Oracle ソースを使用した完全タスクの場合、ソースデータベースで特別な構成は必要ありません。

  • Oracle ソースを使用した増分タスクの場合、ソースログをスクレイピングして解析することで増分変更をキャプチャするために、Oracle データベースで以下の構成を完了する必要があります。

  • Oracle をターゲットとする完全または増分タスクの場合、ターゲットデータベースで特別な構成は必要ありません。

ソースとしてのセルフマネージド Oracle

アーカイブログモードの有効化

  1. ソースデータベースでアーカイブログモードが有効になっているか確認します。

    archive log list;
    説明
    • [データベースログモード][アーカイブモード] に設定されている場合、アーカイブログモードはすでに有効です。「補足ログを有効にする」に進んでください。

    • アーカイブされたログの保持期間は、少なくとも 3 日間である必要があります。

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

    重要

    サービスの中断を避けるため、この操作はオフピーク時に実行してください。

    shutdown immediate;
    startup mount;
  3. アーカイブログモードを有効にします。

    alter database archivelog;
    alter database open;
  4. アーカイブログモードの構成が有効であることを確認します。

    archive log list;

補足ログの有効化

DTS は、データベースレベルとテーブルレベルの 2 つの補足ログモードをサポートしています。要件に応じてモードを選択できます。

  • データベースレベルの補足ログ:このモードは、DTS タスクの安定性を向上させます。

  • テーブルレベルの補足ログ:このモードは、ソースの Oracle データベースのディスク領域を節約します。ただし、移行の粒度がデータベースレベルの場合、データ定義言語 (DDL) を使用して追加され、補足ログが有効になっていないテーブルは移行されません。

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

  1. データベースレベルの補足ログが有効になっているか確認します。

    SELECT supplemental_log_data_min, supplemental_log_data_pk,supplemental_log_data_ui FROM v$database;

    出力が以下のようになっている場合、データベースレベルの補足ログは有効になっており、後続の手順を実行する必要はありません。

    SUPPLEME SUP SUP
    -------- --- ---
    IMPLICIT YES YES
  2. データベースの最小補足ログを有効にします。

    alter database add supplemental log data;
  3. データベースレベルでプライマリキーと一意キーの補足ログを有効にします。

    alter database add supplemental log data (primary key,unique index) columns;
  4. データベースレベルの補足ログが有効になっていることを確認します。

    SELECT supplemental_log_data_min, supplemental_log_data_pk,supplemental_log_data_ui FROM v$database;

テーブルレベルの補足ログの有効化

  1. 最小補足ログを有効にします。

    alter database add supplemental log data;
  2. テーブルレベルの補足ログを有効にします。以下のいずれかの方法を選択できます。

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

      alter table <table_name> add supplemental log data (primary key) columns;
    • テーブルの全列補足ログを有効にする

      alter table <table_name> add supplemental log data (all) columns;

ソースとしての Amazon RDS for Oracle

アーカイブログモードの有効化

次のコマンドを実行して、アーカイブされたログの保持期間を表示および設定します。

exec rdsadmin.rdsadmin_util.show_configuration;
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours', 72);

補足ログの有効化

DTS は、データベースレベルとテーブルレベルの 2 つの補足ログモードをサポートしています。要件に応じてモードを選択できます。

  • データベースレベルの補足ログ:このモードは、DTS タスクの安定性を向上させます。

  • テーブルレベルの補足ログ:このモードは、ソースの Oracle データベースのディスク領域を節約します。ただし、移行の粒度がデータベースレベルの場合、データ定義言語 (DDL) を使用して追加され、補足ログが有効になっていないテーブルは移行されません。

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

  1. データベースレベルの補足ログが有効になっているか確認します。

    SELECT supplemental_log_data_min, supplemental_log_data_pk,supplemental_log_data_ui FROM v$database;

    出力が以下のようになっている場合、データベースレベルの補足ログは有効になっており、後続の手順を実行する必要はありません。

    SUPPLEME SUP SUP
    -------- --- ---
    IMPLICIT YES YES
  2. 強制ロギングモードを有効にします。

    exec rdsadmin.rdsadmin_util.force_logging(p_enable => true);
  3. データベースレベルでプライマリキーと一意キーの補足ログを有効にします。

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'PRIMARY KEY');
    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'UNIQUE');

テーブルレベルの補足ログの有効化

  1. テーブルの全列補足ログを有効にします。

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'ALL');
  2. テーブルのプライマリキー補足ログを有効にします。

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'PRIMARY KEY');

ターゲットとしての Oracle

特別な構成は必要ありません。

データベースアカウントの準備

ソースとしての Oracle

DTS を使用して Oracle ソースからデータを同期または移行する場合、データ収集用のデータベースアカウントを作成し、そのアカウントに必要な権限を付与する必要があります。必要な権限はタスクの種類によって異なります:

  • スキーマタスクと完全タスクの場合、DBA ロールまたは詳細な権限を付与できます。

  • 増分タスクの場合、詳細な権限を付与する必要があります。

    重要

    非コンテナデータベース (non-CDB) の Oracle ソースからの増分タスクの場合、データ収集アカウントに DBA ロールを付与することもできます。

DBA ロールの付与

# データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;

# rdsdt_dtsacct アカウントでログインし、権限が付与されているか確認します。
select * from user_tab_privs;
select granted_role from user_role_privs;

スキーマタスクと完全タスクの詳細な権限

# データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant select any table to rdsdt_dtsacct;

# rdsdt_dtsacct アカウントでログインし、権限が付与されているか確認します。
select * from user_role_privs;
select * from user_sys_privs;

増分タスクの詳細な権限

Oracle 10g および 11g

# データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Oracle データベースが ADG セカンダリデータベースの場合、v_$standby_log 権限を付与します。
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;

grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;

# rdsdt_dtsacct アカウントでログインし、権限が付与されているか確認します。
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Oracle 12c から 19c (非 CDB)

# データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。
create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Oracle データベースが ADG セカンダリデータベースの場合、v_$standby_log 権限を付与します。
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;

grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;

# rdsdt_dtsacct アカウントでログインし、権限が付与されているか確認します。
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Oracle 12c から 19c (CDB)

重要

プラガブル・データベース (PDB) で作成するアカウント名は、CDB$ROOT コンテナで作成するアカウント名と同じである必要があります (共通ユーザーの C## プレフィックスを除く)。

# PDB に切り替え、データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。
alter session set container = ORCLPDB1;

create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant logmining TO rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

grant select on v_$pdbs to rdsdt_dtsacct;
grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Oracle データベースが ADG セカンダリデータベースの場合、v_$standby_log 権限を付与します。
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;

grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;

# CDB$ROOT に切り替え、アカウントを作成し、権限を付与します。
alter session set container = CDB$ROOT;

# データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。この方法を使用する場合、Oracle データベースのデフォルトパラメータを変更する必要があります。
alter session set "_ORACLE_SCRIPT"=true;
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

# rdsdt_dtsacct アカウントでログインし、権限が付与されているか確認します。
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Amazon RDS for Oracle (非 CDB)

説明

Oracle SQL Developer を使用して権限を付与します。

# データベースアカウント (例: RDSDT_DTSACCT) を作成し、権限を付与します。
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ACTIVE_INSTANCES','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$INSTANCE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','RDSDT_DTSACCT','EXECUTE');

exec rdsadmin.rdsadmin_util.grant_sys_object('USER$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('COL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('IND$',  'RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ICOL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('CDEF$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('CCOL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABPART$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABSUBPART$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABCOMPART$','RDSDT_DTSACCT','SELECT');

# RDSDT_DTSACCT アカウントでログインし、権限が付与されているか確認します。
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

ターゲットとしての Oracle

DTS を使用して Oracle ターゲットにデータを同期または移行する場合、データレプリケーション用のデータベースアカウントを作成し、そのアカウントに必要な権限を付与する必要があります。必要な権限はタスクの種類によって異なります:

  • スキーマタスクの場合、DBA ロールを付与する必要があります。

  • 完全タスクと増分タスクの場合、リソースロールを付与する必要があります。

DBA ロールの付与

# データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;

# rdsdt_dtsacct アカウントでログインし、権限が付与されているか確認します。
select * from user_tab_privs;
select granted_role from user_role_privs;

リソースロールの付与

# データベースアカウント (例: rdsdt_dtsacct) を作成し、権限を付与します。
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant resource to rdsdt_dtsacct;

# rdsdt_dtsacct アカウントでログインし、権限が付与されているか確認します。
select * from user_tab_privs;
select granted_role from user_role_privs;

次のステップ

Oracle をソースまたはターゲットとしてタスクを構成します。詳細については、「同期ソリューション」または「移行ソリューション」の関連する構成トピックをご参照ください。

付録

以下の表に、DTS タスクでサポートされている Oracle のデータ型と文字セットを示します。

データ型

サポート対象

サポート対象外

  • NUMBER

  • FLOAT

  • REAL

  • BINARY_FLOAT

  • CHAR [(size [BYTE | CHAR])]

  • NCHAR[(size)]

  • VARCHAR2(size [BYTE | CHAR])

  • NVARCHAR2(size)

  • CLOB

  • NCLOB

  • LONG

  • DATE

  • XMLTYPE:Character Large Object (CLOB) として格納される場合はサポートされます。Binary Large Object (BLOB) として格納される場合はサポートされません。

    説明

    Character Large Object (CLOB) ストレージモードはサポートされています。Binary Large Object (BLOB) ストレージモードはサポートされていません。

  • RAW(size)

  • LONG_RAW

  • BLOB

  • TIMESTAMP[fractional_seconds_precision]

  • TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

  • TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE

  • INTERVAL YEAR [(year_precision)] TO MONTH

  • INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]

  • SDO_GEOMETRY

  • SDO_TOPO_GEOMETRY

  • SDO_GEORASTER

  • ROWID

  • UROWID

  • ANYTYPE

  • ANYDATA

  • ANYDATASET

  • VARRAY

  • ユーザー定義型

文字セット

サポート対象

サポート対象外

ASCII, ISO, UNICODE, US7ASCII, WE8HP, US8PC437, WE8EBCDIC285, WE8PC850, D7DEC, F7DEC, S7DEC, E7DEC, SF7ASCII, NDK7DEC, I7DEC, NL7DEC, CH7DEC, YUG7ASCII, SF7DEC, TR7DEC, IW7IS960, IN8ISCII, EE8ISO8859P2, SE8ISO8859P3, NEE8ISO8859P4, CL8ISO8859P5, AR8ISO8859P6, EL8ISO8859P7, IW8ISO8859P8, WE8ISO8859P9, NE8ISO8859P10, TH8TISASCII, BN8BSCII, VN8VN3, VN8MSWIN1258, WE8NEXTSTEP, AR8ASMO708PLUS, AR8EBCDICX, AR8XBASIC, EL8DEC, TR8DEC, WE8EBCDIC37, WE8EBCDIC37C, WE8EBCDIC500, WE8EBCDIC500C, WE8EBCDIC871, WE8EBCDIC284, EEC8EUROASCI, EEC8EUROPA3, LA8PASSPORT, BG8PC437S, EE8PC852, RU8PC866, RU8BESTA, IW8PC1507, RU8PC855, TR8PC857, CL8MACCYRILLIC, CL8MACCYRILLICS, WE8PC860, IS8PC861, EE8MSWIN1250, CL8MSWIN1251, ET8MSWIN923, BG8MSWIN, EL8MSWIN1253, IW8MSWIN1255, LT8MSWIN921, TR8MSWIN1254, WE8MSWIN1252, BLT8MSWIN1257, D8EBCDIC273, I8EBCDIC280, DK8EBCDIC277, S8EBCDIC278, F8EBCDIC297, IW8EBCDIC1086, N8PC865, BLT8CP921, LV8PC1117, LV8PC8LR, LV8RST104090, CL8KOI8R, BLT8PC775, F7SIEMENS9780X, E7SIEMENS9780X, S7SIEMENS9780X, DK7SIEMENS9780X, N7SIEMENS9780X, I7SIEMENS9780X, D7SIEMENS9780X, WE8GCOS7, EL8GCOS7, US8BS2000, D8BS2000, F8BS2000, E8BS2000, DK8BS2000, S8BS2000, WE8BS2000, WE8BS2000L5, CL8BS2000, WE8DG, WE8NCR4970, WE8ROMAN8, EE8MACCE, EE8MACCES, EE8MACCROATIAN, EE8MACCROATIANS, TR8MACTURKISH, TR8MACTURKISHS, IS8MACICELANDIC, IS8MACICELANDICS, EL8MACGREEK, EL8MACGREEKS, IW8MACHEBREW, IW8MACHEBREWS, US8ICL, WE8ICL, WE8ISOICLUK, WE8MACROMAN8, WE8MACROMAN8S, TH8MACTHAI, TH8MACTHAIS, HU8CWI2, EL8PC437S, EL8PC737, LT8PC772, LT8PC774, EL8PC869, EL8PC851, CDN8PC863, HU8ABMOD, AR8ASMO8X, AR8HPARABIC8T, AR8NAFITHA711, AR8NAFITHA711T, AR8SAKHR707, AR8SAKHR707T, AR8MUSSAD768, AR8MUSSAD768T, AR8ADOS710, AR8ADOS710T, AR8ADOS720, AR8ADOS720T, AR8APTEC715, AR8APTEC715T, AR8MSAWIN, AR8NAFITHA721, AR8NAFITHA721T, AR8SAKHR706, AR8ARABICMAC, AR8ARABICMACS, AR8ARABICMACT, LA8ISO6937, US8NOOP, WE8DEC, WE8DECTST, JA16VMS, JA16EUC, JA16EUCYEN, JA16EUCTILDE, JA16DBCS, JA16SJIS, JA16SJISTILDE, JA16SJISYEN, JA16EBCDIC930, JA16MACSJIS, KO16KSC5601, KO16DBCS, KO16KSCCS, KO16MSWIN949, ZHS16CGB231280, ZHS16MACCGB231280, ZHS16GBK, ZHS16DBCS, ZHS32GB18030, ZHT32EUC, ZHT32SOPS, ZHT16DBT, ZHT32TRIS, ZHT16DBCS, ZHT16BIG5, ZHT16CCDC, ZHT16MSWIN950, AL24UTFFSS, UTF8, UTFE, KO16TSTSET, JA16TSTSET2, JA16TSTSET, US16TSTFIXED, AL16UTF16LE, TH8TISEBCDIC, TH8TISEBCDICS, BLT8EBCDIC1112, BLT8EBCDIC1112S, CE8BS2000, CL8EBCDIC1025, CL8EBCDIC1025C, CL8EBCDIC1025R, CL8EBCDIC1025S, CL8EBCDIC1025X, CL8EBCDIC1158, CL8EBCDIC1158R, D8EBCDIC1141, DK8EBCDIC1142, EE8BS2000, EE8EBCDIC870, EE8EBCDIC870C, EE8EBCDIC870S, EL8EBCDIC423R, EL8EBCDIC875, EL8EBCDIC875S, EL8EBCDIC875R, F8EBCDIC1147, I8EBCDIC1144, WE8BS2000E, WE8EBCDIC1047, WE8EBCDIC1047E, WE8EBCDIC1140, WE8EBCDIC1140C, WE8EBCDIC1145, WE8EBCDIC1146, WE8EBCDIC1148, WE8EBCDIC1148C, AR8EBCDIC420S, IW8EBCDIC424, IW8EBCDIC424S, TR8EBCDIC1026, TR8EBCDIC1026S, ZHT16HKSCS, ZHT16HKSCS31, BLT8ISO8859P13, WE8ISO8859P1, WE8ISO8859P15, AR8MSWIN1256, S8EBCDIC1143, AZ8ISO8859P9E, CEL8ISO8859P14, CL8ISOIR111, CL8KOI8U, WE8PC858, WE8EBCDIC924, AL32UTF8, AL16UTF16

その他の文字セット