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

Data Transmission Service:自己管理型Oracleデータベース間でデータを移行する

最終更新日:Oct 17, 2024

このトピックでは、data Transmission Service (DTS) を使用して自己管理型Oracleデータベース間でデータを移行する方法について説明します。 DTS はフルデータ移行と増分データ移行に対応しています。 サポートされているすべての移行タイプを選択して、サービスの継続性を確保できます。

前提条件

  • ソースおよびターゲットOracleデータベースのバージョンは、9i、10g、11g、12c、18c、または19cです。

    説明

    互換性を確保するために、ソースデータベースとターゲットデータベースのバージョンが同じであることを確認してください。

  • ソースOracleデータベースに対して、SUPPLEMENTAL_LOG_DATA_PKおよびSUPPLEMENTAL_LOG_DATA_UIを含む補足ログが有効になっています。 詳細については、『サプリメンタルロギング』をご参照ください。

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

  • 移行先Oracleデータベースの使用可能なストレージ・スペースは、移行元Oracleデータベースのデータの合計サイズよりも大きい。

使用上の注意

  • DTSは、完全データ移行中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データベースのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースデータベースで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットデータベースでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 たとえば、ソースデータベースとターゲットデータベースのCPU使用率が30% 未満の場合にデータを移行できます。

  • 移行元データベースで移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。

  • 自己管理型OracleデータベースがReal Application Cluster (RAC) アーキテクチャでデプロイされ、Alibaba Cloud仮想プライベートクラウド (VPC) を介してDTSに接続されている場合、Oracle RACのSingle Client Access Name (SCAN) IPアドレスと各ノードの仮想IPアドレス (VIP) をVPCに接続し、ルートを設定する必要があります。 この設定により、DTSタスクが期待どおりに実行できるようになります。 詳細については、「VPN Gatewayを使用したデータセンターのDTSへの接続」をご参照ください。

    重要

    DTSコンソールでソースOracleデータベースを構成する場合、Oracle RACのSCAN IPアドレスをデータベースエンドポイントまたはIPアドレスとして指定できます。

  • データ移行タスクが失敗して停止すると、DTSは自動的にタスクを再開します。 ワークロードをターゲットインスタンスに切り替える前に、データ移行タスクを停止またはリリースします。 それ以外の場合、タスクの再開後、ソースインスタンスのデータはターゲットインスタンスのデータを上書きします。

課金ルール

移行タイプ

タスク設定料金

インターネットトラフィック料金

スキーマ移行とフルデータ移行

無料です。

インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。

増分データ移行

有料。 詳細については、「課金の概要」をご参照ください。

移行タイプ

移行タイプ

説明

スキーマの移行

DTSは、必要なオブジェクトのスキーマを移行先のOracleデータベースに移行します。 DTSは、テーブル、ビュー、シノニム、トリガー、ストアドプロシージャ、関数、パッケージ、ユーザー定義型のオブジェクトのスキーマ移行をサポートしています。

説明

オブジェクトにトリガーが含まれている場合、ソースデータベースとターゲットデータベース間のデータに一貫性がなくなります。

フルデータ移行

DTSは、必要なオブジェクトの履歴データをソースOracleデータベースからターゲットOracleデータベースに移行します。

説明

スキーマ移行中およびフルデータ移行中は、移行するオブジェクトに対してDDL操作を実行しないことを推奨します。 そうしないと、オブジェクトの移行に失敗する可能性があります。

増分データ移行

完全データ移行後、DTSはソースOracleデータベースからredoログ・ファイルを取得します。 次に、DTSは増分データをソースOracleデータベースからターゲットOracleデータベースに移行します。 増分データ移行により、Oracleデータベース間でデータを移行するときにサービスの継続性を確保できます。

データベースアカウントに必要な権限

データベース

スキーマ移行

完全なデータ移行

増分データ移行

ソースOracleデータベース

スキーマ所有者の権限

スキーマ所有者の権限

DBA

宛先Oracleデータベース

スキーマ所有者の権限

スキーマ所有者の権限

スキーマ所有者の権限

Oracleデータベースアカウントを作成し、そのデータベースアカウントに権限を付与する方法の詳細については、「create USER」および「grant」をご参照ください。

ログ記録を有効にし、Oracleデータベース・アカウントにきめ細かい権限を付与する

重要

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

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

    タイプ

    手順

    アーカイブロギング

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

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

    補足ロギング

    ビジネス要件に基づいて、データベースまたはテーブルレベルで補足ログを有効にします。

    説明

    データベースレベルの補足ログを有効にして、Data Transmission Service (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 database force logging;

    強制ロギング

    次のステートメントを実行して、強制ロギングを有効にします。

    alter database force logging;
  2. Oracleデータベースアカウントにきめ細かい権限を付与します。

    #创建数据库账号(以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; grant execute on sys.dbms_logmnr to rdsdt_dtsacct; grant select on V_$LOGMNR_LOGS 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 select any table to rdsdt_dtsacct; grant select any transaction to rdsdt_dtsacct; -- v$log privileges grant select on v_$log to rdsdt_dtsacct; -- v$logfile privileges grant select on v_$logfile to rdsdt_dtsacct; -- v$archived_log privileges grant select on v_$archived_log to rdsdt_dtsacct; -- v$parameter privileges grant select on v_$parameter to rdsdt_dtsacct; -- v$database privileges grant select on v_$database to rdsdt_dtsacct; -- v$active_instances privileges grant select on v_$active_instances to rdsdt_dtsacct; -- v$instance privileges grant select on v_$instance to rdsdt_dtsacct; -- v$logmnr_contents privileges grant select on v_$logmnr_contents to rdsdt_dtsacct; -- system tables 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; grant select_catalog_role TO rdsdt_dtsacct;

手順

このトピックの手順では、ECSでホストされている自己管理データベースを使用します。 この手順に従って、他のタイプの自己管理型Oracleデータベースのデータ移行タスクを構成することもできます。

  1. にログインします。 DTSコンソール

    説明

    データ管理 (DMS) コンソールにリダイレクトされている場合は、にあるoldアイコンをクリックして、以前のバージョンのDTSコンソールに移動しimage

  2. 左側のナビゲーションウィンドウで、[データ移行] をクリックします。

  3. [移行タスク] ページの上部で、移行先クラスターが存在するリージョンを選択します。

  4. ページの右上隅にある [移行タスクの作成] をクリックします。

  5. ソースデータベースとターゲットデータベースを設定します。

    Configure the source and destination databases

    セクション

    パラメーター

    説明

    非該当

    タスク名

    DTSが自動的に生成するタスク名。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。

    移行元データベース

    インスタンスタイプ

    [ECS インスタンスのユーザー作成データベース] を選択します。

    説明

    他のオプションを選択した場合は、ソースデータベースのネットワーク環境を展開する必要があります。 詳細については、「Preparation overview」をご参照ください。

    インスタンスリージョン

    ソースOracleデータベースがデプロイされているElastic Compute Service (ECS) インスタンスのリージョン。

    ECS インスタンス ID

    ソースOracleデータベースがデプロイされているECSインスタンスのID。

    データベースエンジン

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

    ポート番号

    ソースOracleデータベースのサービス・ポート番号。

    インスタンスタイプ

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

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

    データベースアカウント

    ソースOracleデータベースのアカウント。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを設定します。

    説明

    ソースデータベースに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認できます。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 次に、チェック結果に基づいて情報を変更します。

    ターゲットデータベース

    インスタンスタイプ

    [ECS インスタンスのユーザー作成データベース] を選択します。

    インスタンスリージョン

    ターゲットOracleデータベースがデプロイされるECSインスタンスのリージョン。

    ECS インスタンス ID

    ターゲットOracleデータベースがデプロイされるECSインスタンスのID。

    データベースエンジン

    ターゲットデータベースのタイプ。 [Oracle] を選択します。

    ポート番号

    宛先Oracleデータベースのサービス・ポート番号。

    インスタンスタイプ

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

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

    データベースアカウント

    ターゲットOracleデータベースのアカウント。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを設定します。

    説明

    RDSインスタンスに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認できます。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 次に、チェック結果に基づいて情報を変更します。

  6. ページの右下隅にある [ホワイトリストと次への設定] をクリックします。

    警告

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

  7. 移行タイプと移行するオブジェクトを選択します。

    Select migration types and the objects to migrate

    設定

    説明

    移行タイプの選択

    • フルデータ移行のみを実行するには、[スキーマ移行][フルデータ移行] を選択します。

    • データ移行中のサービスの継続性を確保するには、[スキーマ移行][フルデータ移行] 、および [増分データ移行] を選択します。

    説明

    増分データ移行が選択されていない場合、フルデータ移行中にソースOracleデータベースにデータを書き込まないでください。 これにより、ソースデータベースとターゲットデータベース間のデータの整合性が確保されます。 詳細については、「移行タイプ」をご参照ください。

    移行するオブジェクトの選択

    [使用可能] セクションから1つ以上のオブジェクトを選択し、Rightwards arrowアイコンをクリックして、オブジェクトを [選択済み] セクションに追加します。

    説明
    • 移行するオブジェクトとして、列、テーブル、またはデータベースを選択できます。

    • デフォルトでは、オブジェクトがターゲットOracleデータベースに移行された後も、オブジェクトの名前はソースOracleデータベースの名前と同じままになります。 オブジェクト名マッピング機能を使用して、移行先Oracleデータベースに移行されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。

    • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。

    オブジェクトの名前を変更するかどうかを指定する

    オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。

    ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間の指定

    デフォルトでは、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の12時間以内に再試行します。 業務要件に基づいて再試行時間範囲を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。

    説明

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

  8. ページの右下隅にある [事前チェック] をクリックします。

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

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるInfo iconアイコンをクリックして詳細を表示できます。

      • 原因に基づいて問題をトラブルシューティングし、事前チェックを再度実行できます。

      • 問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。

  9. タスクが事前チェックに合格したら、[次へ] をクリックします。

  10. [設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] を選択します。

  11. [購入と開始] をクリックして、データ移行タスクを開始します。

    • スキーマ移行とフルデータ移行

      フルデータ移行中は、手動でタスクを停止しないことをお勧めします。 そうしないと、ターゲットデータベースに移行されたデータが不完全になる可能性があります。 データ移行タスクが自動的に停止するまで待つことができます。

    • スキーマ移行、完全データ移行、および増分データ移行

      増分データ移行タスクは自動的に停止しません。 タスクを手動で停止する必要があります。

      重要

      データ移行タスクを手動で停止する適切な時期を選択することを推奨します。 たとえば、オフピーク時やワークロードを移行先クラスターに切り替える前にタスクを停止できます。

      1. 増分データ移行移行タスクが遅延しませんが移行タスクのプログレスバーに表示されるまで待ちます。 その後、ソースデータベースへのデータの書き込みを数分間停止します。 増分データ移行のレイテンシは、プログレスバーに表示され得る。

      2. 増分データ移行のステータスが [移行タスクは遅延なし] に変わるまで待ちます。 次に、移行タスクを手動で停止します。 Stop an incremental data migration task