制限事項およびサポートされていないオブジェクトおよび操作
GoldenGate Replicatには、Google Cloud Spannerと同じ制限があります。アプリケーション開発者は、これらの制限に注意し、それに応じてアプリケーション負荷を設計する必要があります。
現在のリリースでは、Oracle GoldenGate Replicat for Google Spannerでサポートされていない操作を次に示します。
-
パラレルReplicatは、プレビュー・リリースではサポートされていません。
-
DDLレプリケーションは、Google Cloud SpannerのReplicatではサポートされません。
-
SQLEXECはサポートされていません。
-
スキーマの自動展開はサポートされていません。
-
競合検出および解決は、Google Cloud SpannerのReplicatではサポートされていません。
-
Oracle GoldenGate Replicatでは、参照整合性制約(
ON DELETE CASCADEとON DELETE NO ACTIONの両方)が適用された表に対してPKUPDATEはサポートされません。 -
Google Cloud SpannerデータベースのReplicatは
SUSPEND EVENT ACTIONをサポートしていません。これは、Google Cloud Spannerデータベースによって、アイドル状態が10秒を超え、アイドル・タイムアウトを10秒増加させる構成がサポートされていない読取り/書込みトランザクションが自動中断されるためです。SUSPENDをイベント・アクションとして使用すると、トランザクションは10秒を超えてオープンしたままになり、RESUMEで自動中断されます。このような場合、
ABORTEDエラー(エラー・コード10)に対してREPERROR RETRYルールを使用して、Replicatが中断されたトランザクションを検出したときにトランザクションを再試行できます。これは、10秒を超えてDMLを再試行すると、Spannerによって進行中のトランザクションが自動中断されるDMLREPERROR RETRYルールにも適用されます。 -
SpannerのReplicatで、外部キーが適用されている表が見つかった場合は、次のエラーで異常終了します。
Google Spanner does not natively support PKUpdate. The PKUpdate operation is implemented in GoldenGate as DELETE followed by INSERT OR IGNORE operation. If the table contains enforced foreign key, PKUpdate (delete followed by insert) might unintentionally delete the records from the child table. In this case, you can take any of the following actions to continue: 1. If you do not intend to perform PKUpdate on table, use ALLOW_ENFORCED_FK in the Replicat parameter file. 2. Modify the enforced foreign keys to informational foreign keys 3. If the table is not required, exclude the target table from Replicat mapping to continue. -
ハートビート可能なサポートの制限に関する詳細は、次のとおりです。
-
Google Spannerでは、ExtractではなくOracle GoldenGate Replicatのみがサポートされるため、TimesTenデータベースやTeradataデータベースのように、
TARGETONLY/NOTARGETONLYパラメータはGoogle Spannerでは明示的にサポートされません。 -
Oracle GoldenGateは、Google Spannerでの配信のみサポートします。ジョブまたはイベント・スケジューラを使用してハートビート表を移入または更新するメカニズムは必要ありません。
-
FREQUENCY、PURGE_FREQUENCYまたはRETENTION_TIMEオプションを指定してADD HEARTBEATTABLEコマンドは、Google Spannerではサポートされません。これらのオプションのいずれかをADD HEARTBEATTABLEコマンドで指定すると、そのオプションは無視されるという情報メッセージが表示されます。 -
ハートビート・ジョブおよび頻度は、Google Spannerではサポートされていないため、
ALTER HEARTBEATTABLEコマンドはGoogle Spannerではサポートされません。使用すると、コマンドは暗黙的に無視されます。 -
スパナには、内部イベントやジョブ・スケジューラが存在しないため、ハートビート履歴表の自動パージは実行されません。対応するハートビート・オブジェクトを明示的に切り捨てる必要があります。
-
-
トランザクションによって80,000を超える突然変異が発生した場合、Spannerはエラーを返し、Replicatはそのエラーで異常終了します。
同じように、Spannerのトランザクション・サイズは100 MiBで、トランザクションによって書き込まれるデータが100 MiB (索引および変更ストリームを含む)を超えると、そのトランザクションは失敗し、Replicatはエラーで異常終了します。
Spannerの80000ミューテーション/100MBトランザクション制限を処理するには、Spannerのコミット制限に達する前に、Replicatパラメータ
MAXTRANSOPSを使用して大きなソース・トランザクションを小さなターゲット・バッチに分割する必要があります。 -
Spannerでは、読取り/書込みトランザクションに、最初から最後まで1つの一貫性のあるスキーマ・バージョンが表示されるように強制されます。DDL文(データベース内の任意の表/索引)がコミットされると、データベースのスキーマ・バージョンが進みます。前のバージョンで開始されたトランザクションは、スキーマの変更を示すエラーで中止されます。中断は設計によって行われ、競合または一時的なフォルトによる他の再試行可能な中断と同様に処理されます。このエラーからリカバリするには、進行中のDDL操作が完了するまで待機してから、Replicatを再起動します。