Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sys.sysrscols не читается  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
Суть проблемы:
при ресторах из снэпшота БД на тесте иногда вылетает с ошибкой - БД повреждена объект 41 бла бла делайте чекдб. Делаю чекдб - да есть ошибки, т.к. тест плюю восстанавливаю из бэкапа. Но это все на регулярной основе происходит и не всегда.
Чекдб БД после бэкапа - ошибок не показывает, все succesfully!

И тут снова эта ошибка, начал копать глубже - объект 41 это таблица sys.sysrscols которую прочитать можно только из под DAC. Ок из под дак соединяюсь - пытаюсь select * from sys.sysrscols :
Msg 0, Level 11, State 0, Line 3
A severe error occurred on the current command. The results, if any, should be discarded.
Msg 0, Level 20, State 0, Line 3
A severe error occurred on the current command. The results, if any, should be discarded.


Восстанавливаю из бэкапа - пытаюсь select * from sys.sysrscols :
Msg 0, Level 11, State 0, Line 3
A severe error occurred on the current command. The results, if any, should be discarded.
Msg 0, Level 20, State 0, Line 3
A severe error occurred on the current command. The results, if any, should be discarded.


На бою тоже самое!

Т.е. получается БД "битая", а dbcc checkdb - ошибок не показывает.

Какие варианты лечения этой проблемы могут быть? Чем чревато не лечить эту проблему?
Пока вижу вариант только миграцию делать на новую созданную БД... а это не быстро, плюс оффлайн будет, что критично для конторы...
20 дек 16, 14:17    [20027093]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
Нашел бэкапы за январь 2015 года... 2х годичной давности - повреждена - sys.sysrscols.
Блин! 2 года работали и нормально - пофиг на эту системную таблицу всем было.
20 дек 16, 14:30    [20027182]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
SP_HELP 'sys.sysrscols'
выдал колонки. методом исключения по одной колонки выяснил:


SELECT
rsid
,rscolid
,hbcolid
,rcmodified
,ti
,cid
,ordkey
,maxinrowlen
,status
,offset
,nullbit
,bitpos
,colguid
--,dbfragid
FROM sys.sysrscols

такой запрос работает. а если добавить в вывод dbfragid то все - ошибка...
20 дек 16, 14:43    [20027282]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
SQL.RU утверждает, что baza kaput
20 дек 16, 14:49    [20027328]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Eleanor
Member

Откуда:
Сообщений: 3212
Dbfragid колонки нет в SQL 2012. Оно?
20 дек 16, 16:21    [20028034]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
Eleanor
Dbfragid колонки нет в SQL 2012. Оно?

Проблему сообщили - решения нет )))).
Да похоже проблема возникла давно когда еще переходили с 2008 на 2012 СКЛ сервер... в 2010 году
20 дек 16, 16:56    [20028293]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Eleanor
Member

Откуда:
Сообщений: 3212
Видимо, решение не такое, что можно легко его опубликовать.

А техподдержка у вас есть?
Системную таблицу подпортил Sql Server... по идее техподдержка MS и должна сказать, что делать.
Мы вроде как-то обращались к ним даже без купленной поддержки, имея партнерство и MSDN подписку.
20 дек 16, 17:29    [20028495]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
Eleanor
Видимо, решение не такое, что можно легко его опубликовать.

А техподдержка у вас есть?
Системную таблицу подпортил Sql Server... по идее техподдержка MS и должна сказать, что делать.
Мы вроде как-то обращались к ним даже без купленной поддержки, имея партнерство и MSDN подписку.

Нет поддержки пока никакой )))

+ еще одну таблицу системную поврежденную нашел
declare crs cursor local fast_forward for
select
    'select * into #t from '+object_schema_name(object_id)
    +'.'+name
from sys.objects
where type = 'S'
    and name not in (
        'sys.sysrscols',
        'sys.sysallocunits')

declare @cmd nvarchar(max)

open crs

while 1=1
begin
    fetch next from crs into @cmd
    if @@fetch_status != 0 break
    begin try
        print @cmd
        exec ( @cmd )
    end try
    begin catch
        print error_message()
    end catch
end

close crs
deallocate crs

без указанных таблиц проходит норм скрипт... с любой из указанных в IN вылетает.
20 дек 16, 17:36    [20028520]     Ответить | Цитировать Сообщить модератору
 Re: sys.sysrscols не читается  [new]
Eleanor
Member

Откуда:
Сообщений: 3212
Можете список возможных ошибок скачать в "SQL Server 2012 upgrade technical guide":
  • sysrowsets - The column dbfragid has been removed from the table
  • sysrowsets - The column scope_id has been added to the table
  • sysrscols - The column dbfragid has been removed from the table
  • sysallocunits - The column dbfragid has been removed from the table

    Сломали, что было можно.
    Возможно, это будет чревато при переходе на очередную версию Sql Sever. Но до этого момента как-нибудь отмигрируетесь на новую БД.
  • 20 дек 16, 18:21    [20028722]     Ответить | Цитировать Сообщить модератору
     Re: sys.sysrscols не читается  [new]
    Дед-Папыхтет
    Member [заблокирован]

    Откуда:
    Сообщений: 2808
    Eleanor,

    Спасибо, почитал. Получается реально бага при переходе с 2008 на 2012. Причем редко проявляется в каких то экслкюзивных случаях, типа у меня restore db from snapshot... И как ее лечить уже не понятно - только создавать новую БД на 2012-2016 версии и переливать данные.

    По факту просмотрел на мастере - sp_help 'sys.sysrscols' версия 2014 - нет поля dbfragid.
    На БД моей - поле dbfragid есть с помощью sp_help - т.е. есть в метаданных
    а не селектится, т.е. при переходе удалили?
    В любом случае получается не совпадение данных и метаданных для этих таблиц.

    И чота я подозреваю... что эта "фича баг" у дофига народу кто мигрировал с 2008 на 2012 . Просто баг в большинстве случаев жить не мешает
    20 дек 16, 19:31    [20028967]     Ответить | Цитировать Сообщить модератору
     Re: sys.sysrscols не читается  [new]
    Eleanor
    Member

    Откуда:
    Сообщений: 3212
    Посмотрела у себя 2 сервера с версией 2012 - у половины пользовательских баз SELECT * FROM sys.sysrscols дает ошибку.

    Но что странно, никто не жалуется на рестор из снапшота. Казалось бы, рестор должен быть более частой операцией, чем прямой запрос из sys.sysrscols. Поэтому, не знаю, связанные ли это ошибки.
    21 дек 16, 01:18    [20029955]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить