Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Можно ли восстановить базу не имея лог файл  [new]
Alexander_fx
Member

Откуда:
Сообщений: 657
Привет
большая база 1.5 тб
как оказалось лог файл был на другом диске
база отключалась в штатном режиме и на момент отключения не содержала ошибок.
пытаюсь приаттачить базу - вылетает managment studio
база была в режиме simple - так что в логе ничего полезного не было
подскажите можно ли вытащить данные в таком случае и какой порядок действий.
7 янв 15, 01:55    [17091225]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Alexander_fx,

Попробуйте так:
CREATE DATABASE YourDatabaseName ON (FILENAME = N'FilePath.mdf')
FOR ATTACH_REBUILD_LOG;


Если не получится, посмотрите какие ошибки в логе сервера.

P.S. То что база в режиме Simple совсем не значит, что журнал транзакций ненужный балласт. Журнал транзакций важнейшая часть базы данных вне зависимости от модели восстановления.
7 янв 15, 08:09    [17091351]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Alexander_fx
пытаюсь приаттачить базу - вылетает managment studio
Либо командой, как написал Ruuu, либо разбирайтесь с ошибкой студии, в первую очередь сравните версии студии и сиквела.
7 янв 15, 11:43    [17091487]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Alexander_fx
Member

Откуда:
Сообщений: 657
Ruuu,

Привет - С Рождеством.

CREATE DATABASE YourDatabaseName ON (FILENAME = N'e:\Order_Log.mdf')
FOR ATTACH_REBUILD_LOG;

File activation failure. The physical file name "M:\Order_Log_log.ldf" may be incorrect.
The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.
Msg 1813, Level 16, State 2, Line 1
Could not open new database 'YourDatabaseName'. CREATE DATABASE is aborted.

на файле e:\Order_Log.mdf стоят права Users с всеми правами.
подскажите пожалуйста куда копать дальше.
7 янв 15, 18:48    [17092210]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Alexander_fx
Member

Откуда:
Сообщений: 657
Alexander_fx,

по поводу версий- скорее всего база была создана в mssql server 2008 а сейчас пытаюсь приаттачить в mssql 2012
7 янв 15, 18:50    [17092218]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
aleks2
Guest
Alexander_fx
File activation failure. The physical file name "M:\Order_Log_log.ldf" may be incorrect.

У тя, страдалец, диск M: ё?
Он доступен для сервера?
7 янв 15, 18:52    [17092229]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
Alexander_fx
The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only.
Если отбросить вариант с read-only, данное сообщение означает, что утверждение
Alexander_fx
база отключалась в штатном режиме
не соответствует действительности.

Как чинить описано тут.
7 янв 15, 19:56    [17092393]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Alexander_fx
Member

Откуда:
Сообщений: 657
aleks2,

да -диск доступен - ( сначала бала ошибка access denied - но я добавил права users и ошибка сменилась на текущую)
и я же выбираю mdf файл - а ругается на отсутсвие ldf
7 янв 15, 19:57    [17092397]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
aleks2
Guest
Alexander_fx
aleks2,

да -диск доступен - ( сначала бала ошибка access denied - но я добавил права users и ошибка сменилась на текущую)
и я же выбираю mdf файл - а ругается на отсутсвие ldf

1. Она ругается не на отсутствие, а на НЕВОЗМОЖНОСТЬ СОЗДАТЬ "M:\Order_Log_log.ldf".
2. Надо не права Users, а полный доступ к папке с правами учетной записи СЕРВЕРА MS SQL.
8 янв 15, 08:00    [17093485]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
o-o
Guest
aleks2
Alexander_fx
aleks2,

да -диск доступен - ( сначала бала ошибка access denied - но я добавил права users и ошибка сменилась на текущую)
и я же выбираю mdf файл - а ругается на отсутсвие ldf

1. Она ругается не на отсутствие, а на НЕВОЗМОЖНОСТЬ СОЗДАТЬ "M:\Order_Log_log.ldf".
2. Надо не права Users, а полный доступ к папке с правами учетной записи СЕРВЕРА MS SQL.

да прям. ТС же пишет, что лог на другом диске лежал (на каком-то М, как мы видим)
.mdf не дурак и помнит, где лежал log file, для начала сервер ищет его там.
не найдя лог там, где он был, он бы новый лог-файл создал и не пикнул, даже без REBUILD_LOG
(это надо указывать, когда было несколько файлов лога, a если был один, достаточно FOR ATTACH, все равно пересоздал бы),
если бы был clean shutdown.
но он написал про незавершенные транзакции, так что превед медвед 17092393
8 янв 15, 09:47    [17093580]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Теперь похоже только руками можно пробовать данные вытянуть в новую базу, если они представляют ценность.
8 янв 15, 10:20    [17093621]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Alexander_fx
Member

Откуда:
Сообщений: 657
[b][/b]Winnipuh,

а можно поподробнее - как можно руками вытащить хоть что то
не хочется верить что из файла в 1.5 tb при отсутствии лог файла в несколько метров нельзя ничего вытащить.
8 янв 15, 12:57    [17093942]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
aleks2
Guest
o-o
но он написал про незавершенные транзакции, так что превед медвед

Значение союза "OR" вам, надеюсь, известно?

Alexander_fx
[b][/b]Winnipuh,
а можно поподробнее - как можно руками вытащить хоть что то
не хочется верить что из файла в 1.5 tb при отсутствии лог файла в несколько метров нельзя ничего вытащить.

Руками тока Пятачок сможет. Друг виннипуха.

ЗЫ. Можно разыграть "подмену файла .mdf" + repair_allow_data_loss.
8 янв 15, 14:41    [17094201]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Александр Привалов
Member

Откуда:
Сообщений: 16
бекапов как я понял нет

1. ОБЯЗАТЕЛЬНО сделать копию текущего файла mdf, с копии еще раз копию и убрать все подальше

2. Посмотреть под какой учеткой запускается mssql и дать права этой учетке на все.

3. Внимательно прочитать по ссылке. Подумать. Задать все вопросы тут.
https://www.sql.ru/faq/faq_topic.aspx?fid=123

4. Вопросы по результатам выполнения задавать с цитатами ошибок, сообщений.

5. Надеюсь сервер тот же самый? Если свежая инсталляция или другой сервер, то нужно догнать до той же версии.
8 янв 15, 20:52    [17095180]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
o-o
Guest
aleks2
1. Она ругается не на отсутствие, а на НЕВОЗМОЖНОСТЬ СОЗДАТЬ "M:\Order_Log_log.ldf".

вместе перечитаем?
Alexander_fx
CREATE DATABASE YourDatabaseName ON (FILENAME = N'e:\Order_Log.mdf')
FOR ATTACH_REBUILD_LOG;

File activation failure. The physical file name "M:\Order_Log_log.ldf" may be incorrect.
The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

1. он пишет, что не смог активировать лог-файл на диске М.
с чего бы вдруг на М, если ТС создает базу на Е?
вот как раз потому, что в .mdf записано, что лог был на М.
ну воспроизводится же. или мне картинку вывесить?
2. по поводу OR.
я же потом ссылаюсь на пост invm, где есть оговорка для педантов: "Если отбросить вариант с read-only".
ну хотите -- спросите ТС:
Alexander_fx, у вас что, база была read-only?
подождем, что ответит.

...или вы про "возможные причины ненахождения лога"?
т.е. про or lost due to a hardware or environment failure?
так то пишут не про невозможность сейчас на Е создать,
а пишут, по каким причинам на М не нашелся лог.
его могли ручками потереть, а мог диск полететь.
как я из описания ТС понимаю, "оказалось лог файл был на другом диске"
т.е. был да сплыл. или действительно удалили, или того М больше нет (под рукой или вообще)

---
еще мне нравится, как игнорируется ссылка на Рэндала из того же поста, куда и я отправляю: 17092393
где дан "проапгрэйденный" алгоритм попытки возврата базы к жизни.
лучше, конечно, отправить в фак для 2000-ого, это ж в 2015 году самая ходовая версия сервера
8 янв 15, 22:36    [17095351]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Alexander_fx
Member

Откуда:
Сообщений: 657
o-o,

спасибо что не бросаете
немного ответов
1- база не была ReadOnly
2- ldf был на другом диске - и был утерян при переезде

в данный момент поменял букву диска на M - чтобы база ссылалась на существующий диск
текущая ошибка
CREATE DATABASE kaka ON (FILENAME = N'M:\Order_Log.mdf') FOR ATTACH_REBUILD_LOG;

File activation failure. The physical file name "M:\Order_Log_log.ldf" may be incorrect.
The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.
Msg 1813, Level 16, State 2, Line 1
Could not open new database 'kaka'. CREATE DATABASE is aborted.


ссылка на Рэндала не игнорируется - но я никак не могу подцепить базу чтобы делать необходимые манипуляции. а как я понимаю в его примере база должна быть на сервере но без лог файла.
9 янв 15, 01:16    [17095648]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Alexander_fx,

как вы базу назовете так она и поплывет :-)
9 янв 15, 02:58    [17095847]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
o-o
Guest
Alexander_fx,
смотрите:
лога у вас нет, уже все, бесполезно буквы менять.
делаем как тут описано: Disaster recovery 101: hack-attach a damaged database
1. свой имеющийся mdf пока держите в другом месте.
2. создайте базу с теми же путями/названиями файлов, что и была
3. переведите ее в оффлайн
4. удалите все ее файлы
5. положите туда ваш mdf.
теперь база приаттачена, можете попробовать перевести в онлайн,
но думаю, что напишет то же самое про незавершенные транзакции. поэтому переводите сразу в emergency
ну и дальше уже как описано
9 янв 15, 11:14    [17096082]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
leov
Alexander_fx,

как вы базу назовете так она и поплывет :-)


в данном случае другой временной порядок: сначала она уплыла, а потмо уже ее обзывают
9 янв 15, 12:43    [17096350]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
o-o
Guest
у меня в свое время было 3 базы, простите, все 3 "какка" с номерами 1, 2 и 3.
потом думаю, ну и кто же сидит в дерьме в результате?
с тех пор не обзываюсь. на базы, по крайней мере
9 янв 15, 12:59    [17096413]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
aleks2
Guest
o-o
aleks2
1. Она ругается не на отсутствие, а на НЕВОЗМОЖНОСТЬ СОЗДАТЬ "M:\Order_Log_log.ldf".

вместе перечитаем?

с чего бы вдруг на М, если ТС создает базу на Е?


С тобой читать бесполезно.
С того, что сервер пытается создать лог, ТАМ, ГДЕ ОН БЫЛ.
9 янв 15, 13:11    [17096477]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Alexander_fx
[b][/b]Winnipuh,

а можно поподробнее - как можно руками вытащить хоть что то
не хочется верить что из файла в 1.5 tb при отсутствии лог файла в несколько метров нельзя ничего вытащить.


Пробуйте тулзы типа

Stellar Phoenix® SQL Database Repair

и другие.
9 янв 15, 13:12    [17096478]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
aleks2
Guest
Лучше попробовать "для лохов"

sp_attach_single_file_db

может полегчает.
9 янв 15, 13:20    [17096515]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
o-o
Guest
aleks2
С тобой читать бесполезно.
С того, что сервер пытается создать лог, ТАМ, ГДЕ ОН БЫЛ.

с тобой еще бесполезнее, халявщик.
вот репро, с картинками
-- first session:
create database aleks2 on  
( name = 'aleks2', 
filename = 'C:\_pomojka\aleks2.mdf')
 log on 
( name = 'aleks2_log', 
filename = 'C:\_pomojka\aleks2_log.ldf');
go

use aleks2;
go

select v1.number
into dbo.t
from master..spt_values v1 cross join master..spt_values v2 cross join master..spt_values v3

-- second session:
shutdown with nowait

в первой сессии создали базу, открыли транзакцию.
во второй crash.
фото папки, где лежали файлы базы, прилагаю
9 янв 15, 14:12    [17096737]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли восстановить базу не имея лог файл  [new]
o-o
Guest
картинка номер 1, не прицепилась, пардон

К сообщению приложен файл. Размер - 96Kb
9 янв 15, 14:16    [17096759]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить