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

Administration SQL Server Discussion :

DBCC PAGE, m_type 55, IndexId -1


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2018
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2018
    Messages : 32
    Par défaut DBCC PAGE, m_type 55, IndexId -1
    Bonjour,

    Un job de check d'intégrité a détecté une corruption sur deux pages d'une table.
    A l'aide de l'OBJECT_ID remonté par DBCC, je peux identifier la table concernée.
    Suite à cela, j'utilise DBCC PAGE pour voir de quel type de page il s'agit, sauf qu'en exécutant le DBCC PAGE, je trouve des résultats "étranges" :

    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
    Page 1478974
     
    m_pageId = (8224:540291124)         m_headerVersion = 128               m_type = 0
    m_typeFlagBits = 0x0                m_level = 0                         m_flagBits = 0x100
    m_objId (AllocUnitId.idObj) = 892743985                                  m_indexId (AllocUnitId.idInd) = 64614
    Metadata: AllocUnitId = -259461421657423872                              Metadata: PartitionId = 0
    Metadata: IndexId = -1              Metadata: ObjectId = 0              m_prevPage = (0:8)
     
    Page 1478975
     
    m_pageId = (32:-2078539520)         m_headerVersion = 128               m_type = 55
    m_typeFlagBits = 0x38               m_level = 49                        m_flagBits = 0x3831
    m_objId (AllocUnitId.idObj) = 42525 m_indexId (AllocUnitId.idInd) = 13363
    Metadata: AllocUnitId = 3761350116571414528                              Metadata: PartitionId = 0
    Metadata: IndexId = -1              Metadata: ObjectId = 0              m_prevPage = (8224:538976288)

    On peut constater que le m_pageId ne correspond pas au numéro de la page, je ne comprend pas pourquoi.
    Le m_type indique 55, mais je ne connais pas ce dernier et je n'ai pas trouvé de m_type allant au delà de 20.
    Le champ Metadata: IndexId indique -1, je ne sais pas à quoi cela correspond, je sais que 0/1 indique qu'il s'agit de la table (HEAP/CLUSTER) et au delà, d'index, mais -1, je n'ai rien trouvé à ce sujet.
    Le champ Metadat: ObjectId indique 0, seulement, l'ID de ma table n'est pas du tout 0, je ne comprend donc pas non plus cette valeur.

    Auriez-vous des explications pour les points ci-dessus ?

    J'ai également voulu suivre le document de Frédéric Brouard (coucou SQLPro ), mais je n'ai pas pu continuer, toujours à cause de cet IndexId à -1 et de ObjectId à 0 qui me perdent (https://blog.developpez.com/sqlpro/f...corrompues.pdf).

    Il s'avère que cette table est fréquemment supprimée et recrée par un job, il a donc suffit de lancer ce dernier, la table a été recrée et le DBCC CHECKDB s'exécute désormais sans erreur, la résolution a été simple, sinon, il aurait fallu faire une restauration à partir d'un backup et comme il s'agit d'une base en mode SIMPLE, au revoir les données les plus fraîches.
    DBCC CHECKDB indiquait que le niveau minimum était le REPAIR_ALLOW_DATA_LOSS, on aurait pu tenter ça avant la restauration, mais ce n'est pas sans risque non plus.

    Cordialement,
    Donovan

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Simplement, ces données incohérentes indique que la page est trop endommagée pour que les données lues puissent correspondre a quelque informations saines. Il aurait fallut regarder dans les pages techniques (GAM, SGAM, etc...) pour tenter de comprendre sur quel objet portait cette page.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [2008] Page corrompue : Metadata: IndexId = -1
    Par janlouk dans le forum Administration
    Réponses: 4
    Dernier message: 04/10/2017, 17h44
  2. [web]maj de pages
    Par Gogoye dans le forum Web
    Réponses: 3
    Dernier message: 17/06/2002, 18h25
  3. Réponses: 7
    Dernier message: 01/05/2002, 20h23

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