OPTIONS D'EXTRACTION
Durée de validité
Extraction
Description
Utilisez le paramètre FETCHOPTIONS pour contrôler certains aspects de la façon dont Oracle GoldenGate extrait les données dans les cas suivants :
-
Lorsque l'enregistrement de transaction ne contient pas suffisamment d'informations pour que l'extraction reconstitue une opération de mise à jour.
-
Lorsqu'Oracle GoldenGate doit extraire une valeur de colonne à la suite d'une clause
MISSINGCOLSd'une instructionTABLE.
FETCHOPTIONS est propre à une table. Une instruction FETCHOPTIONS s'applique à toutes les instructions TABLE suivantes jusqu'à ce qu'une autre instruction FETCHOPTIONS soit rencontrée.
Les propriétés d'extraction par défaut conviennent à la plupart des installations.
Valeur par défaut
Ignorer les lignes manquantes et poursuivre le traitement
Syntaxe
FETCHOPTIONS
[, FETCHPKUPDATECOLS]
[, MISSINGCOLS]
[, INCONSISTENTROW <action>]
[, MAXFETCHSTATEMENTS <number>]
[, MISSINGROW <action>]
[, NOFETCH]
[, SUPPRESSDUPLICATES]
[, USEKEY | NOUSEKEY]
[, USELATESTVERSION | NOUSELATESTVERSION]
[, USESNAPSHOT | NOUSESNAPSHOT]
[, USEROWID | NOUSEROWID]
FETCHPKUPDATECOLS
Extrait toutes les colonnes non disponibles lorsqu'une clé primaire est mise à jour. Cette option est désactivée par défaut. Lorsque cette option est désactivée, l'extraction de colonne est effectuée en fonction des autres options FETCHOPTIONS activées.
Lorsque cette option est activée, elle ne prend effet que lors de la mise à jour d'une colonne de clé primaire. Les résultats sont identiques à ceux de l'utilisation d'un astérisque (*) dans l'instruction TABLE. Les colonnes LOB sont incluses dans l'extraction.
Utilisez ce paramètre lorsque vous utilisez HANDLECOLLISIONS. Lorsque le processus Replicat détecte une mise à jour manquante, toutes les colonnes sont disponibles pour transformer la mise à jour en insertion.
MISSINGCOLS
Extrait les colonnes manquantes des opérations de mise à jour et de suppression, y compris les colonnes LOB. Cette option n'est valide que pour Oracle AI Database. Elle peut avoir un impact négatif sur les performances de la base de données et de l'extraction en raison de requêtes supplémentaires pour extraire les données. Surtout si des valeurs LOB volumineuses doivent être extraites et écrites dans la trace.
La définition de ce paramètre est identique à celle des paramètres suivants :
MISSINGCOLS(*) in the TABLE statement
NOCOMPRESSDELETES FETCHMISSINGCOLS
GETUPDATEBEFORES
NOCOMPRESSUPDATES
LOGALLSUPCOLS
Toutefois, la définition de FETCHOPTIONS MISSINGCOLS est en conflit avec les paramètres suivants :
FETCHOPTIONS NOFETCH
FETCHOPTIONS FETCHPKUPDATECOLS
COMPRESSDELETES
COMPRESSUPDATES
GETUPDATEBEFORES
LOGALLSUPCOLS
INCONSISTENTROW <action>
Indique que les données de colonne ont été extraites par la ligne ID, mais la clé ne concorde pas. La ligne ID a été recyclée ou une mise à jour de clé primaire s'est produite après cette opération (et avant l'extraction).
<action> peut être l'une des valeurs suivantes :
ALLOW
Autorisez la condition et poursuivez le traitement.
IGNORE
Ignorez la condition et poursuivez le traitement. Il s'agit de la fonction par défaut.
REPORT
Signalez la condition et le contenu de la ligne dans le fichier de rebut, mais continuez à traiter la ligne partielle.
DISCARD
Ignorez les données et ne traitez pas la ligne partielle.
ABEND
Supprimez les données et quittez le traitement.
MAXFETCHSTATEMENTS <number>
Contrôle le nombre maximal autorisé de requêtes préparées pouvant être utilisées par le processus Extract pour extraire des données de ligne d'une base de données source. Les données extraites sont utilisées lorsqu'il n'y a pas assez d'informations disponibles pour construire une instruction SQL logique à partir d'un enregistrement de journal de transactions. Les requêtes sont préparées et mises en cache selon les besoins. Lorsque la valeur définie avec MAXFETCHSTATEMENTS est atteinte, la requête la plus ancienne est remplacée par la plus récente. La valeur de ce paramètre contrôle le nombre de curseurs ouverts gérés par le processus Extract pour les requêtes d'extraction uniquement. Les curseurs supplémentaires peuvent être utilisés par le processus Extract à d'autres fins, telles que celles requises pour les procédures stockées. Ce paramètre n'est valide que pour Oracle AI Database. La valeur par défaut est 100 instructions. Assurez-vous que la base de données peut prendre en charge le nombre de curseurs indiqués, ainsi que les curseurs utilisés par d'autres applications et processus.
MISSINGROW <action>
Fournit une réponse lorsqu'Oracle GoldenGate ne parvient pas à localiser une ligne à extraire, ce qui rend seulement une partie de la ligne (les valeurs modifiées) disponible pour traitement. En général, une ligne ne peut pas être localisée car elle a été supprimée entre la création de l'enregistrement de modification et le déclenchement de l'extraction, ou parce que l'image de ligne requise était antérieure à la spécification de conservation des informations d'annulation.
<action> peut être l'une des valeurs suivantes :
ALLOW
Autorisez la condition et poursuivez le traitement. Il s'agit de la fonction par défaut.
IGNORE
Ignorez la condition et poursuivez le traitement.
REPORT
Signalez la condition et le contenu de la ligne dans le fichier de rebut, mais continuez à traiter la ligne partielle.
DISCARD
Ignorez les données et ne traitez pas la ligne partielle.
ABEND
Supprimez les données et quittez le traitement.
NOFETCH
Empêche le processus Extract d'extraire la colonne de la base de données. Cette option est désactivée par défaut. L'extraction écrit l'enregistrement dans la trace, mais insère un jeton indiquant que la colonne est manquante.
SUPPRESSDUPLICATES
Valide pour Oracle. Evite que les tablespaces cible deviennent trop volumineux lorsque des mises à jour sont effectuées sur les colonnes LOB. Par défaut, SUPPRESSDUPLICATES est défini sur Off (désactivé). Par exemple, après la réplication, un tablespace source de 232 Mo devient un tablespace cible de 7.52GB.
USEKEY |
NOUSEKEY |
Détermine si Oracle GoldenGate utilise ou non la clé primaire pour localiser la ligne à extraire.
Si USEKEY et USEROWID sont indiqués, ROWID est prioritaire pour un accès plus rapide à l'enregistrement. USEROWID est la valeur par défaut.
USELATESTVERSION |
NOUSELATESTVERSION |
Valide pour Oracle. A utiliser avec USESNAPSHOT. La valeur par défaut, USELATESTVERSION, indique au processus Extract d'extraire les données de la table source s'il ne peut pas les extraire du tablespace d'annulation. NOUSELATESTVERSION indique à l'extraction d'ignorer la condition en cas d'échec de l'extraction de cliché et de poursuivre le traitement.
Pour fournir une autre action si une extraction de cliché échoue, utilisez l'option MISSINGROW.
USESNAPSHOT |
NOUSESNAPSHOT |
Valide pour Oracle. La valeur par défaut, USESNAPSHOT, permet au processus d'extraction d'utiliser le mécanisme Oracle Flashback pour extraire le cliché de données approprié nécessaire à la reconstruction de certaines opérations qui ne peuvent pas être entièrement capturées à partir de l'enregistrement redo. NOUSESNAPSHOT permet au processus Extract d'extraire les données requises de la table source au lieu des journaux Flashback.
USEROWID |
NOUSEROWID |
Valide pour Oracle. Détermine si Oracle GoldenGate utilise ou non la ligne ID pour localiser la ligne à extraire.
Si USEKEY et USEROWID sont indiqués, ROWID est prioritaire pour un accès plus rapide à l'enregistrement. USEROWID est la valeur par défaut.
Exemples
Exemple 1
La commande suivante indique au processus Extract d'extraire des données à l'aide de Flashback Query, d'ignorer la condition et de poursuivre le traitement de l'enregistrement en cas d'échec de l'extraction.
FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION
Exemple 2
MAXFETCHSTATEMENTS 150
Exemple 3
La commande suivante indique au processus Extract d'extraire des données à l'aide de Flashback Query et entraîne l'abandon du processus Extract si les données ne sont pas disponibles.
FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW ABEND