在 Replicat 中處理 Google Spanner 的暫時和永久錯誤

Google Spanner 有兩種類型的錯誤: transient 或 permanent 。可以重試暫時錯誤時,無法只透過重試來解決永久錯誤。它需要先執行更正動作,再重試交易。

瞭解 Oracle GoldenGate Replicat 中暫時和永久錯誤及其處理的詳細資訊。

處理 Google Spanner 的 DML 作業期間的 Replicat 錯誤

在「跨度」中,如果 DML 在交易中造成錯誤 (不論是暫時或永久),則該交易會變成無效且無法使用。相同的交易便無法部份確認,也無法重試。

該交易中的所有 DML 都必須使用新的交易物件重試。只能在無效的交易中重試失敗的 DML。

對於重複的主索引鍵與找不到資料列,應使用 DML 層次 REPERROR 錯誤。對於所有其他 Google Cloud Spanner 錯誤,會使用交易層級 REPERROR 處理。

對於 Spanner 的所有其他錯誤,只支援交易層次 REPERROR 處理。Google Cloud Spanner 支援的 REPERROR 動作為 TRANSDISCARD、TRANSEXCEPTION、TRANSABORT。

請參閱 Oracle GoldenGate 的參數和函數參照中的 REPERROR 。

處理暫時錯誤

暫時錯誤表示重試時有機會成功的暫時條件。偵測到這類錯誤時,強烈建議您使用 REPERROR 重試交易。

以下是處理暫時錯誤的 REPERROR 策略:

語法:

REPERROR (*status code*, TRANSABORT, MAXRETRIES *n*, DELAYSECS *n*)

處理永久錯誤

偵測到永久錯誤時,Oracle GoldenGate Replicat 會在倒回交易後出現錯誤。您必須先修正 Spanner 資料庫中的基礎問題,才能重新啟動 Replicat。