Comments 15
Сталкивались ли с этим "OBJECT ID 60 possibly due to schema or catalog inconsistency. Run DBCC CHECKCATALOG".
Эта ошибка может появиться после того, как из системной таблицы sysobjvalues, а именно, из кластерного индекса данной таблицы были выгружены повреждённые страницы после
"DBCC CHECKDB(db_id, REPAIR_ALLOW_DATA_LOSS)"
Я не хочу разводить sql полемику по поводу того что mysql и mssql сравнивать нельзя, но приведу один из примеров.
У нас была задача переехать с одного сервера БД на другой. Что может быть проще (если бы это был mysql) НО! После разворачивания бэкапа на новой машине, выяснилось что системный пользователь и пользователь БД это разные сущности и нужно убить пользователя БД, замапить системного пользователя для данной БД, а потом я должен сделать grant на execute всех stored procedures для данного пользователя. Короче я не хочу вдаваться в тех тонкости но у вас не получится быстро развернуть бекап на другой машине и запустить его :-)
И при этом на конфиге данного MSSQL сервера я думаю хабр жил бы отлично.
К чему я это всё писал. В жизни тоже есть процессы которые требуют бюджетов, откатов и распилов, но при этом они не являются эффективными. Так вот если у вас СВОЙ бизнес то не надо смотреть с в сторону корпоративных SQL решений ;-)
P.S. А уж насколько быстрее и удобнее phpmyadmin чем ms sql studio я молчу. И еще раз я хотел бы напомнить что я пишу не про корпоративно-отмывательские решения а про нормальные веб сайты, которые зарабатывают нормальные деньги ;-)
За 4 года — ни одной проблемы. Несколько раз переносил между серверами достаточно крупные проекты. Ни единой проблемы.
Когда приходится phpmyadmin — хочется только подержать за горло того кто это придумал. После Management Studio — абсолютно неудобно пользоваться.
Возможно мы живем в параллельных мирах?
Мне просто даже интересно почему mssql?
Для mysql есть клиенты и под винду и поудобнее чем phpmyadmin.
Речь идет про соотношение простоты, удобства и скорости.
С MS SQL работаю по следующим причинам:
- -стабильность
- -скорость работы
- -родная интеграция с Entity Framework и с .NET в целом(нет необходимости установки сторонних драйверов как MySQL например)
- -удобные средства работы «из коробки» — Management Studio
- -опять же интеграция с Visual Studio и как следствие скорость разработки
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, чтобы убить такую транзакцию в логе.
Ссылка на случай и как с этим бороться:
Help, my database is corrupt. Now what?