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

AnalyticDB:自己管理型OracleデータベースからAnalyticDB for PostgreSQLインスタンスへのデータの同期

最終更新日:Jan 22, 2025

このトピックでは、data Transmission Service (DTS) を使用して、自己管理型OracleデータベースからAnalyticDB for PostgreSQLインスタンスにデータを同期する方法について説明します。

前提条件

  • 自己管理型Oracleデータベースのエンジンバージョンは、9i、10g、11g、12c、18c、または19cです。

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

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

  • 移行先のAnalyticDB for PostgreSQLインスタンスが作成されました。 詳細については、「インスタンスの作成」をご参照ください。

使用上の注意

説明
  • スキーマ同期中、DTSはソースデータベースからターゲットデータベースに外部キーを同期します。

  • 完全データ同期および増分データ同期中、DTSはセッションレベルで外部キーに対する制約チェックおよびカスケード操作を一時的に無効にします。 データ同期中にソースデータベースに対してカスケード更新および削除操作を実行すると、データの不整合が発生する可能性があります。

カテゴリ

説明

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

  • 同期するオブジェクトの要件:

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

    • Oracleデータベースのバージョンが12c以降の場合、同期するテーブルの名前の長さは30バイトを超えることはできません。

    • 同期するオブジェクトとしてテーブルを選択し、テーブルや列の名前の変更など、ターゲットデータベース内のテーブルを編集する場合は、1つのデータ同期タスクで最大1,000のテーブルを同期できます。 タスクを実行して1,000を超えるテーブルを同期すると、リクエストエラーが発生します。 この場合、複数のタスクを構成してテーブルをバッチで同期するか、タスクを構成してデータベース全体を同期することをお勧めします。

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

  • 自己管理型OracleデータベースがOracle RACデータベースである場合、データ同期タスクを構成するときに、単一クライアントアクセス名 (SCAN) IPアドレスではなくVIPのみを使用できます。 VIPを指定すると、Oracle RACデータベースのノード・フェイルオーバーはサポートされません。

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

    説明

    増分データ同期のみを実行する場合、ソースデータベースのredoログとアーカイブログを24時間以上保存する必要があります。 完全データ同期と増分データ同期の両方を実行する場合、ソースデータベースのredoログとアーカイブログを少なくとも7日間保存する必要があります。 そうしないと、Data Transmission Service (DTS) がredoログとアーカイブログの取得に失敗し、タスクが失敗したり、データの不整合やデータの損失が発生する可能性があります。 完全なデータ同期が完了したら、保持期間を24時間以上に設定できます。 上記の要件に基づいて、redoログとアーカイブログの保存期間を設定してください。 それ以外の場合、DTSのサービスレベル契約 (SLA) はサービスの信頼性またはパフォーマンスを保証しません。

  • データ同期タスクの実行中にソースデータベースでプライマリ /セカンダリの切り替えを実行すると、タスクは失敗します。

  • ソースデータベースにVARCHAR2型の空の文字列が含まれ、ターゲットデータベースの対応する列にNOT NULL制約がある場合、データ同期タスクは失敗します。 VARCHAR2型の空の文字列は、Oracleデータベースではnull値として処理されます。

  • データ同期中は、LONGTEXTフィールドを更新しないでください。 それ以外の場合、データ同期タスクは失敗します。

その他の制限

  • DTSは、テーブル、インデックス、制約、関数、シーケンス、およびビューのオブジェクトの初期スキーマ同期をサポートしています。

    警告

    DTSは、初期スキーマ同期後にソースデータベースとターゲットデータベースのスキーマが一貫していることを保証しません。 データ型変換がビジネスに与える影響を評価することを推奨します。 詳細については、「スキーマ同期のためのデータ型マッピング」をご参照ください。

  • トリガーは同期できません。 トリガーによるデータの不整合を防ぐため、ソースデータベースのトリガーを削除することを推奨します。 トリガーを同期する方法の詳細については、「トリガーを含むソースデータベースのデータ同期または移行タスクの構成」をご参照ください。

  • パーティションテーブルの場合、DTSはパーティション定義を破棄します。 ターゲットデータベースでパーティションを定義する必要があります。

  • 同期するオブジェクトとしてテーブルのみを選択できます。 テーブルを追加最適化 (AO) テーブルにすることはできません。

  • 列マッピングが完全でないテーブル同期に使用されている場合、またはソーステーブルスキーマとターゲットテーブルスキーマに一貫性がない場合、ターゲットデータベースのテーブルに含まれていない列のデータは失われます。

  • データを同期する前に、ソースデータベースとターゲットデータベースのパフォーマンスに対するデータ同期の影響を評価します。 オフピーク時にデータを同期することを推奨します。 最初の完全データ同期中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。

  • 初期の完全データ同期中に、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 最初の完全データ同期が完了すると、ターゲットデータベースのテーブルスペースはソースデータベースのテーブルスペースよりも大きくなります。

  • DTSは、同期先データベースの最新の同期データのタイムスタンプとソースデータベースの現在のタイムスタンプに基づいて同期レイテンシを計算します。 長期間にわたってソースデータベースでDML操作が実行されない場合、同期レイテンシが不正確になる可能性があります。 同期レイテンシが高すぎる場合は、ソースデータベースでDML操作を実行してレイテンシを更新できます。

    説明

    同期するオブジェクトとしてデータベース全体を選択した場合は、ハートビートテーブルを作成できます。 ハートビートテーブルは1秒ごとに更新されるか、データを受信します。

  • データ同期中は、DTSのみを使用してデータをターゲットデータベースに書き込むことをお勧めします。 これにより、ソースデータベースとターゲットデータベース間のデータの不一致が防止されます。 たとえば、DTS以外のツールを使用してターゲットデータベースにデータを書き込む場合、データ管理 (DMS) を使用してオンラインDDL操作を実行すると、ターゲットデータベースでデータ損失が発生する可能性があります。

課金

同期タイプ

タスク設定料金

スキーマ同期と完全データ同期

無料です。

増分データ同期

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

サポートしている同期トポロジ

  • 一方向の 1 対 1 の同期

  • 一方向の 1 対多の同期

  • 一方向の多対 1 の同期

  • 一方向のカスケード同期

DTSでサポートされている同期トポロジの詳細については、「同期トポロジ」をご参照ください。

同期可能なSQL操作

操作タイプ

SQL文

DML

挿入、更新、および削除

DDL

コラムを追加

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

データベース

必要な権限

関連ドキュメント

自己管理型Oracleデータベース

DBA

CREATE USERGRANT

AnalyticDB for PostgreSQLインスタンス

ターゲットデータベースに対する書き込み権限

移行先AnalyticDB for PostgreSQLインスタンスの初期アカウントに必要な権限があります。 詳細については、「データベースアカウントの作成と管理」をご参照ください。

説明

RDS_SUPERUSER権限を持つアカウントを入力することもできます。 詳細については、「ユーザーと権限の管理」をご参照ください。

重要

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 table tb_name add supplemental log data (all) columns ;
  2. Oracleデータベース・アカウントにきめ細かい権限を付与します。

    Oracleバージョン9iから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 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 on v$database to rdsdt_dtsacct;
    grant select on dba_objects to rdsdt_dtsacct;
    grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
    grant select on dba_tab_cols to rdsdt_dtsacct;

    マルチテナントアーキテクチャを使用するOracleバージョン12c〜19c

    # Switch to the pluggable database (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 resource to rdsdt_dtsacct;
    grant execute on sys.dbms_logmnr 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;
    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;
    -- V$PDBS privileges
    grant select on V_$PDBS to rdsdt_dtsacct;
    grant select on v$database to rdsdt_dtsacct;
    grant select on dba_objects to rdsdt_dtsacct;
    grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
    grant select on dba_tab_cols to rdsdt_dtsacct;
    grant select_catalog_role TO rdsdt_dtsacct;
    
    # Switch to the container database (CDB). Create a database 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. 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 select on v_$logmnr_contents to rdsdt_dtsacct;
    grant LOGMINING TO rdsdt_dtsacct;
    grant EXECUTE_CATALOG_ROLE to rdsdt_dtsacct;
    grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
    grant select on v$database to rdsdt_dtsacct;
    grant select on dba_objects to rdsdt_dtsacct;
    grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
    grant select on dba_tab_cols to rdsdt_dtsacct;

    非マルチテナントアーキテクチャを使用する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 resource 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;
    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 LOGMINING TO rdsdt_dtsacct;
    grant EXECUTE_CATALOG_ROLE to rdsdt_dtsacct;
    grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
    grant select on v$database to rdsdt_dtsacct;
    grant select on dba_objects to rdsdt_dtsacct;
    grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
    grant select on dba_tab_cols to rdsdt_dtsacct;

手順

  1. 新しいDTSコンソールのデータ同期タスクページ

    説明

    にログインすることもできます。 DMSコンソールを使用します。 上部のナビゲーションバーで、ポインタを [データ開発] に移動し、[DTS (DTS)] > [データ同期] を選択します。

  2. 上部のナビゲーションバーで、データ同期タスクを作成するリージョンを選択します。

  3. [タスクの作成] をクリックします。 [データ同期タスクの作成] ページで、ソースデータベースとターゲットデータベースを設定します。 次の表にパラメーターを示します。

    セクション

    パラメーター

    説明

    N/A

    タスク名

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

    ソースデータベース

    データベースタイプ

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

    アクセス方法

    ソースデータベースのアクセス方法。 この例では、ECS上の自己管理データベースが選択されています。

    説明

    ソースデータベースが自己管理データベースの場合、データベースのネットワーク環境を展開する必要があります。 詳細については、「準備の概要」をご参照ください。

    インスタンスリージョン

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

    ECSインスタンスID

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

    ポート番号

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

    Oracleタイプ

    • ソースOracleデータベースのアーキテクチャ。 [非RACインスタンス] を選択した場合、SIDパラメーターを指定する必要があります。

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

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

    データベースアカウント

    自己管理型Oracleデータベースのアカウント。 アカウントに必要な権限については、このトピックの「データベースアカウントに必要な権限」を参照してください。

    データベースパスワード

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

    宛先データベース

    データベースタイプ

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

    アクセス方法

    ターゲットデータベースのアクセス方法。 [Alibaba Cloudインスタンス] を選択します。

    インスタンスリージョン

    移行先のAnalyticDB for PostgreSQLインスタンスが存在するリージョン。

    インスタンスID

    移行先のAnalyticDB for PostgreSQLインスタンスのID。

    データベース名

    AnalyticDB for PostgreSQLインスタンスのターゲットデータベースの名前。

    データベースアカウント

    移行先のAnalyticDB for PostgreSQLインスタンスのデータベースアカウント。 アカウントに必要な権限については、このトピックの「データベースアカウントに必要な権限」を参照してください。

    データベースパスワード

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

  4. ページの下部で、接続性をテストして続行.

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

    警告

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

  5. 同期するオブジェクトと詳細設定を設定します。

    • 基本設定

      パラメーター

      説明

      同期タイプ

      同期タイプ。 デフォルトでは、増分データ同期が選択されています。 [スキーマ同期] および [完全データ同期] も選択する必要があります。 事前チェックが完了すると、DTSは選択したオブジェクトの履歴データをソースデータベースからターゲットクラスターに同期します。 履歴データは、その後の増分同期の基礎となる。

      競合テーブルの処理モード

      • エラーの事前チェックと報告: ターゲットデータベースに、ソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかを確認します。 ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合は、事前チェックに合格します。 それ以外の場合、事前チェック中にエラーが返され、データ同期タスクを開始できません。

        説明

        ソースデータベースとターゲットデータベースに同じ名前のテーブルが含まれていて、ターゲットデータベース内のテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、ターゲットデータベースに同期されるテーブルの名前を変更できます。 詳細については、「マップオブジェクト名」をご参照ください。

      • エラーを無視して続行: ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

        • ソースデータベースとターゲットデータベースが同じスキーマを持ち、ターゲットデータベースのデータレコードがソースデータベースのデータレコードと同じ主キー値または一意キー値を持つ場合:

          • 完全データ同期中、DTSはデータレコードをターゲットデータベースに同期しません。 ターゲットデータベースの既存のデータレコードが保持されます。

          • 増分データ同期中、DTSはデータレコードをターゲットデータベースに同期します。 ターゲットデータベースの既存のデータレコードが上書きされます。

        • ソースデータベースとターゲットデータベースのスキーマが異なる場合、データの初期化に失敗する可能性があります。 この場合、一部の列のみが同期されるか、データ同期タスクが失敗します。 作業は慎重に行ってください。

      マージテーブル

      • はい: オンライントランザクション処理 (OLTP) シナリオでは、ビジネステーブルへの応答を高速化するためにシャーディングが実装されます。 オンライン分析処理 (OLAP) シナリオでは、大量のデータを1つのテーブルに保存できます。 これにより、SQLクエリがより効率的になります。 同じスキーマを持つ複数のソーステーブルを1つのターゲットテーブルにマージできます。 この機能を使用すると、ソースデータベースの複数のテーブルのデータを、ターゲットデータベースの1つのテーブルに同期できます。 詳細については、「マルチテーブルマージ機能の有効化」をご参照ください。

        説明
        • ソースデータベースから複数のテーブルを選択した後、オブジェクト名マッピング機能を使用して、これらのテーブルの名前をターゲットテーブルの名前に変更する必要があります。 詳細については、「マップオブジェクト名」をご参照ください。

        • DTSは、__dts_data_sourceという名前の列を宛先テーブルに追加します。 この列は、データソースを記録するために使用されます。 この列のデータ型はTEXTです。 この列の値は、データ同期インスタンスID: ソースデータベース名: ソーススキーマ名: ソーステーブル名の形式です。 これにより、DTSは各ソーステーブルを識別できます。 例: dts ********:dtstestdata:testschema:customer1

        • このパラメーターを [はい] に設定すると、タスクで選択したすべてのソーステーブルがターゲットテーブルにマージされます。 特定のソーステーブルをマージする必要がない場合は、これらのテーブルに対して個別のデータ同期タスクを作成できます。

        警告

        ソースデータベースまたはテーブルのスキーマを変更するためのDDL操作を実行しないことをお勧めします。 そうしないと、データの不整合が発生したり、データ同期タスクが失敗したりします。

      • いいえ: この値はデフォルトで選択されています。

      DDL操作とDML操作の同期

      同期するためのDDLおよびDML操作。 詳細については、このトピックの「同期可能なSQL操作」をご参照ください。

      説明

      特定のデータベースまたはテーブルで実行されるSQL操作を選択するには、次の手順を実行します。[選択されたオブジェクト] セクションで、オブジェクトを右クリックします。 表示されるダイアログボックスで、同期するSQL操作を選択します。

      オブジェクトの選択

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

      説明

      同期するオブジェクトとして、列、テーブル、またはデータベースを選択できます。 同期するオブジェクトとしてテーブルまたは列を選択した場合、DTSはビュー、トリガー、ストアドプロシージャなどの他のオブジェクトをターゲットデータベースに同期しません。

      データベースとテーブルの名前変更

      • 同期先のインスタンスに同期するオブジェクトの名前を変更するには、選択中のオブジェクト セクションでオブジェクトを右クリックします。 詳細については、「オブジェクト名のマップ」トピックの「単一オブジェクトの名前のマップ」セクションをご参照ください。

      • 一度に複数のオブジェクトの名前を変更するには、選択中のオブジェクト セクションの右上隅にある 一括編集 をクリックします。 詳細については、「オブジェクト名のマップ」トピックの「一度に複数のオブジェクト名をマップする」セクションをご参照ください。

      フィルターデータ

      WHERE条件を指定してデータをフィルタリングできます。 詳細については、「フィルター条件の指定」をご参照ください。

      同期するSQL操作の選択

      [選択済みオブジェクト] セクションで、オブジェクトを右クリックします。 表示されるダイアログボックスで、同期するDML操作とDDL操作を選択します。 詳細については、このトピックの「同期可能なSQL操作」をご参照ください。

    • 詳細設定

      パラメーター

      説明

      Set Alerts

      データ同期タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、同期レイテンシが指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:

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

      失敗した接続のリトライ時間範囲。 データ同期タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位は分です。 デフォルト値: 720 このパラメーターを30より大きい値に設定することを推奨します。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。

      説明
      • ソースまたはターゲットデータベースが同じである複数のデータ同期タスクに対して異なるリトライ時間範囲を指定した場合、最も短いリトライ時間範囲が優先されます。

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

      オブジェクト名を引用マークで囲む

      オブジェクト名を引用符で囲むかどうかを指定します。 [はい] を選択し、次のいずれかの条件が満たされている場合、DTSは、スキーマ同期および増分データ同期中に、オブジェクト名を一重引用符 (') または二重引用符 (") で囲みます。

      • ソースデータベースのビジネス環境は大文字と小文字を区別しますが、データベース名には大文字と小文字の両方が含まれます。

      • ソーステーブル名は、文字で始まるのではなく、文字、数字、および特殊文字以外の文字が含まれます。

        説明

        ソーステーブル名には、アンダースコア (_) 、数字記号 (#) 、およびドル記号 ($) の特殊文字のみを含めることができます。

      • 同期するスキーマ、テーブル、または列の名前は、ターゲットデータベースのキーワード、予約済みキーワード、または無効な文字です。

      説明

      [はい] を選択した場合、データ同期タスクが完了したら、オブジェクトを照会するためにオブジェクト名を引用符で指定する必要があります。

  6. ページの下部で、[次へ]: [データベースフィールドとテーブルフィールドの設定] をクリックします。 表示されるページで、同期するテーブルのプライマリキー列と配布列をAnalyticDB for PostgreSQLインスタンスに設定します。

  7. タスク設定を保存し、事前チェックを実行します。

    • 関連するAPI操作を呼び出してDTSタスクを設定するときに指定するパラメーターを表示するには、ポインターを 次:タスク設定の保存と事前チェック に移動し、OpenAPI パラメーターのプレビュー をクリックします。

    • パラメーターを表示または表示する必要がない場合は、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

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

    • データ同期タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 チェック結果に基づいて原因を分析した後、問題のトラブルシューティングを行います。 次に、プレチェックを再実行します。

    • 事前チェック中にアイテムに対してアラートがトリガーされた場合:

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

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

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

  9. 購入ページで、データ同期インスタンスの課金方法とインスタンスクラスのパラメーターを設定します。 下表にパラメーターを示します。

    セクション

    パラメーター

    説明

    新しいインスタンスクラス

    Billing Method

    • サブスクリプション: データ同期インスタンスの作成時にサブスクリプションの料金を支払います。 サブスクリプションの課金方法は、長期使用の場合、従量課金の課金方法よりも費用対効果が高くなります。

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

    リソースグループの設定

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

    インスタンスクラス

    DTSは、同期速度が異なるインスタンスクラスを提供します。 ビジネス要件に基づいてインスタンスクラスを選択できます。 詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。

    サブスクリプション期間

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

    説明

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

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

  11. [購入して開始] をクリックします。 表示されるダイアログボックスで、OK をクリックします。

    タスクリストでタスクの進行状況を確認できます。