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

Откуда:
Сообщений: 78
Добрый день.
Дату FULL восстановления можно посмотреть в свойствах Базы - вкладка Общая - Последнее рез.копир-е данных.
Как узнать дату восстановления (full+DIFF) базы SQL?
То есть дату файла База.Diff, с которого сделано восстановление.
23 июн 16, 14:50    [19326541]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
чего-то я не понимаю,
каким местом восстановление к бэкапу???
ну у меня на этой вкладке у одной базы сегодняшняя дата, т.к. сегодня был полный бэкап.
а про чем тут ee восстановление?
эту базу восстанавливали год назад.
а соседнюю базу и вовсе 5 лет назад восстанавливали в последний раз,
хотя дата последнего бэкапа у ней тоже сегодняшняя
23 июн 16, 14:58    [19326596]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
Владислав Колосов
Member

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

в журнале.
23 июн 16, 15:01    [19326617]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
Владислав Колосов
keepermode,
в журнале.

в каком журнале?
у нас еррорлог рециклируется несколько раз в месяц,
ни одного еррорлога пятилетней давности и в помине нет.
но это еще что.
у нас есть базы, которые вообще ни разу не восстанавливали.
а дата последнего бэкапа у них всех тоже сегодняшняя.
и теперь что?
связь-то какая между бэкапом и восстановлением?
первое каждый день и не по разу делается, а второго мoгло не быть вообще
23 июн 16, 15:05    [19326635]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
komrad
Member

Откуда:
Сообщений: 5252
keepermode
Добрый день.
Дату FULL восстановления можно посмотреть в свойствах Базы - вкладка Общая - Последнее рез.копир-е данных.
Как узнать дату восстановления (full+DIFF) базы SQL?
То есть дату файла База.Diff, с которого сделано восстановление.


может этот скрипт поможет

+
select 
	/*Restore History*/
	  rh.restore_date [Restore Date]
	, case 
		when rh.restore_type='D' then 'Database'
		when rh.restore_type='F' then 'File'
		when rh.restore_type='G' then 'FileGroup'
		when rh.restore_type='I' then 'Differential'
		when rh.restore_type='L' then 'Log'
		when rh.restore_type='V' then 'VerifyOnly'
		when rh.restore_type='R' then 'Cancel'
		else rh.restore_type end as [Restore Type]
	, rh.destination_database_name [Destination DB]
	, rh.[user_name] [Restored By]
	
	/* backup media family */
	, bmf.physical_device_name [Backup Device]
	, case 
		when bmf.device_type=2 then 'Disk'
		when bmf.device_type=5 then 'Tape'
		when bmf.device_type=7 then 'Virtual Device'
		when bmf.device_type=105 then 'Backup Device'
		else convert(varchar(10),bmf.device_type) end [Device Type] 
		
	/*Backupset Info*/
	, bs.name [Backupset Name]
	, bs.[description] [Backupset Desc]
	, case
		when bs.[type] = 'D' then 'Database' 
		when bs.[type] = 'I' then 'Diff DB' 
		when bs.[type] = 'L' then 'Log' 
		when bs.[type] = 'F' then 'File or FG' 
		when bs.[type] = 'G' then 'Diff File' 
		when bs.[type] = 'P' then 'Partial' 
		when bs.[type] = 'Q' then 'Diff Part'
		else bs.[type] end as [Backup Type]
	, convert(money,bs.backup_size/1024./1024.) [Backup Size (MB)]
	, convert(money,bs.compressed_backup_size/1024./1024.) [Backup Size Compressed (MB)]
	, convert(decimal(5,2),100-bs.compressed_backup_size/bs.backup_size*100) [Compression %]
	, bs.server_name [Source SQL]
	, convert(varchar(10),bs.software_major_version)+'.'
		+ convert(varchar(10),bs.software_minor_version)+'.'
		+ convert(varchar(10),bs.software_build_version) [SQL Version]
	, bs.[database_name] [Source DB (SDB)]
	, bs.database_creation_date [SDB Created]
	, bs.[compatibility_level] [SDB CompLevel]
	, bs.[collation_name] [SDB Collation]
	, bs.recovery_model [SDB Recovery]
	
	, bs.[user_name] [Backup Made By]
	, bs.backup_start_date [Backup Started]
	, bs.backup_finish_date [Backup Finished]

	/* LSNs */
	, bs.database_backup_lsn
	, bs.first_lsn
	, bs.last_lsn
	, bs.checkpoint_lsn
	
	/*Restore Options*/
	, rh.[replace] [With Replace]
	, rh.[recovery] [With Recovery]
	, rh.stop_at
	, rh.stop_at_mark_name
	, rh.stop_before
from msdb.dbo.restorehistory rh 
   join msdb.dbo.backupset bs on rh.backup_set_id=bs.backup_set_id
   join msdb.dbo.backupmediafamily bmf on  bs.media_set_id=bmf.media_set_id
where 
rh.destination_database_name ='ВАШАБАЗА'
order by rh.restore_history_id desc
23 июн 16, 15:10    [19326655]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
вот тут лежит история, если не потерли
select --top 20 
       restore_date, 
       destination_database_name, 
       restore_type
from msdb.dbo.restorehistory
23 июн 16, 15:11    [19326663]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
keepermode
Member

Откуда:
Сообщений: 78
o-o, Вот скрин - 19.06.2016 21:05:15 - это точно совпадает с датой FULL-бэкап-файла, с которого сделано восстановление.

К сообщению приложен файл. Размер - 50Kb
23 июн 16, 15:12    [19326669]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
keepermode
Добрый день.
Дату FULL восстановления можно посмотреть в свойствах Базы - вкладка Общая - Последнее рез.копир-е данных.
Как узнать дату восстановления (full+DIFF) базы SQL?
То есть дату файла База.Diff, с которого сделано восстановление.
Все даты можно посмотреть только в файлах бэкапа, с которых происходит восстановление.
23 июн 16, 15:25    [19326720]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
да ради бога.
а вот моя база, ни разу не восстановленная.
а забэкапили ее сегодня.
и теперь что?

К сообщению приложен файл. Размер - 46Kb
23 июн 16, 15:26    [19326722]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
keepermode
o-o, Вот скрин - 19.06.2016 21:05:15 - это точно совпадает с датой FULL-бэкап-файла, с которого сделано восстановление.
Эта дата там есть потому, что бэкап базы был сделан на этом же сервере. А совпадает потому, что вы базу восстановили с последнего, а, скажем, не с предпоследнего файла бэкапа.

Сообщение было отредактировано: 23 июн 16, 15:27
23 июн 16, 15:26    [19326723]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
Гавриленко Сергей Алексеевич
Все даты можно посмотреть только в файлах бэкапа, с которых происходит восстановление.

не ну почему это.
как раз и в restorehistory можно, и в еррорлоге.
если сохранились.

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

автор
Как узнать дату восстановления (full+DIFF) базы SQL
23 июн 16, 15:32    [19326753]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
o-o,
дык если бэкапы писать в отдельные файлы, в журнале сервере есть записи о том - из каких файлов произошло восстановление и когда. Поиск по слову restore в журналах.
23 июн 16, 15:41    [19326788]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
keepermode
Member

Откуда:
Сообщений: 78
o-o,
Да, в свойствах Базы указана дата последнего рез.копирования, а не дата FULL-бэкапа, sorry.
Да в истории можно посмотреть дату когда произошло восстановление и тип D-full, i - diff.
Вопрос в том, что нужно узнать на какую дату и время восстановлена База...
23 июн 16, 15:42    [19326793]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
keepermode
Вопрос в том, что нужно узнать на какую дату и время восстановлена База...

а вот тогда приз уходит Гавриленко Сергей Алексеевич-y:
Гавриленко Сергей Алексеевич
Все даты можно посмотреть только в файлах бэкапа, с которых происходит восстановление.
23 июн 16, 15:47    [19326821]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
keepermode
Member

Откуда:
Сообщений: 78
Покопался поиском по слову Restory - не нашёл...
Гавриленко Сергей Алексеевич
Все даты можно посмотреть только в файлах бэкапа, с которых происходит восстановление.
[/quot]
Не понял этого ответа...
Вообще реально узнать в какой временной точке находится восстановленная база?
23 июн 16, 15:59    [19326886]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
поройтесь в еррорлоге,
дата недавняя, он еще жив.
ищите на фразу database was restored.
типа такого:
xp_readerrorlog 0, 1, N'database was restored'

если в нулевом нету, меняйте цифры, в первом, втором, ... ищите.
там будет прописан путь к файлу, из которого восстанавливали.
ему сделайте RESTORE HEADERONLY.
там будет дата создания бэкапа
23 июн 16, 16:02    [19326907]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
keepermode
Гавриленко Сергей Алексеевич
Все даты можно посмотреть только в файлах бэкапа, с которых происходит восстановление.

Не понял этого ответа...

вы вопрос задали неправильно.
и только Гавриленко понял, чего вам надо.
с первого раза.
----
вам не дату восстановления надо, а дату бэкапа.
т.е. на какой момент времени был сделан тот бэкап.
об этом знает только тот самый бэкап, из которого восстанавливались,
либо история бэкапов на том сервере, где бэкап делался.
в любом случае вам надо знать имя файла этого бэкапа.
и его можно найти в еррорлоге сервера, на котором восстанавливали
23 июн 16, 16:09    [19326941]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
keepermode
Member

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

Спасибо, в журнале ссылка на девайс - имя файла оказалось с датой.
23 июн 16, 16:18    [19326994]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
komrad
Member

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


в моем скрипте это столбцы [Backup Started] & [Backup Finished]
эти данные начитываются из самого бекап-файла при восттановлении и хранятся в msdb.dbo.backupset
23 июн 16, 16:22    [19327015]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
o-o
Guest
komrad
o-o
вам не дату восстановления надо, а дату бэкапа.
т.е. на какой момент времени был сделан тот бэкап.
об этом знает только тот самый бэкап, из которого восстанавливались,


в моем скрипте это столбцы [Backup Started] & [Backup Finished]
эти данные начитываются из самого бекап-файла при восттановлении и хранятся в msdb.dbo.backupset

да, действительно,
там и bmf.physical_device_name,
который мы искали в еррорлоге
23 июн 16, 16:40    [19327098]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
keepermode
Member

Откуда:
Сообщений: 78
komrad,
Благодарю, скрипт очень помог!!!
24 июн 16, 09:39    [19329547]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать дату восстановления (full+DIFF) базы SQL  [new]
komrad
Member

Откуда:
Сообщений: 5252
keepermode
komrad,
Благодарю, скрипт очень помог!!!

отлично
24 июн 16, 15:19    [19332043]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить