Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2007, 20h39   #1
Membre du Club
 
Inscription : octobre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2005
Messages : 79
Points : 46
Points : 46
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 :
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 :
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 :
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.
lsone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2007, 08h24   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Pour trouver l'espace libre dans le logsegment:
Code :
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
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2007, 10h29   #3
Membre du Club
 
Inscription : octobre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2005
Messages : 79
Points : 46
Points : 46
Merci.


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

Code :
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 :
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 :
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 :
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
lsone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2007, 13h22   #4
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à 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
__________________
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
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2007, 13h34   #5
Membre du Club
 
Inscription : octobre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2005
Messages : 79
Points : 46
Points : 46
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.
lsone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h06.


 
 
 
 
Partenaires

Hébergement Web