Добрый день, коллеги!
В общем, история такая. Есть БД на 1С 8.2, которую я переношу на 1С 8.3, вроде процесс идет. Все ниже перечисленное (алиас БД и прочее - вымышленное или тестовое :)
Давеча решил восстановить БД из архива, все просто, но вот застрял на пару дней. У меня была одна тестовая база, и я решил накатить архив на нее. Архив восстановился без проблем, я поработал, потом решил забрать БД домой и проработать детали дома (благо февральские праздники, вообще не представляю, что делать в длинные праздники). Поработал дома, прихожу в офис, копирую БД и делаю "Присоединить" и опля - ошибка:
Сразу подумал на права, назначил все права, полный доступ, Unlocker не помог. Русский сегмент интернета тоже, там сходились на мысли, мол "дай права и все", "проверь под какой учеткой запускается сервисы sql", короче ничего дельного. Пришолось гуглить на забугорных сайтах и вот добрый человек из "клятой" нами "пиндосии" дал норм совет, который я и выкладываю (если кто сможет объяснить лучше я только рад)
1. Проблема была в системной базе TempDB, а имеено типа в ней уже лежит инфа о том, что БД, которую я пытаюсь присоединить уже "присоединена", хотя в списке БД в дереве "Обозревателя объектов" этой БД нет, поэтому попытка "Присоединить" заканчивается fatal error OS код ошибка (32 ). Надо как-то обновить инфу в этомй системной базе.
2. Для начало надо было убедиться в что ошибка именно в этом, скачиваем программу Process Explorer
3. Запускаем
4. На панели инструментов "Find" ищем какие процессы "глумятся" над нашим mdf файлом
5. Видим такую картину
6. Как видно, кроме sqlserver никакого
7. Далее запускаем из командной консоли следующую последовательность команд
1. Старт SQL Server с параметрами “Net Start MSSQL$SQL2014 /mSQLCMD /f /T3608”
2. Старт SQLCMD с параметрами "SQLCMD –S(local)\SQL2014"
3. Выполним скрипт T-SQL
USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\DATA\tempdb.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\DATA\tempdb.ldf'); GO
4. Стоиим SQL командой “net stop MSSQL$SQL2014”
5. Старт SQL.в норм режиме (без параметров)
Возможно, у вас пути выглядят по-другому, у меня все стандартно на C установлена.
И вуаля БД присоединяется без проблем, и можно дальше колдовать над ней. Спасибо аглицким доброжелателям, нехай зря мы их "поливаем" дер....мом.
P.S. может, излишне эмоционально, но реально это помогло, а то все 4 дня магичекого колдовства дома над базой, и бац - на работе не мог обновиться (дело не в коде и сравнить/объединить cf файл, а именно сама инфа, которую не выгрузишь в dt файл (нет, можно выгрузить, но только лет через 100 выгрузится база размером 600 ГБ), так что гоняю базу через sql).
Ну и всех женщин с наступающим международным женским днем!