Я нахожусь в ситуации, когда несколько таблиц базы данных (MSSQL2016 - 13.0.5081.1) повреждены (выбор данных не выполняется в какой-то момент) Нет действительной резервной копии (кажется, что ошибка присутствует в базе данных в течение длительного времени ) Однако я, наконец, заканчиваю тем, что выполняю DBCC CHECKDB
команда с REPAIR_ALLOW_DATA_LOSS
вариант. Но и это не удается. Выходные данные пару раз возвращают такие сообщения:
Meldung 8909, Ebene 16, Status 1, Zeile 2 Tabellenfehler: Objekt-ID 0, Index-ID -1, Partitions-ID 0, Zuordnungseinheits-ID -7451885722783318016 (Unknown-Typ), Seiten-ID (1: 290902) enthält eine falsche Seiten-ID im Seitenheader. PageId-Wert im Seitenheader = (9978: 208048830). Vor dem Beheben dieses Fehlers müssen zunächst andere Fehler behoben werden.
На английском сообщение должно быть примерно таким ...
Ошибка таблицы: идентификатор объекта 0, идентификатор индекса -1, идентификатор раздела 0, идентификатор единицы распределения -7451885722783318016 (неизвестный тип), идентификатор страницы (1: 290902) содержит неверный идентификатор страницы в заголовке страницы. Значение PageId в заголовке страницы = (9978: 208048830). Перед устранением этой ошибки необходимо сначала устранить другие ошибки.
Но что это значит:
Before resolving this error, other errors must be resolved first.
Какие другие ошибки? - Это сообщение возвращается несколько раз для разных страниц, но не указывает на другие ошибки. Я знаю, что вся эта ситуация закончится потерей данных ... я должен с этим смириться.
Кто-нибудь знает, как сделать дальше?
ОБНОВИТЬ:
Как и в упомянутых комментариях, я попытался оценить pageinfo с помощью traceflag 3604
включен:
СТРАНИЦА: (9978: 208048830)
БУФЕР:
BUF @ 0x000001D69F08F000
bpage = 0x000001D440C64000 bhash = 0x0000000000000000
bpageno = (1: 290902) bdbid = 12 переходов = 0 bcputicks = 0 bsampleCount = 0
bUse1 = 16138 bstat = 0x809 блог = 0x1215a
bnext = 0x0000000000000000 bDirtyContext = 0x0000000000000000 bstat2 = 0x0ЗАГОЛОВОК СТРАНИЦЫ:
Страница @ 0x000001D440C64000
m_pageId = (9978: 208048830) m_headerVersion = 202
m_type = 214 m_typeFlagBits = 0x86 m_level = 148
m_flagBits = 0xe010 m_objId (AllocUnitId.idObj) = -1788167502
m_indexId (AllocUnitId.idInd) = 39061 Метаданные: AllocUnitId = -7451885722783318016 Метаданные: PartitionId = 0 Метаданные: IndexId = -1 Метаданные: ObjectId = 0 m_prevPage = (54490: -851123207) m
pminlen = 44485 m_slotCnt = 15506 m_freeCnt = 40634 m_freeData = 52980
m_reservedCnt = 43709 m_lsn = (-1571835192: -1449823006: 20555)
m_xactReserved = 12100 m_xdesId = (60082: -2118893827)
m_ghostRecCnt = 18723 m_tornBits = -1316355089 ID фрагмента БД = 1Статус распределения
GAM (1: 2) = РАЗМЕЩЕННЫЙ SGAM (1: 3) = НЕ РАЗМЕЩЕННЫЙ
PFS (1: 283080) = 0x40 РАЗРЕШЕННЫЕ 0_PCT_FULL
DIFF (1: 6) = НЕ ИЗМЕНЕН ML (1: 7) = NOT MIN_LOGGED
В m_type
возвращает подозрительное значение 214
- который я не могу сопоставить с одним из следующих допустимых типов страниц:
1 – data page
2 – index page
3 and 4 – text pages
8 – GAM page
9 – SGAM page
10 – IAM page
11 – PFS page
13 - Boot page
15 - File header page
16 - diff map apge
17 - ML map page
18 - deallocated page
19 - Temp page
20 - Pre-Allocated page für bulk operations