Gestion des erreurs temporaires et permanentes dans Replicat pour Google Spanner
Google Spanner a deux catégories d'erreurs : transient ou permanent. Bien que les erreurs transitoires puissent faire l'objet d'une nouvelle tentative, les erreurs permanentes ne peuvent pas être résolues simplement par une nouvelle tentative. Elle nécessite l'exécution de l'action corrective avant de relancer la transaction.
Découvrez les détails des erreurs transitoires et permanentes et leur gestion dans Oracle GoldenGate Replicat.
Gestion des erreurs de réplication lors des opérations LMD pour Google Spanner
Dans Spanner, si une instruction LMD génère une erreur (transitoire ou permanente) dans une transaction, celle-ci devient non valide et inutilisable. La même transaction ne peut alors pas être validée partiellement ni faire l'objet d'une nouvelle tentative.
Toutes les instructions LMD de cette transaction doivent faire l'objet d'une nouvelle tentative à l'aide d'un nouvel objet de transaction. Seule la DML défaillante ne peut pas faire l'objet d'une nouvelle tentative dans une transaction non valide.
Pour la clé primaire en double et les erreurs de ligne introuvables, le niveau LMD REPERROR doit être utilisé. Pour toutes les autres erreurs Google Cloud Spanner, la gestion du niveau de transaction REPERROR est utilisée.
Pour toutes les autres erreurs de Spanner, seule la gestion de niveau transaction REPERROR est prise en charge. Les actions REPERROR prises en charge pour Google Cloud Spanner sont TRANSDISCARD, TRANSEXCEPTION, TRANSABORT.
Reportez-vous à REPERROR dans la référence des paramètres et des fonctions pour Oracle GoldenGate.
Gérer les erreurs temporaires
Les erreurs transitoires indiquent des conditions temporaires qui ont de grandes chances de succès lors d'une nouvelle tentative. Lors de la détection de ces erreurs, il est fortement recommandé de réessayer la transaction avec REPERROR.
La stratégie REPERROR de gestion des erreurs non persistantes est la suivante :
Syntaxe :
REPERROR (*status code*, TRANSABORT, MAXRETRIES *n*, DELAYSECS *n*)
-
TRANSABORT: relancez l'intégralité de la transaction. -
MAXRETRIES: résolution dans les 3 à 5 tentatives. -
DELAYSECS: annulation appliquée par le processus Replicat.
Gérer les erreurs permanentes
Lorsque des erreurs permanentes sont détectées, le processus Replicat Oracle GoldenGate s'interrompt avec une erreur après l'annulation de la transaction. Vous devez résoudre le problème sous-jacent dans la base de données Spanner avant de redémarrer la réplication.