Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление базы данных из ldf-файла / 25 сообщений из 40, страница 1 из 2
09.06.2014, 12:55
    #38665233
777ser777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
Добрый день!
Возможно ли выполнить восстановление базы имея:
1) MDF-файл на начальную дату (месячной давности);
2) LDF-файл на текущую дату.
Бэкап и шринк не делался. Если можно то какими средствами?
Спасибо.
...
Рейтинг: 0 / 0
09.06.2014, 13:00
    #38665241
Гадя Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
...
Рейтинг: 0 / 0
09.06.2014, 13:07
    #38665251
Гадя Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
а, пардон, не так понял
...
Рейтинг: 0 / 0
09.06.2014, 13:10
    #38665255
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
777ser777Добрый день!
Возможно ли выполнить восстановление базы имея:
1) MDF-файл на начальную дату (месячной давности);
2) LDF-файл на текущую дату.
Бэкап и шринк не делался. Если можно то какими средствами?
Спасибо.
модель восстановления у базы какая была?
...
Рейтинг: 0 / 0
09.06.2014, 14:31
    #38665351
777ser777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
msLex777ser777Добрый день!
Возможно ли выполнить восстановление базы имея:
1) MDF-файл на начальную дату (месячной давности);
2) LDF-файл на текущую дату.
Бэкап и шринк не делался. Если можно то какими средствами?
Спасибо.
модель восстановления у базы какая была?

Full (полная) конечно!
...
Рейтинг: 0 / 0
09.06.2014, 16:50
    #38665512
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
Восстанавливаете полный бэкап с norecovery, восстанавливаете бэкап журнала с recovery. Ваш LDF должен принадлежать той забэкапленной базе, разумеется, и иметь резервную копию.
...
Рейтинг: 0 / 0
09.06.2014, 17:55
    #38665580
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
777ser777msLexпропущено...

модель восстановления у базы какая была?

Full (полная) конечно!

Теоретически .

Можно попробовать просто приатачить mdf + ldf файл. Если база подцепится (я не знаю, что может помещать), весь непримененный (тот, что после последнего checkpoint-а) лог должен накатиться на базу, а с учетом того, что checkpoint LSN храниться в самой базе, то проблем возникнуть не должно.



Перед экспериментом желательно скопировать оба файла, дабы иметь еще одну попытку.
...
Рейтинг: 0 / 0
09.06.2014, 20:48
    #38665707
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
Владислав КолосовВосстанавливаете полный бэкап с norecovery, восстанавливаете бэкап журнала с recovery. Ваш LDF должен принадлежать той забэкапленной базе, разумеется, и иметь резервную копию.Дык нету бакапа, в этом и прикол!
...
Рейтинг: 0 / 0
09.06.2014, 21:39
    #38665725
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
msLexМожно попробовать просто приатачить mdf + ldf файл. Если база подцепится (я не знаю, что может помещать), весь непримененный (тот, что после последнего checkpoint-а) лог должен накатиться на базу, а с учетом того, что checkpoint LSN храниться в самой базе, то проблем возникнуть не должно. База может и подцепится, а вот лог накатываться то уже точно не будет. С таким же успехом можно просто восстановить mdf файл без ldf. Результат скорее всего будет тот же.
...
Рейтинг: 0 / 0
09.06.2014, 22:03
    #38665735
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
MindmsLexМожно попробовать просто приатачить mdf + ldf файл. Если база подцепится (я не знаю, что может помещать), весь непримененный (тот, что после последнего checkpoint-а) лог должен накатиться на базу, а с учетом того, что checkpoint LSN храниться в самой базе, то проблем возникнуть не должно. База может и подцепится, а вот лог накатываться то уже точно не будет. С таким же успехом можно просто восстановить mdf файл без ldf. Результат скорее всего будет тот же.
по-чему такая уверенность?
по факту эта ситуация (mdf - месячной давности + "современный" ldf) ничем не отличается от ситуации когда месяц не делался чекпоинт а потом пристрелили процесс sql server-а
...
Рейтинг: 0 / 0
09.06.2014, 23:42
    #38665768
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
msLexпо-чему такая уверенность?Можно снять tail log backup, но накатить его будет не на что - полного бекапа нету. А если подцепить имеющийся mdf месячной давности и сделать полный бекап, то LSN'ы в нем будут уже совершенно другие.
...
Рейтинг: 0 / 0
09.06.2014, 23:58
    #38665773
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
invmmsLexпо-чему такая уверенность?Можно снять tail log backup, но накатить его будет не на что - полного бекапа нету. А если подцепить имеющийся mdf месячной давности и сделать полный бекап, то LSN'ы в нем будут уже совершенно другие.

либо я вас не понимаю, либо вы меня.

предположим у нас есть база на момент времени t1, mdf и ldf "согласованны", "грязных" страниц нет, checkpoint lsn = последнему lsn в логе.

мы производим некое количество изменений, коммитем их которые, они попадают в лог, но из кеша на диск в mdf не сбрасываются, и того у нас получается mdf на момент t1 и ldf на момент времени t2.

в этот момент мы "жестко" ребутаем сервис, sql server по логу повторно накатит все изменения в mdf и принудительно сделает checkpoint

ситуация автора по сути ничем не отличается, только между t1 и t2 прошел месяц.
...
Рейтинг: 0 / 0
10.06.2014, 01:29
    #38665797
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
msLexситуация автора по сути ничем не отличается, только между t1 и t2 прошел месяц.По сути всё правильно, но сиквел не умеет востанавливать данные на дату ранее, чем сделан бакап.

mdf файл да, старый, но бакап то можно сделать только сейчас, вот и восстановить можно будет на момент "сейчас".

То есть у сиквела маловато возможностей, не предусмотрены операции, которые теоретически можно сделать и даже совсем несложно технически.

Разве что попробовать присоединить файл с включённым аттрибутом read-only, может сиквел не поменяет ему всякие LSN-ы, и сделать бакап...

А вообще это лишний раз напоминает о необходимости делать бакапы. Надеюсь, что 777ser777 из тех специалистов, которые потеряли данные из за отсутствия бакапа единственный раз в жизни, как и положено.
...
Рейтинг: 0 / 0
10.06.2014, 01:29
    #38665798
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
нет, не прокатит.
проверяю так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
create database db8;
go

alter database db8
set recovery full;
go

backup database db8
to disk = 'Z:\Anna\_backups\hp\db8\db8_full.bak';
go

alter database db8
set offline;
go

/* copy .mdf to Z:\Anna\_backups\hp\db8, rename .ldf 

test it on another server:
USE [master]
GO
CREATE DATABASE [db8] ON 
( FILENAME = N'Z:\Anna\_backups\hp\db8\db8.mdf' )
 FOR ATTACH
GO

------------
File activation failure. The physical file name "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db8_log.LDF" may be incorrect.
New log file 'Z:\Anna\_backups\hp\db8\db8_log.LDF' was created.

drop database db8;
go

re-copy .mdf to Z:\Anna\_backups\hp\db8, rename .ldf
*/

alter database db8
set online;
go

use db8;
go

with cte as(
select number as n
from master..spt_values
where type = 'p' and number between 0 and 999)

select c1.n * 1000 + c2.n + 1  as n
into dbo.num1
from cte c1 cross join cte c2;
go

alter database db8
set offline;
go


/* copy .ldf to Z:\Anna\_backups\hp\db8*/

/* go to another server */
USE [master]
GO
CREATE DATABASE [db8] ON 
( FILENAME = N'Z:\Anna\_backups\hp\db8\db8.mdf' ),
( FILENAME = N'Z:\Anna\_backups\hp\db8\db8_log.LDF' )
 FOR ATTACH
GO



-----------------------------------
Msg 1813, Level 16, State 2, Line 1
Could not open new database 'db8'. CREATE DATABASE is aborted.
Msg 5125, Level 24, State 1, Line 1
File 'Z:\Anna\_backups\hp\db8\db8.mdf' appears to have been truncated by the operating system. Expected size is 3328 KB but actual size is 2304 KB.
Msg 3313, Level 21, State 2, Line 1
During redoing of a logged operation in database 'db8', an error occurred at log record ID (30:122:54). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.


не могу сейчас объяснить, на какой момент он требует .mdf,
но файл не обрезан.
опыт был проведен 2 раза, файл копируется нормально.
для проверки в третий раз просто пробую сразу же приаттачить этот .mdf без .ldf,
и все с ним ok.

к концу выполнения заполнения таблицы чисел .mdf становится 18.688 Кб,
сервер же требует .mdf размером в 3328 KB
...
Рейтинг: 0 / 0
10.06.2014, 02:04
    #38665804
o-o
o-o
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
стукнуло мне, что он хочет файл .mdf на момент после его первого автоприращения (былo 1 Мб в первом опыте),
повторяю эксперимент, задаю нач. размер для .mdf 5 Мб, автоприращение 2 Мб .
проделываю все вышеописанное, вылазит ошибка:

Msg 1813, Level 16, State 2, Line 1
Could not open new database 'db8'. CREATE DATABASE is aborted.
Msg 5125, Level 24, State 1, Line 1
File 'Z:\Anna\_backups\hp\db8\db8.mdf' appears to have been truncated by the operating system. Expected size is 6144 KB but actual size is 5120 KB.
Msg 3313, Level 21, State 2, Line 1
During redoing of a logged operation in database 'db8', an error occurred at log record ID (30:123:186). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.


ну не знаю я, почему он на мегабайт больше ждет, нету идей, завтра еще подумаю,
а может кто-то знает и поделится соображениями.

судя по ошибке, он все же начинает накатывать,
что такое log record ID, что ему соответствует в выводе fn_dblog?
а то можно посмотреть в исходной базе в fn_dblog, что там за операция, на к-ой спотыкается
...
Рейтинг: 0 / 0
10.06.2014, 08:47
    #38665873
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
o-oстукнуло мне, что он хочет файл .mdf на момент после его первого автоприращения (былo 1 Мб в первом опыте),
повторяю эксперимент, задаю нач. размер для .mdf 5 Мб, автоприращение 2 Мб .
проделываю все вышеописанное, вылазит ошибка:

Msg 1813, Level 16, State 2, Line 1
Could not open new database 'db8'. CREATE DATABASE is aborted.
Msg 5125, Level 24, State 1, Line 1
File 'Z:\Anna\_backups\hp\db8\db8.mdf' appears to have been truncated by the operating system. Expected size is 6144 KB but actual size is 5120 KB.
Msg 3313, Level 21, State 2, Line 1
During redoing of a logged operation in database 'db8', an error occurred at log record ID (30:123:186). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.


ну не знаю я, почему он на мегабайт больше ждет, нету идей, завтра еще подумаю,
а может кто-то знает и поделится соображениями.

судя по ошибке, он все же начинает накатывать,
что такое log record ID, что ему соответствует в выводе fn_dblog?
а то можно посмотреть в исходной базе в fn_dblog, что там за операция, на к-ой спотыкается
Log rec id очень похож на обычный lsn (hex или dec непонятно), а каким образом отцеплялся mdf? Останавливался сервер или база детачилась?
...
Рейтинг: 0 / 0
10.06.2014, 09:30
    #38665909
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
msLexпредположим у нас есть база на момент времени t1, mdf и ldf "согласованны", "грязных" страниц нет, checkpoint lsn = последнему lsn в логе.
...
ситуация автора по сути ничем не отличается, только между t1 и t2 прошел месяц.Очень даже отличается - чекпоинты были. Так что если гипотетически предположить, что удалось присоединить БД из старого mdf и нового ldf, накат лога пойдет с момента последнего чекпоинта.
...
Рейтинг: 0 / 0
10.06.2014, 09:34
    #38665912
Гадя Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
в порядке эксперимента можно попробовать всякие разные сторонние тулзы
сам, правда, никогда не пользовался
...
Рейтинг: 0 / 0
10.06.2014, 09:59
    #38665954
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
invmmsLexпредположим у нас есть база на момент времени t1, mdf и ldf "согласованны", "грязных" страниц нет, checkpoint lsn = последнему lsn в логе.
...
ситуация автора по сути ничем не отличается, только между t1 и t2 прошел месяц.Очень даже отличается - чекпоинты были. Так что если гипотетически предположить, что удалось присоединить БД из старого mdf и нового ldf, накат лога пойдет с момента последнего чекпоинта.
Lsn последнего чекпоинта храниться в странице 1:9 (boot page) самой базы. В mdf месячной давности и LSN чекпоинта месячной давности. Т.е. по идее, именно с этого lsn и должно начаться применения лога
Сейчас попробую провести эксперемент.
...
Рейтинг: 0 / 0
10.06.2014, 11:27
    #38666104
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
Проверил.

1. Создал базу с полной моделью восстановления.
2. Сделал полный бекап (до этого база по факту в simple )
3. Сделал detach.
4. Скопировал mdf
5. Сделал attach
6. Внес изменения в данные.
7. Сделал checkpoint
8. Сделал detach.
9. Подменил mdf на скопированную в 4-том пункте
10. Сделал attach

база подцепилась, но изменений пункта 6 нет, в checkpoint lsn в странице 1:9 храниться lsn завершения последнего checkpoint-а из лога.

видимо, либо в логе также где-то храниться информация о последнем checkpoint lsn, либо sql сканирует лог находит lsn последнего checkpoint-а.
можно "поизвращаться" дальше, найти место хранения checkpoint lsn в логе и в базе и подменить.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
18.03.2020, 11:30
    #39938619
sirsyslik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
Владислав Колосов
Восстанавливаете полный бэкап с norecovery, восстанавливаете бэкап журнала с recovery. Ваш LDF должен принадлежать той забэкапленной базе, разумеется, и иметь резервную копию.


здравствуйте. у меня проблема аналогичная что и у топикстартера. а именно шифровальщик покушал MDF а последний актуальный бекап 3 недельной давности. но есть нетронутый шифровальщиком LDF

сервер мускула не поднимается, вероятно пожрано что то из системного
не могли бы вы подробнее описать вами вышеуказанный порядок действий на новом экземпляре сервера?

---Восстанавливаете полный бэкап с norecovery--- это мне относительно понятно
---восстанавливаете бэкап журнала с recovery--- я так понимаю, речь идет об отдельном бекапе LDF, если да как его получить из оригинального LDF?
...
Рейтинг: 0 / 0
18.03.2020, 12:18
    #39938656
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
sirsyslik,

у Вас должна быть резервная копия журнала при условии, что база имеет полную модель восстановления.
...
Рейтинг: 0 / 0
18.03.2020, 12:25
    #39938662
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
База данных в какой модели восстановления?
...
Рейтинг: 0 / 0
19.03.2020, 16:03
    #39939176
sirsyslik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
Гавриленко Сергей Алексеевич,

полная, файл журнала около 90гб, при том что сама база +-2гб. Шринк не производился ни разу.
...
Рейтинг: 0 / 0
19.03.2020, 16:28
    #39939192
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы данных из ldf-файла
Если базу не отсоединили от сервера, выполните Log tail backup . Это и будет ваш бэкап лога.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление базы данных из ldf-файла / 25 сообщений из 40, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]