v7: SQL база данных в режиме single user emergency mode #671743


#0 by kupec
Как такое лечится ???? SQL 2000
#1 by КонецЦикла
ALTER DATABASE НазваниеБазы Не то?
#2 by Mikeware
сингл или эмердженси?
#3 by MaximRodnik
Если эмердженси, то дело худо и переводить в онлайн нельзя до устранения причин и снятия бэкапа.
#4 by kupec
в эмергенси
#5 by vcv
Плохо. База потенциально повреждена и ни кто не гарантирует её целостность. Лучше бы из бэкапа поднять. Если нет воможности из бэкапа, то попробуйте где-то так: sp_configure 'allow updates', 1 reconfigure WITH override GO DBCC CHECKDB('<dbname>', REPAIR_ALLOW_DATA_LOSS) GO ALTER DATABASE <dbname> SET ONLINE, MULTI_USER GO После каждого DBCC CHECKDB внимательно рассматривать выдачу. Возможно и восстанавливать дальше смысла нет. :(
#6 by КонецЦикла
Да, да, очень опасно, но советуем потерять данные :) Попробуй так выкрутиться, REPAIR_ALLOW_DATA_LOSS - на крайний случай:
#7 by ЧеловекДуши
Руками переткни, галочку, в менеджере SQL :)
#8 by ЧеловекДуши
А индексацию сделать?
#9 by ЧеловекДуши
При работе в системе "1С: Предприятие для SQL" необходимо периодически проверять базу данных командой dbcc checkdb. Кроме того, в случае появления каких- либо сбоев работы программы, рекомендуется провести реиндексацию данных с помощью встроенной процедуры _1sp_DBReindex. •  Как производить проверку, переиндексацию базы на SQL Server Проверку логической целостности нужно выполнять штатными средствами 1С:Предприятия (Тестирование и исправление ИБ). В случае, если такую проверку не удается выполнить, следует проверить физическую целостность БД средствами MS SQL. Для проверки целостности средствами MS SQL нужно выполнить следующую команду: DBCC CHECKDB ('<имя базы>',REPAIR_REBUILD) Перед выполнением этой команды нужно базу данных перевести в режим "single user": sp_dboption '<имя базы>','single user',true. В процессе работы DBCC CHECKDB могут быть обнаружены ошибки и часть может быть сразу же исправлена. Если ошибки остались, то по всей видимости их нельзя восстановить без потери некоторых данных. В этом случае нужно запустить DBCC CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS (перед запуском желательно сделать копию файлов базы данных). DBCC CHECKDB ('<имя базы>',REPAIR_ALLOW_DATA_LOSS) После выполнения DBCC CHECKDB нужно не забыть вернуться в нормальный режим (выйти из режима "single user"): sp_dboption '<имя базы>','single user',false Переиндексацию базы данных на MS SQL не нужно делать так часто, как в случае с DBF-версией 1С:Предприятия (например, при аварийном завершении работы пользователя). MS SQL автоматически поддерживает индексы в актуальном состоянии. Пересоздавать индексы имеет смысл в одном из следующих случаев: 1) Индекс физически поврежден. Это случается довольно редко и для восстановления нужно использовать вышеупомянутый DBCC CHECKDB. 2) Страницы индекса сильно фрагментированы и требуется их упорядочить. 3) Нужно изменить степень заполнения индексных страниц (fill factor). 4) Требуется изменить тип индекса (кластерный/некластерный). При использовании 1С это обычно неактуально. Для пересоздания индексов следует воспользоваться командой: DBCC DBREINDEX ('<имя таблицы>') или запустить хранимую процедуру, которая переиндексирует все таблицы в базе данных: EXEC _1sp_DBReindex
#10 by КонецЦикла
REPAIR_ALLOW_DATA_LOSS советуют на непрофильных форумах обычно :) Кроме этого переиндексация не всегда помогает, бывает необходимость удалить индексы и создать заново (в этом ничего страшного если это некластерный индекс) Так что проблематичное падение - это, как правило, ручная работа (если занимается специалист, а не 1С-ник) Можно восстановить и поврежденные страницы, и данные взять из бэкапа (если модель симпл или нет бэкапов в цепочке)
#11 by Chai Nic
Такое бывает практически в одном случае - при физическом сбое диска (или райд-массива). Может, бэдблоки есть. Рекомендую перед попыткой подключения скопировать файл еще куда-то..
#12 by Chai Nic
Ну и еще есть сторонние утилиты, вытаскивающие уцелевшую инфу из физически поврежденного mdf файла..
#13 by ЧеловекДуши
Это у меня просто буклетик, и там разъяснение по поводу REPAIR_ALLOW_DATA_LOSS
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С