ALTER EXTRACT

Utilisez ALTER EXTRACT pour les raisons suivantes :

Avant d'utiliser cette commande, arrêtez l'extraction à l'aide de La commande STOP EXTRACT group_name.

Syntaxe

ALTER EXTRACT group-name
         [, BEGIN {NOW | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]} |
|            [, EXTRBA archive-offset-number]
|            [, ADD_EXTRACT_attribute  | SCN value]
|            [, LSN
|            [, EOL
|            [, DESC
|            [ CRITICAL    [ YES | NO ]     ]
|            [ ENCRYPTIONPROFILE     encryption-profile-name]
|            [ PROFILE
|                [ AUTOSTART   [ YES | NO ]
|                  [ DELAY     delay-number   ] ]
|                  [ AUTORESTART [ YES | NO ]
|                       [ RETRIES          retries-number ]
|                       [ WAITSECONDS      wait-number    ]
|                       [ RESETSECONDS     reset-number   ]
|                       [ DISABLEONFAILURE [ YES | NO ] ] ] ]
|             [ LOGNUM lognum]
|             [ LOGPOS logpos

Les options ALTER EXTRACT suivantes sont prises en charge pour Db2 afin que i puisse positionner l'extraction pour un journal précis :

ALTER EXTRACT {BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]Z]}
[JOURNAL journal_library/journal_name [JRNRCV receiver_library/
  receiver_name]] |
, EOL [JOURNAL journal_library/journal_name
  [JRNRCV receiver_library/receiver_name]] |
, SEQNO sequence_number [JOURNAL journal_library/journal_name
  [JRNRCV receiver_library/receiver_name]]}

BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]]Z} [JOURNAL journal_library/journal_name [JRNRCV receiver_library/ receiver_name]] | , EOL [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]] | , SEQNO sequence_number [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]]

Ces options IBM for i permettent d'activer l'extraction pour un journal précis après l'émission du point du départ global à l'aide de ADD EXTRACT. La position d'un journal précis définie à l'aide de la commande, ALTER EXTRACT, n'a aucune incidence sur les postes globaux définis antérieurement par, ADD EXTRACT ou ALTER EXTRACT. Toutefois, une position globale définie par, ALTER EXTRACT remplace toutes les postes de journal précis préalablement définies dans la même configuration d'extraction.

Remarque : SEQNO, lorsqu'il est utilisé avec un journal dans `ALTER

          EXTRACT`, is the journal sequence number that is relative to that specific journal, not the system sequence number that is global across journals.
          {: .infoboxnote}

group-name

Nom du groupe d'extraction à modifier.

{BEGIN {NOW Tyyyy-mm-dd[ hh:mi:[ss[.cccccc]]]Z}

NOW

Pour toutes les bases de données à l'exception de Db2 LUW, NOW indique l'heure à laquelle la commande ALTER EXTRACT est émise.

NOW indique l'heure à laquelle la commande ALTER EXTRACT est émise.

Pour DB2 LUW, seuls les enregistrements de validation et d'arrêt de transaction contiennent des horodatages. La position de départ d'extraction ne peut donc être calculée que par rapport à ces horodatages. Il s'agit d'une limite de l'API utilisée par Oracle GoldenGate. Le positionnement en fonction de l'horodatage n'est pas précis et peut de plus prendre un certain temps. Il est recommandé d'utiliser les options LRI ou EOL dès que cela peut être possible.

YYYY-MM-DDThh:mm:ssZ

Date et heure (horodatage) au format indiqué. Par exemple, 2017-07-14T14:54:45Z.

yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]

Date et heure (horodatage) au format indiqué. Pour une extraction Oracle en mode intégré, la valeur d'horodatage doit être supérieure à l'horodatage de l'inscription de l'extraction auprès de la base de données.

Les caractéristiques suivantes de SQL Server ont une incidence sur le positionnement en fonction de l'horodatage dans un journal de transaction SQL Server :

Le positionnement à un numéro de séquence de journal est précis.

Le positionnement en fonction de l'horodatage dans PostgreSQL comprend les scénarios suivants :

START

Valide pour PostgreSQL.

Ajoute une extraction sans mentionner BEGIN NOW ou LSN. L'extraction démarrera automatiquement à partir de la position de redémarrage de l'emplacement de réplication.

ADD_EXTRACT_attribute

Vous pouvez modifier tous les attributs indiqués avec la commande ALTER EXTRACT, sauf les suivants :

Pour ces exceptions, supprimez le groupe d'extraction, puis ajoutez-le à nouveau.

Si vous utilisez l'option BEGIN, ne combinez pas d'autres options dans l'instruction. Emettez des instructions distinctes, par exemple :

ALTER EXTRACT exte, BEGIN 2019-01-01
ALTER EXTRACT exte, ETROLLOVER
ALTER EXTRACT exte, SCN 789000

Si vous utilisez l'option SCN ou BEGIN pour une extraction intégrée, la commande a besoin d'une valeur DBLOGIN, et la valeur de num. SCN ou d'horodatage indiquée ne peut pas être inférieure au premier num. SCN ou horodatage du serveur sortant. Pour chercher le premier SCN de serveur sortant, émettez la commande suivante :

INFO EXTRACT group_name, SHOWCH DETAIL

La valeur du premier numéro SCN est répertoriée comme dans l'exemple suivant :

Integrated Extract outbound server first scn: 0.665884 (665884)

EXTRBA offset_number

Valide pour DB2 z/OS.

Indique l'adresse d'octet relative dans un journal de transaction à partir de laquelle démarrer la capture des données.

Le format requis est le suivant :0Xnnn, où nnn est un nombre hexadécimal de 1 à 20 chiffres (le premier caractère est le chiffre zéro, le deuxième peut être la lettre x majuscule ou minuscule).

EOL

Valide pour DB2 for i, DB2 LUW, MySQL, PostgreSQL et SQL Server.

Configure le traitement de sorte qu'il démarre à la fin des fichiers journaux (ou journaux) dans lesquels l'enregistrement suivant sera écrit. Les éventuelles transactions actives ne sont pas capturées.

Pour Db2 LUW, cette option configure l'exécution de sorte qu'elle démarre à la valeur LRI active dans les fichiers journaux. La valeur LRI active correspond à la position à la fin des fichiers journaux dans lesquels l'enregistrement suivant sera écrit. Les éventuelles transactions actives ne sont pas capturées.

Pour PostgreSQL, la commande DBLOGIN est requise pour la position en fonction de la valeurEOL.

Pour MySQL, cette option détecte la position correspondant à la fin du fichier et démarre la lecture des transactions à partir de ce point. La position EOL n'est pas parfaitement exacte si des données sont continuellement écrites dans le journal binaire.

TRANLOG LRI LRI_number

(DB2 LUW) Vous pouvez utiliser cette option avec les systèmes DB2 LUW afin d'indiquer la valeur d'enregistrement LRI pour le journal de transactions de point de reprise.

Pour PostgreSQL, la commande DBLOGIN est requise pour la position en fonction de la valeurEOL.

REPORT file_name

Indique le nom de chemin complet d'un fichier d'état Extract dans un emplacement autre que l'emplacement dirrpt par défaut du répertoire Oracle GoldenGate.

SCN value

Valide pour Oracle.

Démarre l'extraction au niveau de la transaction dans le fichier de journalisation correspondant au numéro de modification système (SCN) Oracle indiqué. Pour une extraction, la valeur du numéro SCN doit être supérieure au numéro SCN de l'inscription de l'extraction auprès de la base de données. Pour l'option SCN ou BEGIN, DBLOGIN est requise, et la valeur de num. SCN ou d'horodatage indiquée ne peut pas être inférieure au premier num. SCN ou horodatage du serveur sortant.

LSN value

Valide pour DB2 z/OS, PostgreSQL et SQL Server.

Indique la transaction LSN à laquelle démarrer la capture des données. L'alias de cette option est EXTLSN.

Pour Db2 z/OS, la valeur LSN peut être une série de chiffres hexadécimaux ou une série de chiffres décimaux. S'il est au format hexadécimal, le préfixe 0X ou 0x doit être suivi de 1 à 20 chiffres hexadécimaux (0-9, a-g ou A-G). Si la valeur est au format décimal, elle ne contient aucun préfixe, et comporte entre 1 et 25 chiffres décimaux (0-9).

Pour PostgreSQL, la valeur LSN peut être hi ou lo. Définissez la valeur sur hi pour le point d'entrée du fichier journal. Lo correspond à la position dans le fichier journal. la position LSN doit se situer entre la position du redémarrage d'emplacement de réplication et l'emplacement en cours de journal à écriture anticipée. Si la position indiquée existe dans la plage mentionnée, l'extraction génère une erreur.

Pour SQL Server, LSN indique la transaction LSN à laquelle démarrer la capture des données. L'alias de cette option est EXTLSN.

La valeur de LSN indiquée doit exister en tant que valeur de tran_begin_lsn valide dans la table système cdc.lsn_time_mapping, sinon l'extraction tentera d'effectuer le positionnement après la valeur LSN fournie.

Les spécifications LSN valides pour SQL Server sont les suivantes :

Pour connaître la valeur LSN minimale disponible, effectuez la requête suivante :

SELECT min([tran_begin_lsn]) FROM [cdc].[lsn_time_mapping] with (nolock) where tran_id <> 0x00

Les exemples suivants illustrent l'utilisation de la valeur LSN pour Db2 z/OS :

Exemple 1 :

ALTER EXTRACT extn TRANLOG, LSN 0xDEE40E4F27A3245400

Exemple 2 :

ALTER EXTRACT extn TRANLOG, LSN 22216433159121980904448

L'exemple suivant illustre la valeur LSN pour SQL Server :

ALTER EXTRACT extn TRANLOG, LSN 0X00000d7e:0000036b:0001

LOGNUM

Valide pour MySQL.

Il s'agit du numéro de fichier journal. Par exemple, si le nom du fichier journal requis est test.000034, la valeur LOGNUM est 34. L'extraction recherchera ce fichier journal. Remarque : dans l'architecture de microservices, ALTER EXTRACT échoue si la valeur LOGNUM contient des zéros précédant la valeur. Par exemple, ALTER EXTRACT ext1, TRANLOG, LOGNUM 000001, LOGPOS 0 échouera. Définissez LOGNUM sur 1 pour que cet exemple aboutisse.

LOGPOS

Valide pour MySQL.

Il s'agit d'une valeur de position d'événement dans le fichier journal qui identifie un enregistrement de transaction spécifique. Les valeurs de position d'événement sont stockées dans la section d'en-tête d'un enregistrement de journal. pour vous positionner au début d'un fichier binlog, définissez LOGPOS sur 0.

ETROLLOVER

Utilisez cette commande en cas de récupération manuelle nécessitant le repositionnement et la régénération des fichiers trace pour une extraction principale et lors de la mise à niveau d'Oracle GoldenGate à partir d'une version antérieure.

Cette commande indique à l'extraction de créer une incarnation du fichier trace et de passer au fichier suivant dans la séquence de trace lors du redémarrage, ce qui requiert le repositionnement manuel des lecteurs (Data Pump ou réplication) sur le nouveau numéro de séquence de trace.

Avec ETROLLOVER, l'extraction capture tous les enregistrements après le SCN indiqué avec lequel elle démarre, qu'ils aient déjà été capturés et écrits dans la trace ou non. Sans ETROLLOVER, l'extraction ignore la capture des enregistrements qui ont déjà être capturés et écrits dans la trace.

A partir de la version 19c, les principes suivants s'appliquent lors du traitement du service de distribution :

DESC ‘description’

Indique la description du groupe. Exemple : 'Extracts account_tab on Serv1'. Placez la description entre apostrophes. Vous pouvez employer le mot-clé abrégé DESC ou le mot complet DESCRIPTION.

ENCRYPTIONPROFILE

Indique le nom du profil de cryptage de l'extraction. Ce nom est sensible à la casse. Vous devez donc entrer exactement le nom que vous avez entré avec ADD EXTRACT.

GTIDSET gtidset

Valide pour MySQL.

Indique le positionnement initial de l'extraction à l'aide de l'option de type de position de l'ensemble de GTID pour la capture basée sur le GTID (MySQL). Les sources MySQL prises en charge pour l'ensemble de GTID sont MySQL Server 8.0, MySQL Server 5.7, MySQL Database Service (MDS). La taille d'ensemble de GTID maximale prise en charge est de 64 ko.

Syntaxe :

ALTER EXTRACT extract_name, TRANLOG, GTIDSET gtidset

Les exemples suivants incluent toutes les combinaisons de formats d'ensemble de GTID valides.

Exemple 1 :

ALTER EXTRACT exte, TRANLOG, GTIDSET "E11FA47-71CA-11E1-9E33-C80AA9429562:4"

Exemple 2 :

ALTER EXTRACT exts, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-10"

Exemple 3 :

ALTER EXTRACT extn, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-3:11:47-49"

Exemple 4 :

ALTER EXTRACT extw, TRANLOG, GTIDSET "2174B383-5441-11E8-B90A-C80AA9429562:1-3,24DA167-0C0C-11E8-8442-00059A3C7B00:1-19"

Remarque : comme indiqué dans l'exemple 4, lorsque le jeu GTID contient plusieurs uuids, pour former une demande d'API REST, ce jeu GTID est divisé en plusieurs jeux GTID à l'aide d'un séparateur de virgules.

CRITICAL

Indique si le processus est essentiel pour le déploiement.

PROFILE

Nom du profil de démarrage automatique. Ce nom est sensible à la casse. Vous devez donc entrer exactement le nom que vous avez entré avec ALTER EXTRACT.

AUTOSTART

Indique si le processus géré doit être démarré automatiquement lors du démarrage du service d'administration. La valeur par défaut est YES.

RETRIES

Nombre maximal de tentatives de redémarrage de la tâche avant d'annuler les nouvelles tentatives. Cette option est facultative.

WAITSECONDS

Durée (en secondes) au cours de laquelle le nombre de tentatives est compté.

RESETSECONDS

Réinitialise la durée au cours de laquelle le nombre de tentatives est compté.

DISABLEONFAILURE

Si la valeur TRUE est définie, la tâche est désactivée lorsque le nombre de tentatives est épuisé.

INFO EXTRACT group-name, SHOWCH DETAIL

La valeur du premier numéro SCN est répertoriée comme dans l'exemple suivant :

Integrated Extract outbound server first scn: 0.665884 (665884)

Exemples


L'exemple suivant modifie l'extraction afin de démarrer le traitement des données à partir du 1er janvier 2019.

ALTER EXTRACT exte, BEGIN 2019-01-01

L'exemple suivant modifie l'extraction afin de démarrer le traitement à partir d'un emplacement précis dans la trace.

ALTER EXTRACT exte, EXTSEQNO 26, EXTRBA 338

L'exemple suivant modifie l'extraction dans un environnement SQL Server afin de la faire démarrer à partir d'un numéro de séquence de journal précis.

ALTER EXTRACT exte, LSN 0Xd7e:36b:1

L'exemple suivant modifie l'extraction afin de la faire passer au fichier suivant dans la séquence de trace.

ALTER EXTRACT exte, ETROLLOVER

L'exemple suivant modifie l'extraction afin de la mettre à niveau vers la capture intégré.

ALTER EXTRACT exte, UPGRADE INTEGRATED TRANLOG

La commande suivante utilise ETROLLOVER pour empêcher que le filtrage des enregistrements en double dont le nom SCN antérieur à 778899.

ALTER EXTRACT exte, SCN 778899
ALTER EXTRACT exte ETROLLOVER
START EXTRACT exte

Si vous n'utilisez pas ETROLLOVER, lorsque vous modifiez l'extraction pour la modifier sur la valeur SCN précédente, les enregistrements en double ne seront pas traités. La commande permettant de modifier l'extraction pour filtrer les enregistrements en double est la suivante :

ALTER EXTRACT exte, SCN 778899
START EXTRACT exte

L'exemple suivant illustre ALTER EXTRACT pour un point de départ d'IBM for i.

ALTER EXTRACT exte, SEQNO 1234  JOURNAL accts/acctsjrn

L'exemple suivant illustre ALTER EXTRACT pour un point de départ du journal IBM i et du journal IBM i.

ALTER EXTRACT exte, SEQNO 1234 JOURNAL accts/acctsjrn JRNRCV accts/jrnrcv0005

L'exemple suivant modifie une extraction sur un système DB2 LUW.

ALTER EXTRACT exte, TRANLOG LRI 8066.322711

L'exemple suivant illustre les options ALTER EXTRACT utilisées avec PostgreSQL :

ALTER EXTRACT exte, EOL
ALTER EXTRACT POSTEXT, LSN 0/156784
ALTER EXTRACT POSTEXT, BEGIN 2022-02-18T14:50:43.4230Z