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] - DBCC & Type Code : 100028


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] - DBCC & Type Code : 100028
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    dbcc checkstorage (mutubatch)
    go
    dbcc checkverify (mutubatch)
    go
    dbcc checkcatalog (mutubatch)
    go
    use dbccdb
    go
    sp_dbcc_summaryreport
    go
    sp_dbcc_faultreport 'short', mutubatch
    go

    J'obtiens le Type Code : 100028 sur plusieurs tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Table Name                     Index       Type Code   Description                                        Page Number 
    ----------                     ----------- ----------- -----------                                        ----------- 
    sysobjects                               0      100028 page misplaced                                              48 
    sysobjects                               1      100028 page misplaced                                            1025 
    sysobjects                               2      100028 page misplaced                                            1048 
    etc ....
    Dans le Troubleshooting and Error Messages Guide, 100028 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    A page of the object was found in a location other than where allocations are currently allowed
    Activate Trace Flag 2513 AND run:
    dbcc indexalloc, dbcc tablealloc, or dbcc checkalloc
    Similar to 2558 Error
    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
     
     
    use master
    go
     
    sp_dboption mutubatch,"single user", true
     
    use mutubatch
    go
     
    checkpoint
    go
     
    -- To turn on trace flag 2513, follow these commands:
    dbcc traceon (2513)
    go
     
    dbcc tablealloc (sysobjects, full, fix)
    go
    J'obtiens :

    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
    20
    21
    22
    23
    24
     
     *************************************************************** 
     TABLE: sysobjects		OBJID = 1 
     INDID=1	 FIRST=49	 ROOT=1040	 SORT=1 
     	Data level: 1.  113 Data pages allocated and 15 Extents allocated. 
     	Indid	  : 1.  1 Index pages allocated and 2 Extents allocated. 
     INDID=2	 FIRST=1056	 ROOT=1058	 SORT=1 
     	Indid	  : 2.  24 Index pages allocated and 4 Extents allocated. 
     TOTAL # of extents = 21 
     Alloc page 0 (# of extent=3 used pages=24 ref pages=24) 
     Alloc page 256 (# of extent=1 used pages=8 ref pages=8) 
     Alloc page 512 (# of extent=3 used pages=24 ref pages=24) 
     Alloc page 768 (# of extent=2 used pages=16 ref pages=16) 
     Alloc page 1024 (# of extent=6 used pages=28 ref pages=28) 
     Alloc page 204800 (# of extent=5 used pages=39 ref pages=39) 
     Alloc page 205056 (# of extent=1 used pages=3 ref pages=3) 
     Total (# of extent=21 used pages=142 ref pages=142) in this database 
     DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role. 
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 0 which is not in segment 0. 
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 256 which is not in segment 0. 
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 512 which is not in segment 0. 
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 768 which is not in segment 0. 
     Extent not within segment: Object 1, indid 1 includes extents on allocation page 1024 which is not in segment 0. 
    Extent not within segment: Object 1, indid 2 includes extents on allocation page 1024 which is not in segment 0.
    Par contre là je commence par être perdu.

    Quelqu'un peut m'éclairer ?

  2. #2
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Points : 68
    Points
    68
    Par défaut
    Bonjour

    dbcc checkstorage remonte une erreur 100028
    Comme tu l'as vu, elle peux etre "corrigée" par un "dbcc tablealloc"
    Le fait de lancer la commande suivante doit donc corriger le probleme :
    dbcc traceon (2513)
    go
    dbcc tablealloc (sysobjects, full, fix)
    go

    Pour info, le traceflag 2513 permet au dbcc tablealloc de remonter l'erreur 2558 qui n'ai pas remontée normalement par tablealloc.

    Pour verifier si la table sysobjects est "réparée", il te suffit de relancer un "dbcc checkstorage(mutubatch)" puis un sp_dbcc_faultreport


    Je ne sais pas si ca reponde a ta/tes question(s)

    jeeps64

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Points : 68
    Points
    68
    Par défaut
    oups, mauvaise traduction du traceflag 2513


    voici l'explication du traceflags 2513 :

    2513
    Instructs dbcc checkalloc, tablealloc and indexalloc to check for whether foreign objects are stranded on a particular segment within a database.

    Qui est beaucoup plus coherent avec ton probleme

  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
    Citation Envoyé par lsone
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 0 which is not in segment 0. 
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 256 which is not in segment 0. 
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 512 which is not in segment 0. 
     Extent not within segment: Object 1, indid 0 includes extents on allocation page 768 which is not in segment 0. 
     Extent not within segment: Object 1, indid 1 includes extents on allocation page 1024 which is not in segment 0. 
    Extent not within segment: Object 1, indid 2 includes extents on allocation page 1024 which is not in segment 0.
    Le segment 0 est le segment "system" - et l'objet 1 est évidemment une table système.
    Il semble que le segment 0 a été supprimé dans le premier fragment (via sp_dropsegment, peut-être). Il faudrait voir le contenu de master..sysusages pour cette base pour en savoir un peu plus.

    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
    Le segment 0 est le segment "system" - et l'objet 1 est évidemment une table système.
    Il semble que le segment 0 a été supprimé dans le premier fragment (via sp_dropsegment, peut-être). Il faudrait voir le contenu de master..sysusages pour cette base pour en savoir un peu plus.
    Michael
    Voilà voilà ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    select dbid, segmap, lstart, size, vstart, unreservedpgs from sysusages where dbid=db_id('mutubatch') order by segmap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dbid        segmap      lstart      size        vstart      unreservedpgs 
    ----------- ----------- ----------- ----------- ----------- ------------- 
             11           3      204800      819200   134217728        814367 
             11           4           0      102400   150994944         63476 
             11           4      102400      102400   151097344        102000 
             11           4     1024000      256000   151199744        255000

  6. #6
    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
    Effectivement, le premier fragment (lstart = 0) a un segmap de 4, cad que c'est un fragment log only. Les fragments de cette base a du être manipulée puisque normalement le premier fragment n'est jamais un log only...

    Je ne sais pas si cela peut poser des problèmes, mais je ne le pense pas.

    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

  7. #7
    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
    Effectivement, le premier fragment (lstart = 0) a un segmap de 4, cad que c'est un fragment log only. Les fragments de cette base a du être manipulée puisque normalement le premier fragment n'est jamais un log only...

    Je ne sais pas si cela peut poser des problèmes, mais je ne le pense pas.

    Michael
    En faisant un sp_helpdb, je constate que cette base a parmis les statuts : "mixed log and d "

    Cette base est utilisée par des script shell/transact SQL, elle contient des tables qui sont utilisés par des bcp out pour des éditions, mise en forme awk etc ... Ce qui signifie que la base peut être recréée sans difficultés.

    Quels conseils pourriez vous me donner ?
    Par exemple : Reconstruction complète de la base en séparant correctement log et data, etc ...

  8. #8
    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 cette base est flaggée "mixed log and data" alors c'est que les fragments log et data (qui sont en fait séparés) sont sur le même dévice physique.
    Ce n'est pas un vrai problème, surtout s'il s'agit d'une base qui est en mode "truncate log on checkpoint".

    Ceci étant il serait peut-être plus "propre" de reconstruire la base, même si c'est simplement pour éviter les messages d'erreurs/warnings du DBCC CHECKSTORAGE...

    Il est probablement aussi possible d'aller manipuler le segmap directement dans master..sysusages, mais je conseillerais plutôt la reconstruction si elle n'entraine pas trop de désagréments.

    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

  9. #9
    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 cette base est flaggée "mixed log and data" alors c'est que les fragments log et data (qui sont en fait séparés) sont sur le même dévice physique.
    Ce n'est pas un vrai problème, surtout s'il s'agit d'une base qui est en mode "truncate log on checkpoint".

    Ceci étant il serait peut-être plus "propre" de reconstruire la base, même si c'est simplement pour éviter les messages d'erreurs/warnings du DBCC CHECKSTORAGE...

    Il est probablement aussi possible d'aller manipuler le segmap directement dans master..sysusages, mais je conseillerais plutôt la reconstruction si elle n'entraine pas trop de désagréments.

    Michael
    Je pense reconstruire cette base. Merci pour tous ces renseignements.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. java.io.StreamCorruptedException: invalid type code: 25
    Par yli_ren dans le forum Weblogic
    Réponses: 1
    Dernier message: 13/03/2009, 11h06
  2. Réponses: 2
    Dernier message: 06/02/2009, 20h25
  3. [SYBASE ASE 12.5.1] - DBCC Msg 100025
    Par lsone dans le forum Adaptive Server Enterprise
    Réponses: 1
    Dernier message: 15/05/2008, 09h52
  4. [ASE 12.5.3] - DBCC & Type Code : 100028
    Par lsone dans le forum Sybase
    Réponses: 8
    Dernier message: 22/03/2007, 11h05
  5. Réponses: 3
    Dernier message: 29/03/2006, 09h59

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