このトピックでは、自己管理 Oracle データベースからデータを同期する際の使用上の注意と制限について説明します。データ同期タスクが期待どおりに実行されるように、タスクを設定する前にこれらの注意と制限をお読みください。
Oracle データベースからのデータ同期のシナリオ
次のいずれかの同期シナリオをクリックすると、その使用上の注意と制限が表示されます。
自己管理 Oracle データベースから AnalyticDB for PostgreSQL インスタンスへのデータ同期
カテゴリ | 説明 |
ソースデータベースの制限 | 同期するオブジェクトの要件: 同期するテーブルには、PRIMARY KEY または UNIQUE 制約が必要で、すべてのフィールドが一意である必要があります。そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。 Oracle データベースのバージョンが 12c 以降の場合、同期するテーブルの名前は 30 バイトを超えることはできません。 同期するオブジェクトとしてテーブルを選択し、テーブル名や列名の変更など、ターゲットデータベースでテーブルを編集する場合、1 つのデータ同期タスクで最大 1,000 個のテーブルを同期できます。1,000 を超えるテーブルを同期するタスクを実行すると、リクエストエラーが発生します。この場合、テーブルを分割し、複数のタスクを設定してテーブルをバッチで同期するか、データベース全体を同期するタスクを設定することをお勧めします。
ソースデータベースが Express Connect 経由で接続された Oracle Real Application Cluster (RAC) データベースである場合、データ同期タスクを設定する際に、データベースの仮想 IP アドレス (VIP) を指定する必要があります。 自己管理 Oracle データベースが Oracle RAC データベースである場合、データ同期タスクを設定する際に、Single Client Access Name (SCAN) IP アドレスではなく VIP のみを使用できます。VIP を指定すると、Oracle RAC データベースのノードフェールオーバーはサポートされません。 REDO ログとアーカイブ ログ機能を有効にする必要があります。
説明 増分データ同期のみを実行する場合、ソースデータベースの REDO ログとアーカイブ ログは 24 時間以上保存する必要があります。完全データ同期と増分データ同期の両方を実行する場合、ソースデータベースの REDO ログとアーカイブ ログは少なくとも 7 日間保存する必要があります。そうしないと、DTS が REDO ログとアーカイブ ログを取得できず、タスクが失敗する可能性があります。例外的な状況では、データの不整合や損失が発生する可能性があります。完全データ同期が完了したら、保持期間を 24 時間以上に設定できます。前述の要件に従って REDO ログとアーカイブ ログの保持期間を設定してください。そうしないと、DTS のサービスレベルアグリーメント (SLA) に記載されているサービスの信頼性とパフォーマンスが保証されない場合があります。 データ同期タスクの実行中にソースデータベースでプライマリ/セカンダリのスイッチオーバーを実行すると、タスクは失敗します。 同期するデータに VARCHAR2 型の空の文字列 (Oracle は null として処理します) が含まれており、ターゲットデータベースの対応する列に非 NULL 制約がある場合、データ同期タスクは失敗します。 同期するテーブルで Fine-Grained Audit (FGA) ポリシーが有効になっている場合、DTS は ORA_ROWSCN 疑似列を検出できず、同期タスクが失敗します。
説明 同期するテーブルの FGA ポリシーを無効にするか、同期からテーブルを除外することができます。 データ同期中は、LONGTEXT フィールドを更新しないでください。更新すると、データ同期タスクは失敗します。 初期スキーマ同期および初期完全データ同期中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。実行すると、データ同期タスクは失敗します。
|
その他の制限 | DTS は、テーブル、制約、関数、シーケンス、ビューの各オブジェクトタイプの初期スキーマ同期をサポートしています。
警告 DTS は、初期スキーマ同期後にソースデータベースとターゲットデータベースのスキーマが一致することを保証しません。ビジネスへのデータ型変換の影響を評価することをお勧めします。そうしないと、データ同期タスクが失敗したり、データの不整合が発生したりする可能性があります。詳細については、「スキーマ同期のデータ型マッピング」をご参照ください。 外部テーブルは同期できません。 パッケージ、パッケージ本体、マテリアライズドビュー、シノニム、型、型本体、プロシージャ、およびインデックスは同期できません。 トリガーは同期できません。トリガーによるデータの不整合を防ぐために、ソースデータベースのトリガーを削除することをお勧めします。トリガーの同期方法の詳細については、「トリガーを含むソースデータベースのデータ同期または移行タスクを設定する」をご参照ください。 パーティションテーブルの場合、DTS はパーティション定義を破棄します。ターゲットデータベースでパーティションを定義する必要があります。 同期するオブジェクトとしてテーブルのみを選択できます。テーブルは追記最適化 (AO) テーブルであってはなりません。 非完全なテーブル同期に列マッピングが使用されている場合、またはソースとターゲットのテーブル構造が一致しない場合、ソースデータベースと比較してターゲットデータベースに存在しない列のデータは失われます。 ターゲットの AnalyticDB for PostgreSQL インスタンスは、文字列終端文字「\0」をサポートしていません。同期するデータに終端文字が含まれている場合、DTS は終端文字をターゲットデータベースに書き込みません。これにより、ソースデータベースとターゲットデータベース間でデータの不整合が発生します。 増分データ同期中は、Oracle Data Pump を使用してソースデータベースにデータを書き込むことはできません。書き込むと、データが失われる可能性があります。 データを同期する前に、データ同期がソースデータベースとターゲットデータベースのパフォーマンスに与える影響を評価してください。オフピーク時にデータを同期することをお勧めします。初期完全データ同期中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。 完全データ同期中、同時 INSERT 操作により、ターゲットデータベースのテーブルに断片化が発生します。完全データ同期が完了すると、ターゲットデータベースの使用済み表領域のサイズがソースデータベースのサイズよりも大きくなります。 DTS は、ターゲットデータベースで最後に同期されたデータのタイムスタンプとソースデータベースの現在のタイムスタンプに基づいて同期遅延を計算します。ソースデータベースで DML 操作が長期間実行されない場合、同期遅延が不正確になることがあります。同期タスクの遅延が過度に高い場合は、ソースデータベースで DML 操作を実行して遅延を更新できます。
説明 同期するオブジェクトとしてデータベース全体を選択した場合、ハートビートテーブルを作成できます。ハートビートテーブルは、毎秒更新されるか、データを受信します。 データ同期中は、DTS のみを使用してターゲットデータベースにデータを書き込むことをお勧めします。これにより、ソースデータベースとターゲットデータベース間のデータの不整合を防ぐことができます。たとえば、DTS 以外のツールを使用してターゲットデータベースにデータを書き込むと、Data Management (DMS) を使用してオンライン DDL 操作を実行するときに、ターゲットデータベースでデータが失われる可能性があります。 インスタンスに障害が発生した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。
説明 パラメーターが調整されるとき、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、インスタンスパラメーターの変更で説明されているものが含まれますが、これらに限定されません。
|
自己管理 Oracle データベースから Message Queue for Apache Kafka インスタンスまたは自己管理 Kafka クラスターへのデータ同期
カテゴリ | 説明 |
ソースデータベースの制限 | 同期するオブジェクトの要件: 同期するテーブルには、PRIMARY KEY または UNIQUE 制約が必要で、すべてのフィールドが一意である必要があります。そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。 Oracle データベースのバージョンが 12c 以降の場合、同期するテーブルの名前は 30 バイトを超えることはできません。 同期するオブジェクトとしてテーブルを選択し、テーブル名や列名の変更など、ターゲットデータベースでテーブルを編集する場合、1 つのデータ同期タスクで最大 1,000 個のテーブルを同期できます。1,000 を超えるテーブルを同期するタスクを実行すると、リクエストエラーが発生します。この場合、テーブルを分割し、複数のタスクを設定してテーブルをバッチで同期するか、データベース全体を同期するタスクを設定することをお勧めします。
ソースデータベースが Express Connect 経由で接続された Oracle RAC データベースである場合、データ同期タスクを設定する際に、データベースの仮想 IP アドレス (VIP) を指定する必要があります。 自己管理 Oracle データベースが Oracle RAC データベースである場合、データ同期タスクを設定する際に、Single Client Access Name (SCAN) IP アドレスではなく VIP のみを使用できます。VIP を指定すると、Oracle RAC データベースのノードフェールオーバーはサポートされません。 REDO ログとアーカイブ ログ機能を有効にする必要があります。
説明 増分データ同期のみを実行する場合、ソースデータベースの REDO ログとアーカイブ ログは 24 時間以上保存する必要があります。完全データ同期と増分データ同期の両方を実行する場合、ソースデータベースの REDO ログとアーカイブ ログは少なくとも 7 日間保存する必要があります。そうしないと、DTS が REDO ログとアーカイブ ログを取得できず、タスクが失敗する可能性があります。例外的な状況では、データの不整合や損失が発生する可能性があります。完全データ同期が完了したら、保持期間を 24 時間以上に設定できます。前述の要件に従って REDO ログとアーカイブ ログの保持期間を設定してください。そうしないと、DTS のサービスレベルアグリーメント (SLA) に記載されているサービスの信頼性とパフォーマンスが保証されない場合があります。 データ同期タスクの実行中にソースデータベースでプライマリ/セカンダリのスイッチオーバーを実行すると、タスクは失敗します。 同期するデータに VARCHAR2 型の空の文字列 (Oracle は null として処理します) が含まれており、ターゲットデータベースの対応する列に非 NULL 制約がある場合、データ同期タスクは失敗します。 同期するテーブルで Fine-Grained Audit (FGA) ポリシーが有効になっている場合、DTS は ORA_ROWSCN 疑似列を検出できず、同期タスクが失敗します。
説明 同期するテーブルの FGA ポリシーを無効にするか、同期からテーブルを除外することができます。 データ同期中は、LONGTEXT フィールドを更新しないでください。更新すると、データ同期タスクは失敗します。 初期スキーマ同期および初期完全データ同期中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。実行すると、データ同期タスクは失敗します。
|
その他の制限 | DTS は、名前が変更されたテーブルのデータをターゲットの Kafka クラスターに同期しません。これは、新しいテーブル名が同期対象のオブジェクトに含まれていない場合に適用されます。名前が変更されたテーブルのデータをターゲットの Kafka クラスターに同期するには、[同期オブジェクトの変更] 操作を実行する必要があります。詳細については、「データ同期タスクにオブジェクトを追加する」をご参照ください。 外部テーブルは同期できません。 インデックス、パーティション、ビュー、プロシージャ、関数、トリガー、外部キー、テーブルコメント、および列コメントは同期できません。 増分データ同期中は、Oracle Data Pump を使用してソースデータベースにデータを書き込むことはできません。書き込むと、データが失われる可能性があります。 データを同期する前に、データ同期がソースデータベースとターゲットデータベースのパフォーマンスに与える影響を評価してください。オフピーク時にデータを同期することをお勧めします。初期完全データ同期中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。 完全データ同期中、同時 INSERT 操作により、ターゲットデータベースのテーブルに断片化が発生します。完全データ同期が完了すると、ターゲットデータベースの使用済み表領域のサイズがソースデータベースのサイズよりも大きくなります。 DTS は、ターゲットデータベースで最後に同期されたデータのタイムスタンプとソースデータベースの現在のタイムスタンプに基づいて同期遅延を計算します。ソースデータベースで DML 操作が長期間実行されない場合、同期遅延が不正確になることがあります。同期タスクの遅延が過度に高い場合は、ソースデータベースで DML 操作を実行して遅延を更新できます。
説明 同期するオブジェクトとしてデータベース全体を選択した場合、ハートビートテーブルを作成できます。ハートビートテーブルは、毎秒更新されるか、データを受信します。 データ同期中は、DTS のみを使用してターゲットデータベースにデータを書き込むことをお勧めします。これにより、ソースデータベースとターゲットデータベース間のデータの不整合を防ぐことができます。たとえば、DTS 以外のツールを使用してターゲットデータベースにデータを書き込むと、DMS を使用してオンライン DDL 操作を実行するときに、ターゲットデータベースでデータが失われる可能性があります。 データ同期中に、ターゲットの Kafka クラスターがスケールアップまたはスケールダウンされた場合、インスタンスを再起動する必要があります。 インスタンスに障害が発生した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。
説明 パラメーターが調整されるとき、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、インスタンスパラメーターの変更で説明されているものが含まれますが、これらに限定されません。
|
自己管理 Oracle データベースから DataHub プロジェクトへのデータ同期
カテゴリ | 説明 |
ソースデータベースの制限 | 同期するオブジェクトの要件: 同期するテーブルには、PRIMARY KEY または UNIQUE 制約が必要で、すべてのフィールドが一意である必要があります。そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。 Oracle データベースのバージョンが 12c 以降の場合、同期するテーブルの名前は 30 バイトを超えることはできません。 同期するオブジェクトとしてテーブルを選択し、テーブル名や列名の変更など、ターゲットデータベースでテーブルを編集する場合、1 つのデータ同期タスクで最大 1,000 個のテーブルを同期できます。1,000 を超えるテーブルを同期するタスクを実行すると、リクエストエラーが発生します。この場合、テーブルを分割し、複数のタスクを設定してテーブルをバッチで同期するか、データベース全体を同期するタスクを設定することをお勧めします。
ソースデータベースが Express Connect 経由で接続された Oracle RAC データベースである場合、データ同期タスクを設定する際に、データベースの仮想 IP アドレス (VIP) を指定する必要があります。 自己管理 Oracle データベースが Oracle RAC データベースである場合、データ同期タスクを設定する際に、Single Client Access Name (SCAN) IP アドレスではなく VIP のみを使用できます。VIP を指定すると、Oracle RAC データベースのノードフェールオーバーはサポートされません。 REDO ログとアーカイブ ログ機能を有効にする必要があります。
説明 増分データ同期のみを実行する場合、ソースデータベースの REDO ログとアーカイブ ログは 24 時間以上保存する必要があります。完全データ同期と増分データ同期の両方を実行する場合、ソースデータベースの REDO ログとアーカイブ ログは少なくとも 7 日間保存する必要があります。そうしないと、DTS が REDO ログとアーカイブ ログを取得できず、タスクが失敗する可能性があります。例外的な状況では、データの不整合や損失が発生する可能性があります。完全データ同期が完了したら、保持期間を 24 時間以上に設定できます。前述の要件に従って REDO ログとアーカイブ ログの保持期間を設定してください。そうしないと、DTS のサービスレベルアグリーメント (SLA) に記載されているサービスの信頼性とパフォーマンスが保証されない場合があります。 データ同期タスクの実行中にソースデータベースでプライマリ/セカンダリのスイッチオーバーを実行すると、タスクは失敗します。 同期するデータに VARCHAR2 型の空の文字列 (Oracle は null として処理します) が含まれており、ターゲットデータベースの対応する列に非 NULL 制約がある場合、データ同期タスクは失敗します。 同期するテーブルで Fine-Grained Audit (FGA) ポリシーが有効になっている場合、DTS は ORA_ROWSCN 疑似列を検出できず、同期タスクが失敗します。
説明 同期するテーブルの FGA ポリシーを無効にするか、同期からテーブルを除外することができます。 データ同期中は、LONGTEXT フィールドを更新しないでください。更新すると、データ同期タスクは失敗します。 スキーマ同期中は、データベースまたはテーブルのスキーマを変更する DDL 文を実行しないでください。実行すると、データ同期タスクは失敗します。
|
その他の制限 | 構造初期化オブジェクトは TABLE です。 ターゲットの DataHub プロジェクト内の単一の文字列は、長さが 2 MB を超えることはできません。 外部テーブルは同期できません。 増分データ同期中は、Oracle Data Pump を使用してソースデータベースにデータを書き込むことはできません。書き込むと、データが失われる可能性があります。 DTS は、ターゲットデータベースで最後に同期されたデータのタイムスタンプとソースデータベースの現在のタイムスタンプに基づいて同期遅延を計算します。ソースデータベースで DML 操作が長期間実行されない場合、同期遅延が不正確になることがあります。同期タスクの遅延が過度に高い場合は、ソースデータベースで DML 操作を実行して遅延を更新できます。
説明 同期するオブジェクトとしてデータベース全体を選択した場合、ハートビートテーブルを作成できます。ハートビートテーブルは、毎秒更新されるか、データを受信します。 データ同期中は、DTS のみを使用してターゲットデータベースにデータを書き込むことをお勧めします。これにより、ソースデータベースとターゲットデータベース間のデータの不整合を防ぐことができます。たとえば、DTS 以外のツールを使用してターゲットデータベースにデータを書き込むと、DMS を使用してオンライン DDL 操作を実行するときに、ターゲットデータベースでデータが失われる可能性があります。 インスタンスに障害が発生した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。
説明 パラメーターが調整されるとき、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、インスタンスパラメーターの変更で説明されているものが含まれますが、これらに限定されません。
|
自己管理 Oracle データベースから PolarDB-X 2.0 インスタンスへのデータ同期
カテゴリ | 説明 |
ソースデータベースの制限 | 同期するオブジェクトの要件: 同期するテーブルには、PRIMARY KEY または UNIQUE 制約が必要で、すべてのフィールドが一意である必要があります。そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。 Oracle データベースのバージョンが 12c 以降の場合、同期するテーブルの名前は 30 バイトを超えることはできません。 同期するオブジェクトとしてテーブルを選択し、テーブル名や列名の変更など、ターゲットデータベースでテーブルを編集する場合、1 つのデータ同期タスクで最大 1,000 個のテーブルを同期できます。1,000 を超えるテーブルを同期するタスクを実行すると、リクエストエラーが発生します。この場合、テーブルを分割し、複数のタスクを設定してテーブルをバッチで同期するか、データベース全体を同期するタスクを設定することをお勧めします。
ソースデータベースが Express Connect 経由で接続された Oracle RAC データベースである場合、データ同期タスクを設定する際に、データベースの仮想 IP アドレス (VIP) を指定する必要があります。 自己管理 Oracle データベースが Oracle RAC データベースである場合、データ同期タスクを設定する際に、Single Client Access Name (SCAN) IP アドレスではなく VIP のみを使用できます。VIP を指定すると、Oracle RAC データベースのノードフェールオーバーはサポートされません。 REDO ログとアーカイブ ログ機能を有効にする必要があります。
説明 増分データ同期のみを実行する場合、ソースデータベースの REDO ログとアーカイブ ログは 24 時間以上保存する必要があります。完全データ同期と増分データ同期の両方を実行する場合、ソースデータベースの REDO ログとアーカイブ ログは少なくとも 7 日間保存する必要があります。そうしないと、DTS が REDO ログとアーカイブ ログを取得できず、タスクが失敗する可能性があります。例外的な状況では、データの不整合や損失が発生する可能性があります。完全データ同期が完了したら、保持期間を 24 時間以上に設定できます。前述の要件に従って REDO ログとアーカイブ ログの保持期間を設定してください。そうしないと、DTS のサービスレベルアグリーメント (SLA) に記載されているサービスの信頼性とパフォーマンスが保証されない場合があります。 データ同期タスクの実行中にソースデータベースでプライマリ/セカンダリのスイッチオーバーを実行すると、タスクは失敗します。 同期するデータに VARCHAR2 型の空の文字列 (Oracle は null として処理します) が含まれており、ターゲットデータベースの対応する列に非 NULL 制約がある場合、データ同期タスクは失敗します。 同期するテーブルで Fine-Grained Audit (FGA) ポリシーが有効になっている場合、DTS は ORA_ROWSCN 疑似列を検出できず、同期タスクが失敗します。
説明 同期するテーブルの FGA ポリシーを無効にするか、同期からテーブルを除外することができます。 データ同期中は、LONGTEXT フィールドを更新しないでください。更新すると、データ同期タスクは失敗します。 初期スキーマ同期および初期完全データ同期中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。実行すると、データ同期タスクは失敗します。
|
その他の制限 | 増分データ同期中は、Oracle Data Pump を使用してソースデータベースにデータを書き込むことはできません。書き込むと、データが失われる可能性があります。 データを同期する前に、データ同期がソースデータベースとターゲットデータベースのパフォーマンスに与える影響を評価してください。オフピーク時にデータを同期することをお勧めします。初期完全データ同期中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。 外部テーブルは同期できません。 DTS は、ターゲットデータベースで最後に同期されたデータのタイムスタンプとソースデータベースの現在のタイムスタンプに基づいて同期遅延を計算します。ソースデータベースで DML 操作が長期間実行されない場合、同期遅延が不正確になることがあります。同期タスクの遅延が過度に高い場合は、ソースデータベースで DML 操作を実行して遅延を更新できます。
説明 同期するオブジェクトとしてデータベース全体を選択した場合、ハートビートテーブルを作成できます。ハートビートテーブルは、毎秒更新されるか、データを受信します。 データ同期中は、DTS のみを使用してターゲットデータベースにデータを書き込むことをお勧めします。これにより、ソースデータベースとターゲットデータベース間のデータの不整合を防ぐことができます。たとえば、DTS 以外のツールを使用してターゲットデータベースにデータを書き込むと、DMS を使用してオンライン DDL 操作を実行するときに、ターゲットデータベースでデータが失われる可能性があります。 インスタンスに障害が発生した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。
説明 パラメーターが調整されるとき、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、インスタンスパラメーターの変更で説明されているものが含まれますが、これらに限定されません。
|