限制與非支援的物件與作業
GoldenGate Replicat 包含 Google Cloud Spanner 中相同的限制。應用程式開發人員應瞭解這些限制,並需要相應地設計其應用程式載入。
以下是 Oracle GoldenGate Replicat for Google Spanner 在目前版本中不支援的作業:
-
預覽版次不支援平行 Replicat。
-
Google Cloud Spanner 的 Replicat 不支援 DDL 複製。
-
不支援 SQLEXEC。
-
不支援自動結構描述發展。
-
Google Cloud Spanner 的 Replicat 不支援「衝突偵測與解決」。
-
Oracle GoldenGate Replicat 不支援強制參照完整性限制條件 (
ON DELETE CASCADE和ON DELETE NO ACTION) 之表格的PKUPDATE。 -
Google Spanner 的 Replicat 不支援
SUSPEND EVENT ACTION,因為 Google Cloud Spanner 資料庫會自動中止任何閒置超過 10 秒且不支援任何允許增加 10 秒閒置逾時之組態的「讀取 / 寫入」交易。如果您使用SUSPEND作為事件動作,交易將保持開啟超過 10 秒,並將在RESUME自動中止。在這種情況下,您可以在
ABORTED錯誤 (錯誤代碼 10) 上使用REPERROR RETRY規則,在 Replicat 遇到中止的交易時重試交易。這也適用於在超過 10 秒後重試 DML 的每個 DMLREPERROR RETRY規則,會導致 Spanner 自動中止進行中的交易。 -
如果 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 僅支援 Oracle GoldenGate Replicat 不支援 Extract,因此 TimesTen 和 Teradata 資料庫之類的 Google Spanner 明確不支援
TARGETONLY/NOTARGETONLY參數。 -
Oracle GoldenGate 僅支援在 Google Spanner 上傳遞,因此不需使用任何事件或工作排程器填入或更新活動訊號表的機制。
-
Google Spanner 不支援
ADD HEARTBEATTABLE指令搭配FREQUENCY、PURGE_FREQUENCY或RETENTION_TIME選項。使用ADD HEARTBEATTABLE指令指定這些選項中的任何一個時,會顯示一則資訊訊息,指出已忽略該選項。 -
Google Spanner 不支援活動訊號工作和頻率,因此 Google Spanner 不支援
ALTER HEARTBEATTABLE命令。如果使用,則不會以無訊息方式忽略指令。 -
掃描器沒有任何內部事件或工作排程器,因此無法自動永久清除活動訊號歷史記錄表格。您必須明確截斷對應的活動訊號物件。
-
-
如果交易造成超過 80,000 個變化,Spanner 會傳回錯誤,且 Replicat 會異常中止。
同樣地,Spanner 的交易大小為 100 MiB,如果交易寫入的資料超過 100 MiB (包括索引和變更串流),則該交易會失敗,且 Replicat 會因發生錯誤而中止。
若要處理 Spanner 的 80000 mutation/100MB 交易限制,您必須先使用 Replicat 參數
MAXTRANSOPS將大型來源交易分割成較小的目標批次,才能達到 Spanner 的確認限制。 -
跨度程式會強制讀寫交易從開始到完成都看到單一且一致的綱要版本。當 DDL 敘述句 (資料庫中的任何表格 / 索引) 確認時,資料庫的綱要版本會繼續進行。在舊版下啟動的交易因錯誤而中止,表示結構變更。中止是依設計來處理,其處理方式與其他可重試中止類似,因為競爭或暫時性錯誤。若要從此錯誤復原,請等待進行中的 DDL 作業完成,然後重新啟動 Replicat。