Ошибка БД MS SQL

1. sl_pyatkov 10.03.25 04:52 Сейчас в теме
добрый день. Управление торговлей, редакция 11 (11.5.17.185). MS SQL 2014.
Перенесли базу с одного сервера на другой через выгрузку загрузку dt. через несколько дней выявили проблему, что БД не удается выгрузить или протестировать.
При тестировании или выгрузке выдает ошибку: "Запись каталога не обнаружена для идентификатора секции 72339071758893056 в базе данных 5. Метаданные несогласованы. Запустите DBCC CHECKDB, чтобы выполнить проверку метаданных на повреждение."
DBCC CHECKDB выдает такую же ошибку.
При этом БД работает, бэкапы sql сервером создаются. Мож кто побеждал такое?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 10.03.25 08:10 Сейчас в теме
6. sl_pyatkov 10.03.25 09:40 Сейчас в теме
(2)
dbcc checkdb repair_allow_data_loss

спасибо. уже проверял, результат тот же
3. paulwist 10.03.25 08:26 Сейчас в теме
(2) 2RustamZz

Вы бы для начала предупредили, чем грозит эта команда.
4. RustamZz 10.03.25 08:35 Сейчас в теме
(3) Бекапы же создаются. А так в тексте команды всё написано, здесь же не выпускники детского сада.
5. booksfill 10.03.25 09:31 Сейчас в теме
(4)
А так в тексте команды всё написано, здесь же не выпускники детского сада


Не горячитесь. data_loss это то, что может всплыть, скажем, через 7 месяцев.
Вы из какого бэкапа будете тогда восстанавливаться?

Это я к тому, что сперва стоит попробовать ALL_ERRORMSGS и вдумчиво почитать.
Кроме того, насколько помню, DBCC CHECKDB выдает рекомендуемый уровень восстановления.
Может достаточно REPAIR_REBUILD.

Ну и не забываем все это оборачивать в транзакцию, на всякий случай.

А вообще, в таких случаях я бы обратился к DBA, наверняка там много нюансов, я, например, их не знаю.
paulwist; +1 Ответить
7. sl_pyatkov 10.03.25 09:42 Сейчас в теме
(5) увы недостаточно, на dbcc checkdb repair_allow_data_loss также ругается на отсутствующую запись
8. booksfill 10.03.25 10:06 Сейчас в теме
(7)
увы недостаточно, на dbcc checkdb repair_allow_data_loss также ругается на отсутствующую запись

А что выдает DBCC CHECKCATALOG ?
9. sl_pyatkov 10.03.25 10:19 Сейчас в теме
(8)
DBCC CHECKCATALOG

запустил команду DBCC CHECKCATALOG ('MyDb');

прошла секунд за 5
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.

Время выполнения: 2025-03-10T14:16:01.2101296+07:00
10. booksfill 10.03.25 10:47 Сейчас в теме
А, так это у вас похоже KB2995352. Обновляйте СУБД, понятно, что сперва потренируйтесь на кошках.
11. sl_pyatkov 10.03.25 10:50 Сейчас в теме
(10) спасибо. Читал сообщение про ошибку на 2012 и 2014 SQL. Обновление на ситуацию не повлияло. да и попробовал на другой сервер БД перенести (2019), ошибка та же
12. booksfill 10.03.25 12:22 Сейчас в теме
(11)
да и попробовал на другой сервер БД перенести (2019)

Это как? Из "битого" dt?

Что выдает SEL ECT name FR OM sys.databases WHERE database_id = 5;
13. sl_pyatkov 10.03.25 13:22 Сейчас в теме
(12)
средствами SQL, напоминаю, бэкапы SQL создаются

SEL ECT name FR OM sys.databases WHERE database_id = 5
выдал имя моей тестовой базы (не tempdb, как хотелось бы)
14. booksfill 10.03.25 15:54 Сейчас в теме
(13)
средствами SQL, напоминаю, бэкапы SQL создаются


Все же похоже на глюк СУБД неверную работу хранимки или чего-то такого.

Предлагать запускать профайлер не буду, т.к. черт там ногу сломит, если делать выгрузку.

Ну, попробуйте что ли выгрузить через РИБ в дочернюю базу и там сделать ТИС.
Но, даже, если это заработает, не факт, что все объекты вашей базы в принципе имеют регистрацию в планах обмена.

У меня идеи закончились ;)
16. sl_pyatkov 11.03.25 09:47 Сейчас в теме
(15) Да. Я не силен в запросах SQL. Как я понял, на шаге 3, по идентификатору секции я должен вычислить имя таблицы ('YourTableName') и имя индекса [YourIndexName], но данный запрос:

SEL ECT *
FR OM sys.partitions
WHERE partition_id = 72057594967228416;

ничего не находит
17. sl_pyatkov 11.03.25 12:09 Сейчас в теме
(16) точнее
SEL ECT *
FR OM sys.partitions
WHERE partition_id = 72339071758893056;
18. sl_pyatkov 18.04.25 07:49 Сейчас в теме
если что, удалось выявить битую таблицу и мигрировать её из рабочей копии
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот