Имя: Пароль:
1C
1C 7.7
v7: SQL база данных в режиме single user \ emergency mode
0 kupec
 
04.07.13
15:47
Как такое лечится ???? SQL 2000
1 КонецЦикла
 
04.07.13
16:48
ALTER DATABASE НазваниеБазы
SET MULTI_USER;

Не то?
2 Mikeware
 
04.07.13
16:51
сингл или эмердженси?
3 MaximRodnik
 
04.07.13
17:10
Если эмердженси, то дело худо и переводить в онлайн нельзя до устранения причин и снятия бэкапа.
4 kupec
 
04.07.13
18:13
(3) в эмергенси
5 vcv
 
05.07.13
06:13
Плохо. База потенциально повреждена и ни кто не гарантирует её целостность. Лучше бы из бэкапа поднять.
Если нет воможности из бэкапа, то попробуйте где-то так:
USE master
GO
sp_configure 'allow updates', 1
reconfigure WITH override
GO
DBCC CHECKDB('<dbname>', REPAIR_ALLOW_DATA_LOSS)
GO
DBCC CHECKDB('<dbname>', REPAIR_REBUILD )
GO
ALTER DATABASE <dbname> SET ONLINE, MULTI_USER
GO
После каждого DBCC CHECKDB внимательно рассматривать выдачу. Возможно и восстанавливать дальше смысла нет. :(
6 КонецЦикла
 
05.07.13
08:25
(5) Да, да, очень опасно, но советуем потерять данные :)
(0) Попробуй так выкрутиться, REPAIR_ALLOW_DATA_LOSS - на крайний случай:
http://1c911.by/stati_1s/statya-ispravlenie-oshibok-dbcc-checkdb-1s-sql-vruchnuyu.htm
7 ЧеловекДуши
 
05.07.13
08:29
(0) Руками переткни, галочку, в менеджере SQL :)
8 ЧеловекДуши
 
05.07.13
08:31
(5) А индексацию сделать?

USE base_1c
EXEC _1sp_DBReindex
9 ЧеловекДуши
 
05.07.13
08:32
+ (0)

При работе в системе "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 КонецЦикла
 
05.07.13
08:39
(9) REPAIR_ALLOW_DATA_LOSS советуют на непрофильных форумах обычно :)
Кроме этого переиндексация не всегда помогает, бывает необходимость удалить индексы и создать заново (в этом ничего страшного если это некластерный индекс)
Так что проблематичное падение - это, как правило, ручная работа (если занимается специалист, а не 1С-ник)
Можно восстановить и поврежденные страницы, и данные взять из бэкапа (если модель симпл или нет бэкапов в цепочке)
11 Chai Nic
 
05.07.13
08:40
Такое бывает практически в одном случае - при физическом сбое диска (или райд-массива). Может, бэдблоки есть. Рекомендую перед попыткой подключения скопировать файл еще куда-то..
12 Chai Nic
 
05.07.13
08:41
Ну и еще есть сторонние утилиты, вытаскивающие уцелевшую инфу из физически поврежденного mdf файла..
13 ЧеловекДуши
 
05.07.13
08:44
(10) Это у меня просто буклетик, и там разъяснение по поводу REPAIR_ALLOW_DATA_LOSS