IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Adaptive Server Enterprise Sybase Discussion :

[ASE 12.5.3] - Erreur segment log - curunreservedpgs > size


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut [ASE 12.5.3] - Erreur segment log - curunreservedpgs > size
    Bonjour,

    Je développe un outil de monitoring et sur le segment Log d'une base j'ai le nombre de pages disponibles (curunreservedpgs) supérieures au nombre de pages total (size).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select dbid,        segmap  ,    lstart  ,    size    ,    vstart  ,    pad     ,    unreservedpgs  from master..sysusages
    where dbid=db_id('mutudoc')
    go
     
    select dbid, size, curunreservedpgs(dbid, lstart, unreservedpgs) as "curunreservedpgs"
    from master..sysusages
    where segmap = 4
    and dbid=db_id('mutudoc')
    go
    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
     
     
     
    dbid        segmap      lstart      size        vstart      pad         unreservedpgs 
    ----------- ----------- ----------- ----------- ----------- ----------- ------------- 
             10           3           0     4096000   167772160        NULL           840 
             10           3     4096000     4096000   184549376        NULL             0 
             10           3     8192000     4096000   201326592        NULL             0 
             10           3    12288000     3072000   218103808        NULL             0 
             10           4    15360000      256000   234881024        NULL        255000 
             10           3    15616000     4096000   587202560        NULL       3722228 
     
    dbid        size        curunreservedpgs 
    ----------- ----------- ---------------- 
             10      256000           264746
    J'ai voulu passer les dbcc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dbcc checkdb(master)
    go
    dbcc checkalloc(master)
    go
    dbcc checkcatalog(master)
    go
    Mais le problème est toujours là.

    Auriez vous une idée du problème, merci.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Pour trouver l'espace libre dans le logsegment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select lct_admin('logsegment_freepages', db_id())
    Si la valeur retournée par cet appel est toujour faux alors il peut y avoir de la corruption qu'il faudra corriger.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Merci.


    En effet la fonction lct_admin renvoie le bon nombre de pages.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT dbid, size, curunreservedpgs(dbid, lstart, unreservedpgs) AS "curunreservedpgs"
    FROM master..sysusages 
    WHERE segmap = 4 AND dbid=db_id('mutudoc')
    go
     
    dbid        size        curunreservedpgs 
    ----------- ----------- ---------------- 
             10      256000           264746
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    select lct_admin("logsegment_freepages", db_id('mutudoc'))
     
     
    ----------- 
         254999
    Par contre, j'aimerai plutot trouver une solution pour corriger le problème plutot que d'utiliser la fonction lct_admin.
    Car ce problème se pose que pour cette base (id=10)

    De plus, es ce que ce problème ne cache pas une corruption ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    select dbid
    , LogSize = sum(size)
    , LogFull= sum(curunreservedpgs(dbid, lstart, unreservedpgs))
    , lct_admin=lct_admin("logsegment_freepages", dbid)
    from master..sysusages
    where segmap = 4 
    group by dbid 
    go
    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
    
    dbid        LogSize     LogFull     lct_admin   
    ----------- ----------- ----------- ----------- 
              4     1740800     1734000     1733999 
              5     1740800     1734000     1733999 
              6      512000      510096      509999 
              7      256000      255000      254999 
              8       20480       20400       20399 
             10      256000      264746      254999 
             11      460800      422060      419295 
             12       10240       10200       10199 
             13      204800      204000      203999 
             14      512000      510096      509999 
             15      256000      255000      254999 
          31515       51200       50999       50999

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Si on regarde le code de sp_helpdb on voit que c'est la fonction lct_admin() qui est utilisée.
    J'ai déjà essayé d'utiliser la fonction curunreservedpgs() pour les segment syslogs, mais j'ai toujours eu des résultats assez bizarre - donc je ne pense pas qu'on puisse l'utiliser pour avoir des valeurs cohérentes...

    Je sais que j'ai lu des articles (sur le web ou ailleur) qui expliquaient clairement ce comportement, mais je n'arrive pas à les retrouver pour l'instant...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par mpeppler
    Si on regarde le code de sp_helpdb on voit que c'est la fonction lct_admin() qui est utilisée.
    J'ai déjà essayé d'utiliser la fonction curunreservedpgs() pour les segment syslogs, mais j'ai toujours eu des résultats assez bizarre - donc je ne pense pas qu'on puisse l'utiliser pour avoir des valeurs cohérentes...

    Je sais que j'ai lu des articles (sur le web ou ailleur) qui expliquaient clairement ce comportement, mais je n'arrive pas à les retrouver pour l'instant...

    Michael
    Pour les Log, tu conseilles plutôt d'utiliser lct_admin(), ok.

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/03/2007, 13h34
  2. [ASE]Difficulté dans la compréhension de log
    Par Goldorak2 dans le forum Sybase
    Réponses: 17
    Dernier message: 09/01/2007, 16h49
  3. erreur segmentation java
    Par dj cediorko dans le forum Langage
    Réponses: 1
    Dernier message: 31/12/2006, 12h30
  4. [erreur] Segmentation fault
    Par fveysseire dans le forum C
    Réponses: 11
    Dernier message: 15/06/2006, 14h44
  5. [ASE][11.9.2] Erreur 167 de l'open client
    Par abelman dans le forum Sybase
    Réponses: 6
    Dernier message: 18/05/2006, 09h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo