Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Reorg DB2 et SORT et DATAWK


Sujet :

DB2

  1. #1
    Membre averti
    Reorg DB2 et SORT et DATAWK
    Bonjour,

    dans une reorg DB2, qui doit être faîte sur une table énorme (plusieurs milliard de ligne),
    on doit trouver une solution pour éviter un : sort capacity exceeded".

    Il y a des sortwork :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //SORTWK01 DD DSN=DATASET.WORK01,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE
    //SORTWK02 DD DSN=DATASET.WORK02,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE
    //SORTWK03 DD DSN=DATASET.WORK03,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE
    //SORTWK04 DD DSN=DATASET.WORK04,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE


    mais on a aussi des fichiers DATAWORK :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //DATAWK01 DD DSN=DATASET.DAWK01,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE
    //DATAWK02 DD DSN=DATASET.DAWK02,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE
    //DATAWK03 DD DSN=DATASET.DAWK03,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE
    //DATAWK04 DD DSN=DATASET.DAWK04,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPEREOR,VOL=(,,,1),DSNTYPE=LARGE


    A quoi servent ces fichiers DATAWORK ? Est-ce la même utilité que les fichiers SORTWORK ?
    Peut'on les appeler comme les fichiers SORTWORK ou ils doivent avoir absolument un DDNAME différent ?

    Autre question :

    Si vous avez une astuce pour passer une REORG d'une tablle de plusieurs milliard de ligne ça m'intéresse.

    Voici le message d'erreur obtenu :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    ICE046A 0 SORT CAPACITY EXCEEDED - RECORD COUNT 524271971            
    ICE253I 0 RECORDS SORTED - PROCESSED: 524271971, EXPECTED: 526809018


    Merci d'avance pour votre aide.

  2. #2
    Membre expert
    Réorganiser la Table par partition peut être ?

    Si, elle est partitionnée bien sûr...

  3. #3
    Membre averti
    Non malheureusement elle n'est pas partitionné. Et la différence entre sortwork et datawork ?

  4. #4
    Membre expert
    Citation Envoyé par sam01 Voir le message
    Non malheureusement elle n'est pas partitionné. Et la différence entre sortwork et datawork ?
    Work data sets
    Temporary data sets for sort input and output. The
    DD names have the form DATAWKnn
    Required if NOSYSREC or SHRLEVEL CHANGE is specified, but SORTDEVT is not specified
    Mais pourquoi vous n'ouvrez pas un "CASE" chez IBM ?

  5. #5
    Membre averti
    Un case chez IBm ? J'espère trouver une solution avant d'en arriver là quand même..
    Si tu dis vrai la sysin est fausse alors puisque les DBA utilisent les 2 sysin mėlangées : SORTWORK ET DATAWORK...

  6. #6
    Membre expert
    Citation Envoyé par sam01 Voir le message
    Un case chez IBm ? J'espère trouver une solution avant d'en arriver là quand même..
    Je fais ça très souvent moi ...

    Si tu dis vrai la sysin est fausse alors puisque les DBA utilisent les 2 sysin mėlangées : SORTWORK ET DATAWORK...
    Je n'ai jamais dit que la SYSIN était fausse ...

  7. #7
    Membre chevronné
    A quoi servent ces fichiers DATAWORK ? Est-ce la même utilité que les fichiers SORTWORK ?
    Peut-on les appeler comme les fichiers SORTWORK ou ils doivent avoir absolument un DDNAME différent ?
    Ca dépend de la sysin (de reorg), des caractéristiques du tablespace/table/index, du paramétrage de db2 et, selon les cas, du paramétrage de DFSORT.
    Lecture de la doc "Utility Guide and Reference" obligatoire pour comprendre,partie "REORG TABLESPACE"
    En résumé, les fichiers peuvent être obligatoires, mais ca dépend.


    en résumé; mon paramétrage se basait sur:
    Les stats de db2 qui doivent être le plus juste possible.
    un gros pool de disques SMS pour accueillir uniquement les fichiers de work, tout en modèle 54, avec plusieurs disques en QUINEW.
    dans la zparm de db2, paramètres UTSORTAL=YES et IGNSORTN=YES.
    aucun ddname de WORK dans les utilitaires
    plus de SORTDEV & SORTNUM dans les sysin

    En 10 ans d'admin db2, je n'ai eu qu'un seul cas où j'ai du coder des WORK spécifique, c'était dans un LOAD. je vais essayer de retrouver le job.
    Ca n'a pas été simple de convaincre les collègues de supprimer WORK & SORTNUM des jcl. les habitudes sont tenaces.

    Dans ton cas, essaye de mettre du space secondaire pour les WORK. UN fichier de WORK peut avoir des extents secondaires.

  8. #8
    Membre averti
    Salut bernard59139.
    C'est très intéressant ce que tu me dis, mais j'ai quelques interrogations :

    Pourquoi des disques en QUIESCE/NEW ?

    comment je peux retrouver les paramètres sur ZPARM ?

    J'ai compris que les fichier SW sont pour les INDEX, mais je ne comprends toujours pas la différence entre SORTWORK et DATAWORK.
    Je vais fouiller dans la DOC. Dons mon cas, on utiliser les 3 types de tris :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    //SORTWK01 DD DSN=&VVQUAL1..&VVQUAL2..WORK01,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE
    //SORTWK02 DD DSN=&VVQUAL1..&VVQUAL2..WORK02,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE
    //SORTWK03 DD DSN=&VVQUAL1..&VVQUAL2..WORK03,DISP=(,DELETE), 
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE
    //DATAWK01 DD DSN=&VVQUAL1..&VVQUAL2..DAWK01,DISP=(,DELETE),  
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE 
    //DATAWK02 DD DSN=&VVQUAL1..&VVQUAL2..DAWK02,DISP=(,DELETE),  
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE
    //DATAWK03 DD DSN=&VVQUAL1..&VVQUAL2..DAWK03,DISP=(,DELETE),  
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE  
    //SW01WK01 DD DSN=&VVQUAL1..&VVQUAL2..DAWK03,DISP=(,DELETE),  
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE 
    //SW01WK02 DD DSN=&VVQUAL1..&VVQUAL2..DAWK01,DISP=(,DELETE),  
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE 
    //SW01WK03 DD DSN=&VVQUAL1..&VVQUAL2..DAWK02,DISP=(,DELETE),  
    //  SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE


    le paramètre :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE




    permet de prendre la totalité d'un disque M27 et de dépasser le limite de 65535 TRACKS par disque.

  9. #9
    Membre chevronné
    différence entre SORTWORK et DATAWORK
    C'est comme ca, c'est dans la doc et il faut faire avec. C'est pour cela que je renvoi à la doc.
    Pourquoi des disques en QUIESCE/NEW ?
    Pour avoir une chance d'avoir des disques totalement vide pour les "grosses" sortwk.

    SPACE=(CYL,8500),STORCLAS=TYPREOR,VOL=(,,,1),DSNTYPE=LARGE
    Avec 8500 cylindres, tu n'occupes qu'une partie d'un disque M27, un peu moins d'un quart. Ca serait ok pour un M3 qui a 10.000 cylindres.

    Avec ce que je suggère, les sortwk sont automatiquement en dsntype=large avec la taille nécessaire calculée par db2 (ou dfsort, je ne sais plus).
    Et les jcl étaient (sont encore?) valables quelque soit les environnements (test/recette/qualif/prod) et quelque soit la volumétrie des tables traitées (sauf cas très particulier rencontés lors d'un traitement exceptionnel) .
    Et lors du passage de M3 à M27, et ensuite de M27 à M54, les jcl n'ont pas eu besoin d'être modifiés (pour les fichiers work ).

  10. #10
    Membre averti
    Effectivement ta méthode est très optimisée.
    Mais que dois-je expliquer aux DBA pour qu'ils puissent faire le même paramétrage que toi et évite ainsi de se préoccuper des sysin de sort ?

    Si je résume, ils vont dans la ZPARM et modifient les paramètres suivants :

    1) UTSORTAL=YES et IGNSORTN=YES.

    2) Le gros pool de disque ça c'est bon, c'est moi qui m'en charge

    3) Pas de WORK, SORTDEV & SORTNUM dans les utilitaires et les sysin (modifcations JCL à faire).

    C'est bien ça ?

    Après je pense qu'il va falloir que je sois convainquant car moi, je suis Storage Manager et eux c'est des DBA.

  11. #11
    Membre chevronné
    Avec un peu de chance, le paramétrage db2 devrait être ok, c'est le defaaut. Sinon, il te faudra valider sur des environnements de TEST.

    ensuite, il te faut valider ce que j'ai écrit. tester, retester, etc...

    Pour finir, prendre son baton de pélerin et porter la bonne parole.

###raw>template_hook.ano_emploi###