|
потерянный *.ldf | ☑ | ||
---|---|---|---|---|
0
3ak
05.02.13
✎
11:15
|
Так получилось, что грохнули ldf, с концами.
Создал в SQL 2008 новую базу , подпихнул старый mdf. Стала в автономном режиме, сделал запрос ALTER DATABASE Trade SET ONLINE выдает Сообщение 5173, уровень 16, состояние 1, строка 1 Один или несколько файлов не соответствуют основному файлу базы данных. Если предпринимается попытка присоединить базу данных, повторно выполните операцию с использованием правильных файлов. Если такая база данных существует, файл может быть поврежден и должен быть восстановлен из резервной копии. Файл журнала "D:\SQL1cLog\Trade\Trade_log.ldf" не соответствует первичному файлу. Возможно, он принадлежит другой базе данных, либо этот журнал был ранее перестроен. Сообщение 945, уровень 14, состояние 2, строка 1 Не удалось открыть базу данных "Trade" вследствие недоступности файлов, нехватки памяти или места на диске. Подробности см. в журнале ошибок SQL Server. Сообщение 5069, уровень 16, состояние 1, строка 1 Не удалось выполнить инструкцию ALTER DATABASE. как ее оживить ? Курил интернеты , но там в основном решения для SQL 2000 ( База нужна ппц как ( |
|||
1
shuhard
05.02.13
✎
11:16
|
(0) ты ошибся форумом
sql.ru |
|||
2
МихаилМ
05.02.13
✎
11:22
|
sp_attach_single_file_db
|
|||
3
3ak
05.02.13
✎
11:43
|
(2)
sp_attach_single_file_db @dbname = 'Trade2', @physname = 'D:\SQL1cBase\Trade\Trade.mdf' Сообщение 5120, уровень 16, состояние 101, строка 1 Не удалось открыть физический файл "D:\SQL1cBase\Trade\Trade.mdf". Ошибка операционной системы 32: "32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)". ProcessExplorer не показывает что кто-то к нему обращается |
|||
4
1Сергей
05.02.13
✎
11:50
|
(3) дык, скул же и держит его
|
|||
5
Ёпрст
05.02.13
✎
11:53
|
||||
6
Ёпрст
05.02.13
✎
11:57
|
||||
7
3ak
05.02.13
✎
11:58
|
(5) все бы ничего но на шаге
DBCC REBUILD_LOG('Trade', 'D:\SQL1cLog\Trade.ldf') Сообщение 2526, уровень 16, состояние 3, строка 1 Неправильная инструкция DBCC. Правильный синтаксис и список параметров DBCC см. в документации. |
|||
8
3ak
05.02.13
✎
12:05
|
||||
9
Lionee
05.02.13
✎
12:08
|
и как можно ldf потерять? (
|
|||
10
пипец
05.02.13
✎
12:13
|
да скуль небось переставляли
|
|||
11
Сергиус
05.02.13
✎
12:42
|
для версии SQL2000
1. Создаем новую базу с таким же именем и такими же по именам и расположению .mdf и .ldf файлами 2. Останавливаем сервер, подменяем файл .mdf 3. Стартуем сервер, не обращаем внимания на статус базы 4. Из QA выполняем скрипт Use master go sp_configure 'allow updates', 1 reconfigure with override go 4. Там же выполняем select status from sysdatabases where name = '<db_name>' и запоминаем/записываем значение на случай неудачи ребилда лога 5.Там же выполняем update sysdatabases set status= 32768 where name = '<db_name>' 6. Перезапускаем SQL Server 7. В принципе база должна быть видна (в emergency mode). Можно, например, заскриптовать все объекты 8. Из QA выполняем DBCC REBUILD_LOG('<db_name>', '<имя нового лога с указанием полного пути>') SQL Server скажет - Warning: The log for database '<db_name>' has been rebuilt. 9. Если все нормально, то там же выполняем Use master go sp_dboption '<db_name>', 'single user', 'true' go USE <db_name> GO DBCC CHECKDB('<db_name>', REPAIR_ALLOW_DATA_LOSS) go 9a. Если Вам не удалось перевести базу в single user mode, то для проверки целостности данных можно попробовать dbo only mode sp_dboption '<db_name>', 'dbo use only', 'true' 10. Если все в порядке, то sp_dboption '<db_name>', 'single user', 'false' go Use master go sp_configure 'allow updates', 0 go Для MSSQL2005 пункты с 5 по 9 меняем на следующие команды: alter database <db_name> set EMERGENCY, SINGLE_USER dbcc checkdb('<db_name>', REPAIR_ALLOW_DATA_LOSS ) alter database <db_name> set ONLINE, MULTI_USER (соответственно из 10-го убираем sp_dboption '<db_name>', 'single user', 'true' ) Попробуй для 2008-го также сделать.. |
|||
12
Mikeware
05.02.13
✎
12:44
|
(11)-Мальчик, как тебя зовут?
-- Здрррасте! - Ты че тормоз? -- Вася! - Ладно, Вася, скока те лет? -- Сам ты тормоз! © |
|||
13
Сергиус
05.02.13
✎
12:45
|
(12) информация лишней не бывает)
|
|||
14
Mikeware
05.02.13
✎
12:51
|
(13) Ёп дал ссылки на это в (5) - за час до тебя...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |