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

Data Transmission Service:Oracleデータベースの準備

最終更新日:Oct 30, 2024

Data Transmission Service (DTS) を使用してOracleデータベースからデータを転送したり、Oracleデータベースにデータをダンプしたりする前に、DTSの機能と制限、およびOracleデータベースをDTSに接続する準備を理解する必要があります。 これにより、データをスムーズに同期または移行できます。

Oracleデータベースの制限

ソースとしての自己管理型Oracleデータベース

項目

説明

Version

Oracle 10g、11g、12c、18c、および19cをサポートします。

アーキテクチャ

  • シングルノードおよびReal Application Cluster (RAC) アーキテクチャをサポートします。

    説明

    RACアーキテクチャのOracleデータベースにノードを追加したり、ノードを削除したりすることはできません。 それ以外の場合、DTSタスクは失敗します。

  • Oracle 12c以降のマルチテナントおよび非マルチテナントアーキテクチャをサポートします。

    説明

    DTSタスクは、1つのプラガブルデータベース (PDB) からのみデータを移行できます。

同期または移行するデータ

  • 関数インデックス、データ型、および文字セットを含む共通テーブル、インデックスをサポートします。 サポートされているデータ型と文字セットの詳細については、このトピックの付録を参照してください。

  • カスケード削除および更新操作をサポートします。

  • 1レベルまたは2レベルのパーティションのみを含むパーティションテーブルに対するDML操作をサポートし、パーティションテーブルに対するDDL操作はサポートしません。 これはDTSタスクには影響しません。

  • 分散トランザクションのログ解析をサポートします。

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

  • 名前が30バイトを超える同期または移行するオブジェクトをサポートします。

  • EMPTY_BLOB() またはEMPTY_CLOB() 関数を使用して作成された空のオブジェクトの同期または移行をサポートします。

  • 仮想列の同期または移行をサポートします。

  • ハイブリッド列圧缩 (HCC) を使用するデータの同期または移行をサポートします。

  • 完全データ同期または移行中は非表示列の同期または移行をサポートしますが、増分データ同期または移行中はサポートしません。

  • テーブル名や列名などのオブジェクト名の大文字化を変更できるオブジェクト名マッピング機能をサポートします。

ネットワーク帯域幅

少なくとも100メガバイト/秒のネットワーク帯域幅をサポートします。

ビジネス要件

  • ログの合計サイズは1テラバイト未満である必要があります。 1時間あたりのログの平均サイズは50 GB未満である必要があります。 ピークトラフィックは15メガバイト/秒未満でなければなりません。

    重要

    デフォルトでは、DTSはデータベースインスタンス全体のログを取得します。 同期または移行されていないオブジェクトに大量のデータ変更が含まれている場合、DTSタスクも遅延します。

  • 大量のデータを更新したり、CLOB、BLOB、LONGなどの大きなフィールドを変更したりすると、DTSタスクが遅延することがあります。 このような操作は、バッチで実行するか、実行しないことを推奨します。

  • プライマリキーなしでテーブルを頻繁に削除または変更しないでください。 そうでない場合、DTSタスクは遅延され得る。

  • DDL操作を頻繁に実行しないでください。 1秒あたり最大10個のDDLステートメントを実行することを推奨します。 そうでない場合、DTSタスクは遅延され得る。

  • ログの合計サイズが100 GBを超えるトランザクションなど、大規模なトランザクションを実行しないでください。 そうしないと、DTSタスクが失敗する可能性があります。

アクセス方式

  • OracleデータベースのパブリックおよびプライベートIPアドレスをサポートします。

  • RACクラスターの単一クライアントアクセス名 (SCAN) IPアドレスと、RACクラスター内の個々のノードの仮想IPアドレス (VIP) または物理IPアドレスをサポートします。

  • Express Connect回路を介した接続をサポートします。 このアクセス方法は、RACクラスターのSCAN IPアドレスをサポートしていません。

  • Active Data Guard (ADG) アーキテクチャのプライマリおよびスタンバイデータベースをサポートします。

    説明

    ADGアーキテクチャのスタンバイOracleデータベースを使用し、オンラインredoログファイルがアーカイブされていない場合、DTSタスクは遅延します。

  • Amazon RDS for Oracleインスタンスをサポートします。

その他の制限

  • データを同期または移行する前に、ソースデータベースとターゲットデータベースのパフォーマンスに対するデータの同期または移行の影響を評価します。 オフピーク時にデータを同期または移行することを推奨します。 完全なデータ同期または移行中、DTSはソースデータベースの読み取りリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 ほとんどの場合、フルデータの同期または移行は、2 CPUコア未満、および4 GB未満のメモリを占有します。 増加した負荷は、データベースのステータスによって異なります。

  • 同期または移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうしないと、DTSタスクが遅延し、宛先データベースが重複データレコードを含む可能性があります。

  • 書き込まれたデータの文字セットは、Oracleデータベースの文字セットとは異なる場合があります。

    説明

    この場合、実際の書き込みコード パラメーターを設定する必要があります。

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

  • データ制御言語 (DCL) 操作はサポートされていません。

  • 増分データの同期または移行中は、トリガーを同期または移行できません。 ターゲットOracleデータベースのトリガーを無効にする必要があります。

  • FOREIGN KEY制約があるデータは、増分データの同期または移行中に同期または移行できません。

  • プライマリキーまたは一意キーがないデータを同期または移行する場合は、次の制限事項に注意してください。

    • データが低速で書き込まれる場合、DTSタスクは遅延する可能性があります。

    • データの整合性を確保できません。 宛先データベースは、重複するデータレコードを含むことができる。

  • 同期または移行するオブジェクトの名前の長さは30バイトを超えることはできません。

  • 連続したRENAME TABLE操作は同期または移行できません。 そうしないと、DTSタスクが失敗する可能性があります。

  • グローバル一時テーブルは同期または移行できません。 これはDTSタスクには影響しません。

  • 関数を使用してデフォルト値を指定するテーブルは、同期または移行できません。 それ以外の場合、データの不一致が発生します。

  • 式を使用してデフォルト値を指定するテーブルは、同期または移行できません。

  • 計算列と暗号化列は同期または移行できません。

  • 仮想プライベートデータベース (VPD) は同期または移行できません。

  • DBMS_SCHEDULERまたはDBMS_JOBを使用して作成されたジョブを同期または移行できません。

  • スキーマ名の変更は同期または移行できません。

  • ネストされたテーブルは同期または移行できません。 それ以外の場合、DTSタスクのエラーが報告されます。

  • マテリアライズドビューは同期または移行できません。

  • 名前にキーワードまたは特殊文字が含まれるオブジェクトに対するDDL操作は、同期または移行できません。

  • ROWIDの変更を引き起こす操作 (SPLIT PARTITION、TABLE MOVE、TABLE SHRINK、MOVE PARTITION KEYなど) はサポートされていません。 このような操作を実行すると、データの不整合が発生したり、DTSタスクが失敗する可能性があります。

  • SSL暗号化送信はサポートされていません。

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

ソースとしてのAmazon RDS for Oracleインスタンス

項目

説明

Version

Oracle 10g、11g、12c、18c、および19cをサポートします。

アーキテクチャ

  • シングルノードおよびRACアーキテクチャをサポートします。

  • Oracle 12c、18c、および19cのマルチテナント以外のアーキテクチャのみをサポートします。

同期または移行するデータ

  • 関数インデックス、データ型、および文字セットを含む共通テーブル、インデックスをサポートします。 サポートされているデータ型と文字セットの詳細については、このトピックの付録を参照してください。

  • カスケード削除および更新操作をサポートします。

  • 1レベルまたは2レベルのパーティションのみを含むパーティションテーブルに対するDML操作をサポートし、パーティションテーブルに対するDDL操作はサポートしません。 これはDTSタスクには影響しません。

  • 分散トランザクションのログ解析をサポートします。

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

  • 名前が30バイトを超える同期または移行するオブジェクトをサポートします。

  • EMPTY_BLOB() またはEMPTY_CLOB() 関数を使用して作成された空のオブジェクトの同期または移行をサポートします。

  • 仮想列の同期または移行をサポートします。

  • ハイブリッド列圧缩 (HCC) を使用するデータの同期または移行をサポートします。

  • 完全データ同期または移行中は非表示列の同期または移行をサポートしますが、増分データ同期または移行中はサポートしません。

  • テーブル名や列名などのオブジェクト名の大文字化を変更できるオブジェクト名マッピング機能をサポートします。

ネットワーク帯域幅

少なくとも100メガバイト/秒のネットワーク帯域幅をサポートします。

ビジネス要件

  • ログの合計サイズは1テラバイト未満である必要があります。 1時間あたりのログの平均サイズは50 GB未満である必要があります。 ピークトラフィックは15メガバイト/秒未満でなければなりません。

    重要

    デフォルトでは、DTSはデータベースインスタンス全体のログを取得します。 同期または移行されていないオブジェクトに大量のデータ変更が含まれている場合、DTSタスクも遅延します。

  • 大量のデータを更新したり、CLOB、BLOB、LONGなどの大きなフィールドを変更したりすると、DTSタスクが遅延することがあります。 このような操作は、バッチで実行するか、実行しないことを推奨します。

  • プライマリキーなしでテーブルを頻繁に削除または変更しないでください。 そうでない場合、DTSタスクは遅延され得る。

  • DDL操作を頻繁に実行しないでください。 1秒あたり最大10個のDDLステートメントを実行することを推奨します。 そうでない場合、DTSタスクは遅延され得る。

  • ログの合計サイズが100 GBを超えるトランザクションなど、大規模なトランザクションを実行しないでください。 そうしないと、DTSタスクが失敗する可能性があります。

アクセス方式

  • OracleデータベースのパブリックおよびプライベートIPアドレスをサポートします。

  • RACクラスターの単一クライアントアクセス名 (SCAN) IPアドレスと、RACクラスター内の個々のノードの仮想IPアドレス (VIP) または物理IPアドレスをサポートします。

  • Express Connect回路を介した接続をサポートします。 このアクセス方法は、RACクラスターのSCAN IPアドレスをサポートしていません。

  • Active Data Guard (ADG) アーキテクチャのプライマリおよびスタンバイデータベースをサポートします。

    説明

    ADGアーキテクチャのスタンバイOracleデータベースを使用し、オンラインredoログファイルがアーカイブされていない場合、DTSタスクは遅延します。

その他の制限

  • データを同期または移行する前に、ソースデータベースとターゲットデータベースのパフォーマンスに対するデータの同期または移行の影響を評価します。 オフピーク時にデータを同期または移行することを推奨します。 完全なデータ同期または移行中、DTSはソースデータベースの読み取りリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 ほとんどの場合、フルデータの同期または移行は、2 CPUコア未満、および4 GB未満のメモリを占有します。 増加した負荷は、データベースのステータスによって異なります。

  • 同期または移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうしないと、DTSタスクが遅延し、宛先データベースが重複データレコードを含む可能性があります。

  • 書き込まれたデータの文字セットは、Oracleデータベースの文字セットとは異なる場合があります。

    説明

    この場合、実際の書き込みコード パラメーターを設定する必要があります。

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

  • データ制御言語 (DCL) 操作はサポートされていません。

  • 増分データの同期または移行中は、トリガーを同期または移行できません。 ターゲットOracleデータベースのトリガーを無効にする必要があります。

  • FOREIGN KEY制約があるデータは、増分データの同期または移行中に同期または移行できません。

  • プライマリキーまたは一意キーがないデータを同期または移行する場合は、次の制限事項に注意してください。

    • データが低速で書き込まれる場合、DTSタスクは遅延する可能性があります。

    • データの整合性を確保できません。 宛先データベースは、重複するデータレコードを含むことができる。

  • 同期または移行するオブジェクトの名前の長さは30バイトを超えることはできません。

  • 連続したRENAME TABLE操作は同期または移行できません。 そうしないと、DTSタスクが失敗する可能性があります。

  • グローバル一時テーブルは同期または移行できません。 これはDTSタスクには影響しません。

  • 関数を使用してデフォルト値を指定するテーブルは、同期または移行できません。 それ以外の場合、データの不一致が発生します。

  • 式を使用してデフォルト値を指定するテーブルは、同期または移行できません。

  • 計算列と暗号化列は同期または移行できません。

  • 仮想プライベートデータベース (VPD) は同期または移行できません。

  • DBMS_SCHEDULERまたはDBMS_JOBを使用して作成されたジョブを同期または移行できません。

  • スキーマ名の変更は同期または移行できません。

  • ネストされたテーブルは同期または移行できません。 それ以外の場合、DTSタスクのエラーが報告されます。

  • マテリアライズドビューは同期または移行できません。

  • 名前にキーワードまたは特殊文字が含まれるオブジェクトに対するDDL操作は、同期または移行できません。

  • ROWIDの変更を引き起こす操作 (SPLIT PARTITION、TABLE MOVE、TABLE SHRINK、MOVE PARTITION KEYなど) はサポートされていません。 このような操作を実行すると、データの不整合が発生したり、DTSタスクが失敗する可能性があります。

  • SSL暗号化送信はサポートされていません。

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

宛先としてのOracleデータベース

項目

説明

Version

Oracle 10g、11g、12c、18c、および19cをサポートします。

アーキテクチャ

  • シングルノードおよびReal Application Cluster (RAC) アーキテクチャをサポートします。

    説明

    RACアーキテクチャのOracleデータベースにノードを追加したり、ノードを削除したりすることはできません。 それ以外の場合、DTSタスクは失敗します。

  • Oracle 12c以降のマルチテナントおよび非マルチテナントアーキテクチャをサポートします。

    説明

    DTSタスクは、1つのプラガブルデータベース (PDB) からのみデータを移行できます。

ネットワーク帯域幅

少なくとも100メガバイト/秒のネットワーク帯域幅をサポートします。

アクセス方式

  • OracleデータベースのパブリックおよびプライベートIPアドレスをサポートします。

  • RACクラスターの単一クライアントアクセス名 (SCAN) IPアドレスと、RACクラスター内の個々のノードの仮想IPアドレス (VIP) または物理IPアドレスをサポートします。

  • Express Connect回路を介した接続をサポートします。 このアクセス方法は、RACクラスターのSCAN IPアドレスをサポートしていません。

  • Active Data Guard (ADG) アーキテクチャのプライマリおよびスタンバイデータベースをサポートします。

    説明

    ADGアーキテクチャのスタンバイOracleデータベースを使用し、オンラインredoログファイルがアーカイブされていない場合、DTSタスクは遅延します。

  • Amazon RDS for Oracleインスタンスをサポートします。

その他の制限

  • データを同期または移行する前に、データの同期または移行がターゲットデータベースのパフォーマンスに与える影響を評価します。 オフピーク時にデータを同期または移行することを推奨します。 完全なデータ同期または移行中、DTSは移行先データベースのネットワークおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 たとえば、ソースデータベースとターゲットデータベースのCPU負荷が30% 未満の場合、データを同期または移行することを推奨します。

  • 完全なデータ同期または移行中に、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全なデータ同期または移行が完了すると、移行先データベースの使用表領域のサイズが移行元データベースのサイズよりも大きくなります。

  • VARCHAR2型またはVARCHAR2型の空の文字列は、Oracleデータベースでnull値に変換されます。 異種データベースからOracleデータベースにデータを同期または移行する場合は、OracleデータベースのVARCHARおよびVARCHAR2フィールドのNOT NULL制約を無効にする必要があります。 そうしないと、DTSインスタンスの実行に失敗する可能性があります。

  • Oracleデータベースでは、VARCHARフィールドやVARCHAR2フィールドなど、文字の精度が必要なフィールドには、最大4,000バイトの文字を格納できます。 VARCHARまたはVARCHAR2フィールドなどのフィールドへのデータの書き込みに失敗した場合、異種データベースからOracleデータベースにデータを同期または移行するときに、フィールドタイプをCLOBに変更し、DTSインスタンスを再起動できます。

Oracleデータベースの構成

  • Oracleデータベースからの完全なデータ同期または移行: ソース・データベースでは設定は必要ありません。

  • Oracleデータベースからの増分データの同期または移行: 増分データを取得するには、Oracleデータベースで次の設定を完了して、ソースデータベースログをキャプチャおよび解析する必要があります。

  • Oracleデータベースへの完全または増分データの同期または移行: 移行先データベースでは設定は必要ありません。

ソースとしての自己管理型Oracleデータベース

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

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

    archive log list;
    説明
    • Database log modeパラメーターの値がArchive Modeの場合、ARCHIVELOGモードが有効になります。 この場合、引き続き補足ロギングを有効にします。 詳細については、このトピックの「補足ログの有効化」をご参照ください。

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

  2. 次のステートメントを実行してデータベースを再起動します。

    重要

    サービスの中断を防ぐため、オフピーク時にこの操作を実行することを推奨します。

    shutdown immediate;
    startup mount;
  3. 次のステートメントを実行して、ARCHIVELOGモードを有効にします。

    alter database archivelog;
    alter database open;
  4. 次のステートメントを実行して、ARCHIVELOGモードが有効かどうかを確認します。

    archive log list;

補足ログの有効化

DTSは、データベースまたはテーブルレベルでの補足ロギングをサポートします。 ビジネス要件に基づいて、補足ログの種類を選択します。

  • データベースレベルの補足ログを有効にして、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补足ログデータ;
  2. 次のいずれかのステートメントを実行して、テーブルレベルの補足ログを有効にします。

    • 次のステートメントを実行して、主キーのテーブルレベルの補足ログを有効にします。

      alter table <table_name> 補足ログデータ (主キー) 列を追加します。
    • 次のステートメントを実行して、すべての列に対してテーブルレベルの補足ログを有効にします。

      alter table <table_name> 補足ログデータ (すべて) 列を追加します。

ソースとしてのAmazon RDS for Oracleインスタンス

ARCHIVELOGモードを有効にする

次のステートメントを実行して、アーカイブログの保持期間を照会および設定します。

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

補足ロギングの有効化

DTSは、データベースまたはテーブルレベルでの補足ロギングをサポートします。 ビジネス要件に基づいて、補足ログの種類を選択します。

  • データベースレベルの補足ログを有効にして、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) 権限または操作固有の権限。

  • 増分データ同期または移行: 操作固有の権限。

    重要

    ソースデータベースが非マルチテナントアーキテクチャのOracleデータベースである場合、増分データ同期または移行中に、データ収集のためにDBA権限をアカウントに付与することもできます。

アカウントにDBA権限を付与

# Create a database account named rdsdt_dtsacct and grant permissions to the account.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;

# Use the rdsdt_dtsacct account to log on to the database and check whether the required permissions are granted.
select * from user_tab_privs;
select granted_role from user_role_privs;

スキーマと完全データの同期または移行のために、アカウントにきめ細かい権限を付与

# Create a database account named rdsdt_dtsacct and grant permissions to the account.
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;

# Use the rdsdt_dtsacct account to log on to the database and check whether the required permissions are granted.
select * from user_role_privs;
select * from user_sys_privs;

増分データの同期または移行のための操作固有の権限をアカウントに付与する

オラクル10gおよび11g

# Create a database account named rdsdt_dtsacct and grant permissions to the account.
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;
-- If the Oracle database is a standby database in the ADG architecture, you must grant the v_$standby_log permission to the account.
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;

# Use the rdsdt_dtsacct account to log on to the database and check whether the required permissions are granted.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Oracle 12c〜19c (非マルチテナント)

# Create a database account named rdsdt_dtsacct and grant permissions to the account.
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;
-- If the Oracle database is a standby database in the ADG architecture, you must grant the v_$standby_log permission to the account.
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;

# Use the rdsdt_dtsacct account to log on to the database and check whether the required permissions are granted.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Oracle 12c〜19c (マルチテナント)

重要

PDBに作成されるアカウント名は、PDBが属するコンテナデータベース (CDB) のルートコンテナ (CDB $root) に作成されるアカウント名と同じである必要があります。ただし、グローバルアカウント名のプレフィックスC## を除きます。

# Switch to a PDB. Create a database account named rdsdt_dtsacct and grant permissions to the account.
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;
-- If the Oracle database is a standby database in the ADG architecture, you must grant the v_$standby_log permission to the account.
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;

# Switch to the CDB$ROOT. Create an account and grant permissions to the account.
alter session set container = CDB$ROOT;

# Create a database account named rdsdt_dtsacct and grant permissions to the account. If you use this method, you must modify the default parameters of the Oracle database.
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;

# Use the rdsdt_dtsacct account to log on to the database and check whether the required permissions are granted.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Amazon RDS for Oracleインスタンス (マルチテナント以外)

説明

Oracle SQL Developerを使用して権限を付与することを推奨します。

# Create a database account named RDSDT_DTSACCT and grant permissions to the account.
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');

# Use the RDSDT_DTSACCT account to log on to the database and check whether the required permissions are granted.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

宛先としてのOracleデータベース

DTSを使用してデータをOracleデータベースに同期または移行する場合は、データ複製用のアカウントを作成し、そのアカウントに権限を付与する必要があります。 データの複製に使用されるアカウントには、次の権限が必要です。

  • スキーマと完全データの同期または移行: DBA権限。

  • 増分データ同期または移行: リソースの所有者権限。

アカウントにDBA権限を付与する

# Create a database account named rdsdt_dtsacct and grant permissions to the account.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;

# Use the rdsdt_dtsacct account to log on to the database and check whether the required permissions are granted.
select * from user_tab_privs;
select granted_role from user_role_privs;

リソースロールの権限をアカウントに付与する

# Create a database account named rdsdt_dtsacct and grant permissions to the account.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant resource to rdsdt_dtsacct;

# Use the rdsdt_dtsacct account to log on to the database and check whether the required permissions are granted.
select * from user_tab_privs;
select granted_role from user_role_privs;

次のステップ

ソースデータベースまたはターゲットデータベースがOracleデータベースであるDTSタスクを設定します。 詳細については、「データ同期シナリオの概要」または「データ移行シナリオの概要」をご参照ください。

付録

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

データ型

対応

サポートされていません

  • NUMBER

  • FLOAT

  • REAL

  • BINARY_FLOAT

  • CHAR [(サイズ [BYTE | CHAR])]

  • NCHAR[(サイズ)]

  • VARCHAR2 (サイズ [BYTE | CHAR])

  • NVARCHAR2 (サイズ)

  • CLOB

  • NCLOB

  • LONG

  • 日付

  • XMLTYPE: CLOBストレージモードがサポートされています。 BLOBストレージモードはサポートされていません。

    説明

    CLOB: キャラクターの大きなオブジェクト。 BLOB: バイナリラージオブジェクト。

  • RAW (サイズ)

  • LONG_RAW

  • BLOB

  • TIMESTAMP[fractional_seconds_precision]

  • TIMESTAMP [(fractional_seconds_precision)] タイムゾーン付き

  • TIMESTAMP [(fractional_seconds_precision)] ローカルタイムゾーン付き

  • [(year_precision)] 月まで

  • INTERVAL DAY [(day_precision)] からSECOND [(fractional_seconds_precision)]

  • SDO_GEOMETRY

  • SDO_TOPO_GEOMETRY

  • SDO_GEORASTER

  • ROWID

  • ウービッド

  • 任意のタイプ

  • ANYDATA

  • ANYDATASET

  • VARRAY

  • カスタムデータ型

文字セット

対応

サポートされていません

ASCII、ISO、ユニコード、US7ASCII、WE8HP、US8PC437、WE8EBARPLIC285、WE88PCAR8ISO8PCII、8WINECR、8WINDEC、E7DEC、SFA7ASCII、NDK7DEC、I7DEC、NL7DEC、CH7DEC、YUG7ASCII、SFA7ISSO7DEC、TR859DEC、889ISISO8TH9、888NE88292、88292、8NE8NE882II 8NE8NE8PEP92、TR8DEC、WE8CDEBCDIC37、WE8PCCDIC37C、WE8MSTRFTRLTIC500、WE8EBCDIC278、8IC8EBCDIC53、8WIN8EBCDIC1250、8WIN8EBCDICI、8EC8EUROACI、EEC8EUROPA3、LA8PASSPORT、BG8PC437S、EE8PCCL852、8PCCL757、8PCRAW15057、8PCRAY、8PCRAY、8PCRAY、8W150 LV8ICEEEEE8ISCHLR、LV8RST104090、CL8KOIISCHR、BLT8PCIC BS49PC775、F7SIEMENS9780X、8CSIEMENS9780X、N7SIEMENS9780X、D7SIEMENS9780X、WE8GCOS7、EL8GCOS7、US8BS2000、D8CRCR8BS2000、E8MAWE8MABS2000、8WE8MAANMABS2000、DK2000 WE8WEVDECROMAN8, WE8MAARAESARAROMAN8S, TH8MAARAARB69CTHAI, TH8MAARARBARCTHA720, 8PC437S, EL8PC737, LT8PC769, EL8PC869, EL8PCAR15863, HU8ARARARAR8A20T, 8AARMOBCAMOBART, SAHTEC, 8DTECAHTEC, 8X, 8, 8, 8X, 8X, 8H JA16EUHTCYEN、JA16EUHTCYE、JA16TICSTHTCYE、JA16ZGBZHISIS、JA1632TF16ALBEB1616ISYEN、JA8THST16TIC16ALB16ISSEK、JA16MACSJIS、KO16HTSC5601、KO16KDBCS、KO16KGBZWIN949、ZHS16MA32CGZALCCB16D16D16K、JAGBB23UC、Z16、Z16、Z16、Z16、Z168、CL8EBCDIC1025R、CL8CDHTCDIC1025S、CL8EBCDIC1025X、CL8EBCDIC26ISOTRP59HZIC1424、ISO8EBCDIC148IC148ICIC148EBCDEB114, D8EBCDIC114, EE8EBCDIC870, EE8EBCDIC870S、F、F8EBCDIC47、10WE1ICIC8WEE、8WE1ICICICICIC8WEEB1IC8C8C8C8C8C8C8C14E、C14, C144 CL8ISOIR111、CL8KOI8U、WE8PC858、WE8EBCDIC924、AL32UTF8、およびAL16UTF16

その他の文字セット