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

Откуда:
Сообщений: 4
Нужно восстановить базу из лога транзакций.
Ситуация как всегда авральная. Умер массив на котором лежал mdf файл. лог транзакций цел. Пока системщики пытются прочитать информацию с массива пытаемся восстановить базу из лога транзакций.
Что имеем:
1. Sql 2012
2. Лог транзакций от базы от 05.03.15
3. Предыдущая версия базы от 03.02.15, оставшаяся на другом сервере.
4. Копии файлов базы (просто скопированные файлы) 23.02.2015
5. Резервная копия сделанная средствами SQL (не бэкап, а именно резервная копия) от 17.02.14

Есть ли возможность восстановления? если да, то как?
7 мар 15, 06:04    [17355666]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
aleks2
Guest
Вы имеете, самое позднее, данные на 23.02.2015.
Остальное можно выкинуть.

ЗЫ. Есть люди, которые делают бэкапы и есть люди, которые будут делать бэкапы.
7 мар 15, 09:34    [17355760]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
Любитель MSSQL
Member

Откуда:
Сообщений: 32
axelload
Нужно восстановить базу из лога транзакций.
Ситуация как всегда авральная. Умер массив на котором лежал mdf файл. лог транзакций цел. Пока системщики пытются прочитать информацию с массива пытаемся восстановить базу из лога транзакций.
Что имеем:
1. Sql 2012
2. Лог транзакций от базы от 05.03.15
3. Предыдущая версия базы от 03.02.15, оставшаяся на другом сервере.
4. Копии файлов базы (просто скопированные файлы) 23.02.2015
5. Резервная копия сделанная средствами SQL (не бэкап, а именно резервная копия) от 17.02.14

Есть ли возможность восстановления? если да, то как?


Копии и лога тоже имеются или только файлов данных в пункте 4?

Сообщение было отредактировано: 7 мар 15, 18:54
7 мар 15, 18:46    [17356656]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
axelload
Member

Откуда:
Сообщений: 4
Любитель MSSQL,

да. копии лога тоже имеются. можно развернуть полноценную базу.
7 мар 15, 19:18    [17356717]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
5. Резервная копия сделанная средствами SQL (не бэкап, а именно резервная копия) от 17.02.14


C этого момента поподробнее. У MS SQL нельзя, кроме как средствами SQL сделать бэкап. Покажите результат RESTORE HEADERONLY FROM DISK = N'<здесь путь к файлу>' .

И еще вопрос, сам инстанс живой? В каком состоянии бд? Бэкап лога сможете сделать с опцией WITH NORECOVERY?
7 мар 15, 20:22    [17356873]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
OneTM
Member

Откуда:
Сообщений: 3
Ситуация там следующая. Умер диск с mdf файлами,а логи остались живы, вопрос в том, можно ли эти логи подцепить к старым копиям баз?
8 мар 15, 07:55    [17357898]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
OneTM
можно ли эти логи подцепить к старым копиям баз?
Нельзя.

Можно восстановить, если:
- модель восстановления БД - полная;
- есть последний полный бекап;
- с момента последнего полного бекапа не было бекапов лога.
8 мар 15, 08:41    [17357918]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
OneTM
Member

Откуда:
Сообщений: 3
invm, В нашем случае, есть следующее 2 скл-сервера, условно 1 февраля база была скопирована с первого на второй, остановка скл сервера и копирования баз, далее на 2м сервере она проработала месяц и умер винт с mdf. Как следствие потеря всех данных за месяц. На текущий момент, мы можем сделать фул бекап базы от 1 февраля,на 1м сервере. Вопрос как к нам подцепить оставшийся лог со второго сервера.

Так же вопрос, чем можно открыть ldf, хочу попробовать скопировать транзакции за этот месяц в ldf базы от 1го февраля.
8 мар 15, 08:52    [17357921]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
OneTM, кроме наличия полного бекапа, было перечислено еще два обязательных условия.
8 мар 15, 08:58    [17357925]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
axelload
Member

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

1. Модель восстановления полная.
2. Бэкап есть От 17.12.14Но сделан он с галочкой только резервная копия.
3. Никаких бэапов логов или базы с 17.12.14. Средствами sql непроизводилось.
8 мар 15, 09:09    [17357937]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
axelload,

1. Сделать бекап журнала: Disaster recovery 101: backing up the tail of the log - Case 2: tail-of-the-log backup when server is no longer available.
2. Восстановить полный бекап и накатить бекап журнала, полученный в п.1.
8 мар 15, 09:29    [17357943]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
axelload,

Перед любыми манипуляциями, не забудьте сделать резервную копию вашего ldf.
8 мар 15, 09:45    [17357955]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
OneTM
Так же вопрос, чем можно открыть ldf, хочу попробовать скопировать транзакции за этот месяц в ldf базы от 1го февраля.


http://www.apexsql.com/sql_tools_log.aspx Но стОит денег.
8 мар 15, 13:02    [17358253]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
axelload
Member

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

Изучил статью. Если я все правильно понял главным условием для данного мануала, является наличие бэкапа базы. а т.к. его нет он выдал на попытку сделать бэкап лога транзакций

BACKUP LOG [dbname] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\dbname\1\DBMaint_Log_Tail.bck' WITH INIT, NO_TRUNCATE;
GO

вот такую штуку
Сообщение 4214, уровень 16, состояние 1, строка 1
Инструкцию BACKUP LOG невозможно выполнить, так как не существует резервной копии текущей базы данных.
Сообщение 3013, уровень 16, состояние 1, строка 1
BACKUP LOG прервано с ошибкой.
8 мар 15, 20:47    [17359092]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
o-o
Guest
axelload,

это называется, ваша база ни в каком не в FULL.
пока не снимете полный бэкап, хоть вы и вычитываете в свойствах базы FULL,
на самом деле она в PSEUDO-SIMPLE, и этот самый полный бэкап вы не делали никогда.
иными словами, поздно пить Боржоми...
(17355760)
8 мар 15, 20:58    [17359114]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
axelload
Если я все правильно понял главным условием для данного мануала, является наличие бэкапа базы. а т.к. его нет он выдал на попытку сделать бэкап лога транзакций
Так и есть.

Создали базу, или приаттачили, или восстановили из бакапа, или достался сервер по приказу начальника - проверяете, что база в FULL, и делаете полный бакап, и не "с галочкой только резервная копия".

И после этого можно жить спокойно, настроив, конечно, по расписанию полные бакапы и бакапы лога.
8 мар 15, 21:38    [17359178]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
OneTM
Member

Откуда:
Сообщений: 3
alexeyvg, Но лог транзакции содержит недостающую информацию. В целом логично предположить,что их можно применить к базе находящейся в состояние на месяц назад от текущего лога. Вопрос в том как добавить в старый лог транзакции из нового,предварительно сняв с них пометку о вставке в бд.
8 мар 15, 21:52    [17359207]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
o-o
Guest
alexeyvg,
может им проще в SIMPLE жить.
скорее всего, раз ни разу не пытались до этого сделать бэкапы лога,
то не сильно им и надо.
а полный с COPY_ONLY сделали зачем?
чтобы лог не начал расти, т.к. им он не нужен, равно как и полная модель.
---
сейчас насоветуете полный бэкап сделать, оставив в FULL,
ждите ТС в ближайшее время с темой под заголовком "лог вырос, караул".
по мне, так лучше ТС отправить сюда:
Choosing the Recovery Model for a Database
8 мар 15, 21:52    [17359209]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
o-o
Guest
axelload
Если я все правильно понял главным условием для данного мануала, является наличие бэкапа базы

неправильно поняли.
вот у вас есть бэкап, да, полный, и что.
да даже бы без COPY_ONLY его сделали, нормальный, но потом базу перевели в SIMPLE,
все, снова ничего не получится, лог будет усекаться.
вам уже написали необходимые и достаточные условия для восстановления базы из уцелевшего лога,
но раз неясно, снова вывешу:
invm
OneTM
можно ли эти логи подцепить к старым копиям баз?
Нельзя.

Можно восстановить, если:

- модель восстановления БД - полная;
- есть последний полный бекап;
- с момента последнего полного бекапа не было бекапов лога.
8 мар 15, 22:02    [17359223]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
NickAlex66
Member

Откуда:
Сообщений: 319
invm
OneTM
можно ли эти логи подцепить к старым копиям баз?
Нельзя.

Можно восстановить, если:
- модель восстановления БД - полная;
- есть последний полный бекап;
- с момента последнего полного бекапа не было бекапов лога.

И от меня пять копеек:

последний пункт надо поменять на
- с момента последнего полного бекапа могут быть бекапы логов (должны быть под рукой, чтобы накатить).

Итого:
- рестор FULL бэкап WITH NORECOWERY
- рестор бэкапы Log's, если делались и имеются, WITH NORECOWERY
- рестор хвостовой бэкап лога WITH RECOWERY
8 мар 15, 22:24    [17359257]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
o-o
Guest
OneTM
Но лог транзакции содержит недостающую информацию.

тоже неправильно.
он бы содержал эту информацию, если бы были выполнены 3 пункта предыдущего поста.
иначе лог "перезаписывается".
еще раз "на пальцах": если вам надо, чтобы лог хранил всю поступившую в него информацию,
база должна быть в полной модели.
она не будет в полной модели, пока не будет снят полноценный бэкап, без всяких COPY_ONLY.
это будет "базой" для последующих бэкапов лога,
т.е. с этого момента лог начнет хранить инфо без "перезаписи" (и расти).
в вашем случае такой бэкап не был сделан никогда, база об этом "знает" не потому что шарит по диску в поисках бэкапа,
у ней в ней самой прописано:
This is stored in the dbi_dbbackupLSN field in the database boot page.
у вас там NULL,
а в логе инфо наверняка всего за несколько последних часов работы с базой.
так что бесполезно выкапывать тулы по прочтению лога
8 мар 15, 22:31    [17359266]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
OneTM
alexeyvg, Но лог транзакции содержит недостающую информацию. В целом логично предположить,что их можно применить к базе находящейся в состояние на месяц назад от текущего лога. Вопрос в том как добавить в старый лог транзакции из нового,предварительно сняв с них пометку о вставке в бд.
Так у вас новый лог и так содержал бы информацию из старого, если вы "базу копировали" как перенос двух файлов. Но бакап то вы тогда перед этим не сделали, вот в чём проблема.

И вообще нужно было не копировать, а переносить из бакапа. Что за любовь к "копированию файлов", "копии файлов"? Любите копировать файлы - имеете резервную копию только в виде этих файлов, забудьте о восстановлении на любой момент времени.
Хотите нормальной надёжности, хотите иметь возможность восстановления - делайте бакапы.
o-o
alexeyvg,
может им проще в SIMPLE жить.
скорее всего, раз ни разу не пытались до этого сделать бэкапы лога,
то не сильно им и надо.
Вот, выяснилось, что недостаточно в SIMPLE, и оказывается, сильно надо :-)
9 мар 15, 18:15    [17360915]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
o-o
Guest
alexeyvg
o-o
alexeyvg,
может им проще в SIMPLE жить.
скорее всего, раз ни разу не пытались до этого сделать бэкапы лога,
то не сильно им и надо.
Вот, выяснилось, что недостаточно в SIMPLE, и оказывается, сильно надо :-)

да выяснилось совсем другое:
aleks2
Есть люди, которые делают бэкапы и есть люди, которые будут делать бэкапы.

стоял бы симпл, но бэкапы каждый день, никто бы не потерял месяц работы,
даже если бы не выжил mdf,
так что не в модели дело.

я вот другое не пойму:
как они ЗА МЕСЯЦ не заметили, что база не в полной модели?
диски большие, да?
бэкапы логов никто и не думал делать, тем не менее, все это хозяйство не встало с
Msg 9002, Level 17, State 4, Line 1 The transaction log for database 'ла-ла-ла' is full.
9 мар 15, 19:12    [17361092]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
o-o
да выяснилось совсем другое:
aleks2
Есть люди, которые делают бэкапы и есть люди, которые будут делать бэкапы.

стоял бы симпл, но бэкапы каждый день, никто бы не потерял месяц работы,
В общем да...

А вообще тут было много возможностей не потерять данные, но видимо на данные совсем было накласть.
Куча людей смотрели на это день за днём, думали, "вот, а данные-то пропадут, хахаха, но это не моё дело" :-)
9 мар 15, 20:33    [17361417]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы из лога транзакций  [new]
Любитель MSSQL
Member

Откуда:
Сообщений: 32
alexeyvg
o-o
да выяснилось совсем другое:
пропущено...

стоял бы симпл, но бэкапы каждый день, никто бы не потерял месяц работы,
В общем да...

А вообще тут было много возможностей не потерять данные, но видимо на данные совсем было накласть.
Куча людей смотрели на это день за днём, думали, "вот, а данные-то пропадут, хахаха, но это не моё дело" :-)


Скорее даже думали, что данные пропасть просто не могут:)
14 мар 15, 08:36    [17383644]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить