Bonjour à tous,

J'ai une page corrompue dans une DB, et cela bloque mon backup full.

Je n'ai pas encore attaqué l'article d'SQL pro, mais j'ai commencé par celui de Nicolas sur Les dangers de la vérification de l’intégrité des données : la commande DBCC CHECKDB

Si je lance ceci :

DBCC TRACEON (3604,1)
GO
DBCC PAGE ('MaDB', 1, 4688586) --Pour info, si je mets ,3 à la fin comme dans son article, j'ai une erreur en bas. Mais bref.

J'ai dans les résultats ceci : Metadata: IndexId = -1

Nicolas, dit ceci dans son article :

– S’il est plus grand que 1, il s’agit d’une index non-cluster, donc il suffit de le supprimer et de la reconstruire
– S’il vaut 0 ou 1, nous devons résoudre le défaut d’intégrité de façon plus complexe.

Sauf que moi, c'est -1

Et je ne trouve pas de -1 dans la doc Microsoft : https://docs.microsoft.com/en-us/sql...s-transact-sql

Quand je lance un simple DBCC CheckDB, j'ai à la fin ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CHECKDB found 0 allocation errors and 0 consistency errors in database 'MyDB'.
Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command.  The results, if any, should be discarded.
Et dans mon backup, voici ce qu'il me disait, voilà pourquoi je cherche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
BACKUP 'MyDB' detected an error on page (1:4688586) in file
Et quand je lance ce script, j'ai pourtant plus de lignes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Select * 
from msdb.dbo.suspect_pages
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
database_id	file_id	page_id	event_type	error_count	last_update_date
11	1	4688587	4	1	2010-07-09 10:02:21.237
11	1	4688590	1	1197	2011-12-07 18:02:08.367
11	1	4688591	1	2454	2011-12-07 18:02:28.697
11	1	4688586	2	7527	2017-10-02 12:21:03.660
11	1	4688587	1	9223	2017-10-02 12:21:03.647
11	1	4688589	1	2984	2011-12-07 16:02:05.587
11	1	4688588	1	882	2014-01-27 10:14:29.010
Je fais erreur où svp?

Merci,
Jean-Luc

Voici le résultat complet du DBCC PAGE ('MaDB', 1, 4688586):

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
25
26
27
28
29
30
31
32
33
34
35
36
37
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
 
PAGE: (10496:184551936)
 
 
BUFFER:
 
 
BUF @0x0000000137FCDE80
 
bpage = 0x000000013737A000           bhash = 0x0000000000000000           bpageno = (1:4688586)
bdbid = 11                           breferences = 3                      bUse1 = 13790
bstat = 0xc20809                     blog = 0x52152159                    bnext = 0x0000000000000000
 
PAGE HEADER:
 
 
Page @0x000000013737A000
 
m_pageId = (10496:184551936)         m_headerVersion = 0                  m_type = 51
m_typeFlagBits = 0x0                 m_level = 8                          m_flagBits = 0x2a4d
m_objId (AllocUnitId.idObj) = -851968                                     m_indexId (AllocUnitId.idInd) = 1732
Metadata: AllocUnitId = 487796078804992000                                Metadata: PartitionId = 0
Metadata: IndexId = -1               Metadata: ObjectId = 0               m_prevPage = (64:0)
m_nextPage = (1024:1107321088)       pminlen = 29444                      m_slotCnt = 2
m_freeCnt = 2058                     m_freeData = 2304                    m_reservedCnt = 62976
m_lsn = (3016447:147:3)              m_xactReserved = 516                 m_xdesId = (2048:67108864)
m_ghostRecCnt = 18020                m_tornBits = 25227                   
 
Allocation Status
 
GAM (1:4601088) = ALLOCATED          SGAM (1:4601089) = NOT ALLOCATED     
PFS (1:4682952) = 0x40 ALLOCATED   0_PCT_FULL                             DIFF (1:4601094) = NOT CHANGED
ML (1:4601095) = NOT MIN_LOGGED      
 
 
DBCC execution completed. If DBCC printed error messages, contact your system administrator.