восстановление системных таблиц

vl_voda
Дата: 18.02.2013 11:34:56
исчезла системная таблица "sys.sysschobjs" в рабочей бд
кто-нибудь знает, как восстановить?
LenaV
Дата: 18.02.2013 19:55:55
думаю, что она не исчезла.
просто она вам не доступна.
vl_voda
Дата: 19.02.2013 21:04:17
LenaV
думаю, что она не исчезла.
просто она вам не доступна.


поверьте мне, я знаю, что говорю (в данном случае - пишу)
pkarklin
Дата: 19.02.2013 21:42:37
vl_voda
поверьте мне, я знаю, что говорю


Вы бы, хоть, сообщение об ошибке привели, которое позволяет Вам "говорить"...
LenaV
Дата: 19.02.2013 22:36:36
что вам возвращает этот запрос в пользовательской базе?

select * from sys.objects
Mind
Дата: 19.02.2013 22:55:26
vl_voda
LenaV
думаю, что она не исчезла.
просто она вам не доступна.


поверьте мне, я знаю, что говорю (в данном случае - пишу)
Ну если вы все знаете, чего тогда тут вопросы задаете?
А восстановить легко, поднимите бэкап.
LenaV
Дата: 19.02.2013 23:17:49
LenaV
что вам возвращает этот запрос в пользовательской базе?

select * from sys.objects

вы получили какой-нибудь результат?
посмотрите на план выполнения этого запроса.
самый первый шаг справа - обращение к кластерному индексу таблицы sys.sysschobjs

системную таблицы так просто удалить нельзя,
даже админу.
если у вас пропали системные таблицы с метаданными базы, то базу невозможно будет открыть.
тогда уже надо ловить кто и как хакнул вам сервер, а не востанавливать таблицы.
vl_voda
Дата: 20.02.2013 00:15:26
отвечаю по порядку вопросов
sql server 2005

1 pkarklin - ошибку вернул DBCC:
CHECKDB found 0 allocation errors and 1 consistency errors in table 'sys.sysschobjs' (object ID 34).
2 LenaV - смотрел в sys.objects - ссылка есть, id=34
3 Mind - backup без ошибки устарел на неделю,
впрочем на работоспособность BD сбой не повлиял,
и перезалить базу в чистую - не проблема (что и было сделано - ошибка исчезла).
4 LenaV - конечно, системную так просто не сковырнешь (тем более в версии старше 7x)
к базе "снаружи" доступа нет, обслуживаю только я, человеческий фактор исключаю (не тот контингент),
диск - битых секторов нет

За целостность я спокоен.
Да и причина сбоя меня, собственно, пока не интересует.
Дело, как говориться - "в принципе" - что же это за таблица такая?
Очень мало про нее информации, так, общие слова.

У кого есть информация - буду оч. признателен.
pkarklin
Дата: 20.02.2013 00:26:17
vl_voda,

CHECKDB умеет работать в транзакции. Пробуйте запускать ее (если бэкап текущий есть где поднять и просто проверить на нем - это будет здОрово) с ключами восстановления.
LenaV
Дата: 20.02.2013 01:37:34
vl_voda
Дело, как говориться - "в принципе" - что же это за таблица такая?

это системная базовая таблица.
содержит инфо о всех обьектах в базе данных.
создается во всех базах.
на ней построена например вьюшка sys.sysobjects
каждый раз, когда изменяется схема пользовательской таблицы, например,
будет меняться и запись об этой таблице в sys.sysschobjs

в случае вашей ошибки возможно было достаточно узнать какая запись в sys.sysschobjs была корапнутая
и пересоздать только ту таблицу, к которой эта запись относилась.