Pull to refresh

Comments 15

Спасибо за перевод. Однозначно в избранное. Сейчас оно конечно не надо, но в любой момент может понадобиться.
Лучше бы такое никогда не пригодилось, но, увы, никто не застрахован.

Сталкивались ли с этим "OBJECT ID 60 possibly due to schema or catalog inconsistency. Run DBCC CHECKCATALOG".

Эта ошибка может появиться после того, как из системной таблицы sysobjvalues, а именно, из кластерного индекса данной таблицы были выгружены повреждённые страницы после
"DBCC CHECKDB(db_id, REPAIR_ALLOW_DATA_LOSS)"

странно — статья про майкрософт, и ни одной картинки с интерфейсами
Не интерфейсами едиными.
Добавил в избранное, но надеюсь не пригодится :-)
Так получилось что я всю жизнь занимался php+mysql. И на этой технологии существует сайт входящий в alexa top 500. Но, так получилось, что пару лет назад пришлось столкнуться с mssql.
Я не хочу разводить sql полемику по поводу того что mysql и mssql сравнивать нельзя, но приведу один из примеров.
У нас была задача переехать с одного сервера БД на другой. Что может быть проще (если бы это был mysql) НО! После разворачивания бэкапа на новой машине, выяснилось что системный пользователь и пользователь БД это разные сущности и нужно убить пользователя БД, замапить системного пользователя для данной БД, а потом я должен сделать grant на execute всех stored procedures для данного пользователя. Короче я не хочу вдаваться в тех тонкости но у вас не получится быстро развернуть бекап на другой машине и запустить его :-)
И при этом на конфиге данного MSSQL сервера я думаю хабр жил бы отлично.
К чему я это всё писал. В жизни тоже есть процессы которые требуют бюджетов, откатов и распилов, но при этом они не являются эффективными. Так вот если у вас СВОЙ бизнес то не надо смотреть с в сторону корпоративных SQL решений ;-)

P.S. А уж насколько быстрее и удобнее phpmyadmin чем ms sql studio я молчу. И еще раз я хотел бы напомнить что я пишу не про корпоративно-отмывательские решения а про нормальные веб сайты, которые зарабатывают нормальные деньги ;-)
Как раз для СВОЕГО бизнеса использую исключительно MS SQL.
За 4 года — ни одной проблемы. Несколько раз переносил между серверами достаточно крупные проекты. Ни единой проблемы.

Когда приходится phpmyadmin — хочется только подержать за горло того кто это придумал. После Management Studio — абсолютно неудобно пользоваться.

Возможно мы живем в параллельных мирах?
Я описал вполне конкретную проблему. Могу накидать еще.
Мне просто даже интересно почему mssql?
Для mysql есть клиенты и под винду и поудобнее чем phpmyadmin.
Речь идет про соотношение простоты, удобства и скорости.
Так я тоже описал вполне конкретные 4 года работы с платформой и свои впечатления от этой работы.

С MS SQL работаю по следующим причинам:
  • -стабильность
  • -скорость работы
  • -родная интеграция с Entity Framework и с .NET в целом(нет необходимости установки сторонних драйверов как MySQL например)
  • -удобные средства работы «из коробки» — Management Studio
  • -опять же интеграция с Visual Studio и как следствие скорость разработки
Да, у вас вполне конкретная проблема — непонимание механизмов работы MSSQL. Часто приходилось восстанавливаться на другой сервер — и никогда проблем с учетными записями не было. Предположу что вами как-то использовалась локальная учетная запись на старом сервере — но так делать и не рекомендуется, сами виноваты.
Вы просто совершенно не имеете ни малейшего представления что такое MS SQL сервер. Это легко установить, так как вы рассуждаете об удобстве сред разработки. Профессиональный разработчик БД пользует исключительно блокнотоподобные интерфейсы в работе. Причем это справедливо и для MS SQL и любых других СУБД.

UI нужен лишь некоторым сисадминам, которые одной рукой набирают не более 50 знаков в минуту. Так, отчетики построить, джоб с нотификацией создать.
Расскажу как было у меня. Обнаружили мы это как ошибку бэкапа за предыдущие сутки. Пока колдовали, да и люди работают выяснилось что просто полетел винт. Некая его область просто при её чтении вызывала чоканье головой и все. Рейд там был, но он написал в журнал, что всё и так как он для скорости стоял с ращеплением, то все (у нас начальство упыри экономит).

1) Я поседел.

2) Я стал искать что можно сделать.

План был такой я просто с помощью миграции включил копирование таблиц по одной в другой инстанс на другой машине.

Оказалось что слетела таблица которая в принципе кэш.

Хорошие новости: Я все восстановил.

Плохие новости: MS SQL иногда при миграции через DTS (я жаловался на начальство? У нас всё еще MS SQL 2000) делает не совсем точные копии. Местами слетели ключи (там и понять можно там счетчики при копировании выключают). Местами тип Digital стал Numeric и вообще еще месяц я наблюдал чудеса.

В статью я бы ещё добавил ошибки такого рода, как

"OBJECT ID 60 possibly due to schema or catalog inconsistency. Run DBCC CHECKCATALOG".

Эта ошибка может появиться после того, как из системной таблицы sysobjvalues, а именно, из кластерного индекса данной таблицы были выгружены повреждённые страницы после
"DBCC CHECKDB(db_id, REPAIR_ALLOW_DATA_LOSS)"

Это означает, что либо у Вас сейчас рассинхронизация и необходимо лишь перезапустить
SQL Server, либо имеется блокировка на данный объект (sysobjvalues) какой-то транзакцией, которая не может быть убита.

Во-втором случае, ребята предлагают делать re-attach с FOR ATTACH_REBUILD_LOG, чтобы убить такую транзакцию в логе.

Ссылка на случай и как с этим бороться:

https://nvarscar.wordpress.com/2018/03/19/corruption-in-system-object-possibly-due-to-schema-or-catalog-inconsistency/

Это перевод статьи (которой уже больше 10 лет к тому же), поэтому добавлять что-то сюда считаю неправильным. Но вы вполне можете сами сделать и опубликовать расширенную версию :)

Sign up to leave a comment.

Articles

Change theme settings