Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
есть база, но нет лог файла никак не удается ее развернуть при попытке create database for attach_rebuild_log или sp_attach_single_db получаю ошибку, что поключить невозможно, т.к. была открыта транзакция и требуется файл журнала DBCC REBUILD_LOG поменял синтаксис, на MSDN что-то про него никак не могу найти внятной статьи :( базу подрубил путем подмены файла данных при остановке скула но при попытке выполнить DBCC CHECKDB - получаю сообщение, что журнал не тот - проверка неудалась в общем все упирается в журнал подксажите плиз как быть |
1 мар 13, 15:44 [13999721] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
CREATE DATABASE optdev_dr ON (FILENAME = 'd:\data\optdev_dr.mdf') FOR ATTACH_REBUILD_LOG Сбой при активации файла. Возможно, физическое имя файла "D:\data\OptDev_DR_1.LDF" неправильное. Не удается перестроить журнал, поскольку во время завершения работы базы данных существовали открытые транзакции или подключенные пользователи, для базы данных отсутствуют контрольные точки либо она доступна только для чтения. Эта ошибка может возникать, если журнал транзакций был удален вручную или оказался потерян в результате сбоя оборудования или аварии. Сообщение 1813, уровень 16, состояние 2, строка 3 Невозможно открыть новую базу данных "optdev_dr". Операция CREATE DATABASE прервана. каталог D:\data\ доступен почему не прокатывает - нипонятно ><" |
1 мар 13, 16:38 [14000150] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
ATTACH_REBUILD_LOG для 2012 |
1 мар 13, 16:39 [14000155] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
если положить файл транзакций на место CREATE DATABASE optdev_dr ON (FILENAME = 'd:\data\optdev_dr.mdf') FOR ATTACH_REBUILD_LOG то получаем Сообщение 1813, уровень 16, состояние 2, строка 3 Невозможно открыть новую базу данных "optdev_dr". Операция CREATE DATABASE прервана. Сообщение 9004, уровень 21, состояние 1, строка 3 Произошла ошибка во время обработки журнала для базы данных "optdev_dr". Если возможно, восстановите из резервной копии. Если резервная копия недоступна, возможно, понадобится перестроить журнал. |
1 мар 13, 16:41 [14000164] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
чета какая-то ерунда непонятная кому я указываю ATTACH_REBUILD_LOG не понятно, т.к. ошибки сервер выдает как будто его и нет |
1 мар 13, 16:43 [14000174] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
нет 12 чтоб погонять под рукой ,НО если вдруг есть бекап - то можно порбовать следуещее стопаеш сервер копируеш мдф поднимаеш сервер разворачиваеш бекап БД стопаеш сервер подменяеш мдф пробуеш запустить сервер может и будет тебе хотя бы емердженси мод |
1 мар 13, 16:47 [14000189] Ответить | Цитировать Сообщить модератору |
Гость333 Member Откуда: Сообщений: 3683 |
Потому что (BOL -> CREATE DATABASE):
Раз у вас болтается открытая транзакция, ни о каком clean shutdown речи не идёт. |
||||
1 мар 13, 16:49 [14000205] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
BOL - CREATE DATABASE If the log files are available, the Database Engine will use those files instead of rebuilding the log files. |
||
1 мар 13, 16:54 [14000224] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
Maxx, был бы бэкап - не было бы вопроса :) Гость333, тогда какие еще варианты можно попробывать? вроде сервер новее, а процедуры, что делались на 2008 легко и непринужденно теперь ставатяся непонятно зачем раком |
1 мар 13, 16:54 [14000225] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
читайте выше файл я переносил в другое место, чтобы он не был доступен - но это не помогло или как еще он должен быть недоступен? |
||||
1 мар 13, 16:57 [14000235] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Я то как раз все читаю - "если положить файл транзакций на место" |
||||
1 мар 13, 16:58 [14000239] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
а до этого я написал, что без файла транзакций базу полдцеплять сервер не хочет |
||||
1 мар 13, 18:38 [14000663] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Ну так там и сообщение об ошибке другое. Вы их читаете кстати ? |
||||
1 мар 13, 18:50 [14000703] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
в общем весь вопрос сводиться к тому как мне подключить БД и получить к ней доступ, чтобы можно было попробывать ее вылечить или выдернуть необходмые данные, если работа с БД была завершена аварийно и файл транзакций поврежден в 2000\2005\2008 MSSQL это было возможно, как это сделать в 2012? |
1 мар 13, 18:51 [14000705] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
читал, и читал BOL по ним и гуглил и у яндекса спрашивал, но так и не нашел ответа на мой вопрос, который я озвучил постом выше |
||||
1 мар 13, 18:53 [14000711] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
создать пустую БД с таким же именем и потом подменить мдф ? Пробовали ? |
1 мар 13, 19:14 [14000810] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
1 мар 13, 19:16 [14000817] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
Maxx, конечно пробывал при попытке DBCC CHECKDB('optdev_sp', REPAIR_ALLOW_DATA_LOSS) Сообщение 5173, уровень 16, состояние 1, строка 1 Один или несколько файлов не соответствуют основному файлу базы данных. Если предпринимается попытка присоединить базу данных, повторно выполните операцию с использованием правильных файлов. Если такая база данных существует, файл может быть поврежден и должен быть восстановлен из резервной копии. Файл журнала "D:\data\optdev_sp_1.ldf" не соответствует первичному файлу. Возможно, он принадлежит другой базе данных, либо этот журнал был ранее перестроен. Результаты DBCC для "optdev_sp". CHECKDB обнаружил 0 ошибок размещения и 0 ошибок согласованности в базе данных "optdev_sp". Сообщение 824, уровень 24, состояние 2, строка 1 SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неверный идентификатор страницы (ожидаемый 1:3190; фактический 17970:496910943). Она произошла при прочитать страницы (1:3190) в базе данных с идентификатором 5 по смещению 0x000000018ec000 файла "D:\data\optdev_sp.mdf". Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server. Сообщение 7909, уровень 20, состояние 1, строка 1 Аварийное восстановление завершилось неудачно. Требуется восстановление из резервной копии. а инструкция DBCC REBUILD_LOG('optdev_sp','D:\data\optdev_sp_1.ldf') уже не поддерживается Сообщение 2526, уровень 16, состояние 3, строка 1 Неправильная инструкция DBCC. Правильный синтаксис и список параметров DBCC см. в документации. вот и получается, с какой стороны не зайди, а как журнал ребулднуть непонятно |
1 мар 13, 20:16 [14000976] Ответить | Цитировать Сообщить модератору |
Сергей84 Member Откуда: Мурманск Сообщений: 27465 |
в 2000\2005\2008 я мог запустить REBULD_LOG и пренебречь несогласованостью а что делать в 2012 - кроме как атачить с перестроением ничего не нашел |
||||
1 мар 13, 20:18 [14000980] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||||
1 мар 13, 21:19 [14001187] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
Stilet Member Откуда: УФА, БАШКОРТОСТАН Сообщений: 411 |
Попал в подобную ситуацию. Нашел буржуйское решение, пока не проверил https://www.mssqltips.com/sqlservertip/3579/how-to-attach-a-sql-server-database-without-a-transaction-log-and-with-open-transactions/ на всякий случай сама статья
Сообщение было отредактировано: 1 июл 17, 15:55 |
|
1 июл 17, 13:09 [20605156] Ответить | Цитировать Сообщить модератору |
Stilet Member Откуда: УФА, БАШКОРТОСТАН Сообщений: 411 |
Указанный ниже блок кода проверен для восстановления лог файла SQL 2014 USE master GO DBCC TRACEON(3604) GO ALTER DATABASE TestDB_Repair SET EMERGENCY GO ALTER DATABASE TestDB_Repair SET SINGLE_USER GO DBCC CHECKDB('TestDB_Repair', REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS GO ALTER DATABASE TestDB_Repair SET MULTI_USER GO |
2 июл 17, 08:04 [20606440] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |