Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Как восстановить базу на момент времени? (число прочтений - 3746 )
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Как восстановить базу на момент времени?
30. Июня 2009 :: 09:04
Печать  
SQL 2000 (восстановл. Full), каждую ночь делается полный бекап базы, каждый час бекап лога.

На сервере база называется sql1C, я же пытаюсь восстановить у себя накомпе (по сути другой sql сервер) в базе Proba3

Как правильно это сделать?

  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Как восстановить базу на момент времени?
Ответ #1 - 30. Июня 2009 :: 09:54
Печать  
RESTORE DATABASE 'Proba3' from disk = 'Путь' with replace
ну и дальше последовательно на нее логи
RESTORE LOG 'Proba3' from disk = 'Путь' [with stopat=@date_time]
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Как восстановить базу на момент времени?
Ответ #2 - 30. Июня 2009 :: 10:22
Печать  
как правильно записать время?
меня интересует сегоня на 10.21

[with stopat="200906301021"]   

(просто сейчас не попробовать, мой комп занят , только через 1 час освободится )
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Как восстановить базу на момент времени?
Ответ #3 - 30. Июня 2009 :: 10:28
Печать  
так например

declare @date_time datetime

select @date_time = convert(datetime,'2009-06-30 10:21',121)

RESTORE LOG 'Proba3' from disk = 'Путь' with stopat=@date_time
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Как восстановить базу на момент времени?
Ответ #4 - 30. Июня 2009 :: 10:38
Печать  
что я видно не так делаю,
пробовал:
Код
Выбрать все
declare @date_time datetime
select @date_time = convert(datetime,'2009-06-30 10:21',121)
RESTORE DATABASE 'Proba3' from disk = 'G:\Proba3\BackupSQL' with replace
RESTORE LOG 'Proba3' from disk = 'G:\Proba3\sql1c_tlog_200906300700.TRN' with stopat=@date_time
RESTORE LOG 'Proba3' from disk = 'G:\Proba3\sql1c_tlog_200906300800.TRN' with stopat=@date_time
RESTORE LOG 'Proba3' from disk = 'G:\Proba3\sql1c_tlog_200906300900.TRN' with stopat=@date_time
RESTORE LOG 'Proba3' from disk = 'G:\Proba3\sql1c_tlog_200906301000.TRN' with stopat=@date_time
RESTORE LOG 'Proba3' from disk = 'G:\Proba3\sql1c_tlog_200906301100.TRN' with stopat=@date_time
 



выдает ошибку
Server: Msg 170, Level 15, State 1, Line 3
Line 3: Incorrect syntax near 'Proba3'.
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Как восстановить базу на момент времени?
Ответ #5 - 30. Июня 2009 :: 10:46
Печать  
кавычки не нужны(я тоже в БОЛ не посмотрелУлыбка)
RESTORE DATABASE Proba3 from disk = 'G:\Proba3\BackupSQL' with replace
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Как восстановить базу на момент времени?
Ответ #6 - 30. Июня 2009 :: 12:51
Печать  
Спасибо,
еще вопросик. : распологая только одним полным бекапом сделанным допустим в 12 часов, можно ли восстановить базу на 11.30 ?   
(никаких других бекапов нет)
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Как восстановить базу на момент времени?
Ответ #7 - 30. Июня 2009 :: 13:00
Печать  
нет, без логов транзакций так не получится
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Как восстановить базу на момент времени?
Ответ #8 - 30. Июня 2009 :: 13:10
Печать  
при попытке восстановления вываливаются ошибки
Processed 2462984 pages for database 'Proba3', file 'sql1c_Data' on file 1.
Processed 385 pages for database 'Proba3', file 'sql1c_Log' on file 1.
RESTORE DATABASE successfully processed 2463369 pages in 2035.832 seconds (9.912 MB/sec).
Server: Msg 4306, Level 16, State 1, Line 4
The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step.
Server: Msg 3013, Level 16, State 1, Line 4
RESTORE LOG is terminating abnormally.
Server: Msg 4306, Level 16, State 1, Line 5
The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step.
Server: Msg 3013, Level 16, State 1, Line 5
RESTORE LOG is terminating abnormally.
Server: Msg 4306, Level 16, State 1, Line 6
The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step.
Server: Msg 3013, Level 16, State 1, Line 6
RESTORE LOG is terminating abnormally.
Server: Msg 4306, Level 16, State 1, Line 7
The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step.
Server: Msg 3013, Level 16, State 1, Line 7
RESTORE LOG is terminating abnormally.




код
Код
Выбрать все
declare @date_time datetime
select @date_time = convert(datetime,'2009-06-30 09:21',121)
RESTORE DATABASE Proba3 from disk = 'G:\Proba3\BackupSQL' with replace
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906300700.TRN' with stopat=@date_time
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906300800.TRN' with stopat=@date_time
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906300900.TRN' with stopat=@date_time
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906301000.TRN' with stopat=@date_time 

  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Как восстановить базу на момент времени?
Ответ #9 - 30. Июня 2009 :: 13:34
Печать  
придется еще раз запускатьПечаль
Код
Выбрать все
declare @date_time datetime
select @date_time = convert(datetime,'2009-06-30 09:21',121)
RESTORE DATABASE Proba3 from disk = 'G:\Proba3\BackupSQL' with norecovery, replace,stats = 10/*состояние будет выводить*/
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906300700.TRN' with norecovery
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906300800.TRN' with norecovery
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906300900.TRN' with norecovery
RESTORE LOG Proba3 from disk = 'G:\Proba3\sql1c_tlog_200906301000.TRN' with stopat=@date_time 


norecovery нужно везде, кроме последнего RESTORE, после norecovery база будет в нерабочем состоянии, будет ждать следующего RESTORE, поэтому stopat=@date_time нужно вписать именно для того лога, на котором нужно остановиться
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Как восстановить базу на момент времени?
Ответ #10 - 01. Июля 2009 :: 07:32
Печать  
Спасибо, все получилось  Очень довольный
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать