|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
Добрый день комрады! опишу проблему. Был в отпуске очень долгое время. Сам не профи по sql. Есть базы 1с, каждую ночь делается проверка, бэкап, каждые 30 мин бэкап логов. пришел с отпуска и меня ждет 1.бэкап больше месяца не делается. и все бэкапы куда то делись есть только за июнь месяц. 2. один из жестких дисков вышел из строя (рейд). что было сделано 1. Заменил жестки диск. 2. бэкап выдает ошибку System.Data.SqlClient.SqlError: Read on "F:\sql_bases\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\utpr.mdf" failed: 1(Неверная функция.) (Microsoft.SqlServer.Smo) сделал проверку ALTER DATABASE utpr SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (N'utpr', REPAIR_REBUILD) WITH NO_INFOMSGS GO выдало Nonqualified transactions are being rolled back. Estimated rollback completion: 100%. Msg 8966, Level 16, State 2, Line 2 Unable to read and latch page (1:10021752) with latch type SH. 1(Неверная функция.) failed. CHECKDB found 0 allocation errors and 1 consistency errors not associated with any single object. Msg 2533, Level 16, State 1, Line 2 Table error: page (1:10021752) allocated to object ID 1140251167, index ID 1, partition ID 72057651761774592, alloc unit ID 72057651788972032 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header. The repair level on the DBCC statement caused this repair to be bypassed. Msg 8976, Level 16, State 1, Line 2 Table error: Object ID 1140251167, index ID 1, partition ID 72057651761774592, alloc unit ID 72057651788972032 (type In-row data). Page (1:10021752) was not seen in the scan although its parent (1:10021196) and previous (1:10021751) refer to it. Check any previous errors. Repairing this error requires other errors to be corrected first. Msg 8978, Level 16, State 1, Line 2 Table error: Object ID 1140251167, index ID 1, partition ID 72057651761774592, alloc unit ID 72057651788972032 (type In-row data). Page (1:10021753) is missing a reference from previous page (1:10021752). Possible chain linkage problem. Repairing this error requires other errors to be corrected first. CHECKDB found 0 allocation errors and 3 consistency errors in table '_AccRgED679' (object ID 1140251167). CHECKDB found 0 allocation errors and 4 consistency errors in database 'utpr'. repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (utpr, repair_rebuild). и вот здесь совершил кажется ошибку RESTORE DATABASE utpr PAGE = '1:10021752' FROM DISK = 'D:\backup\utpr_backup_2016_06_09.bak' WITH NORECOVERY теперь база в RESTORING Делаю RESTORE DATABASE utpr with recovery Выдает Msg 4303, Level 16, State 1, Line 1 The roll forward start point is now at log sequence number (LSN) 441647000002683000001. Additional roll forward past LSN 530810000598237900001 is required to complete the restore sequence. Msg 3013, Level 16, State 1, Line 1 RESTORE DATABASE is terminating abnormally. Я так понимаю он просит лог после июньского бэкапа? а его у меня нет. Теперь как вывести базу из RESTORINGа? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 19:41 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
zhan9, это что выдаст? Код: sql 1.
если у вас это последний фуллбекап, то с него и восстанавливайтесь - других вариантов у вас сейчас нет, имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 19:51 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
komrad, В том то и дело что последних фуллбэкапов нет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 20:03 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
zhan9, если бекапы не делались, нужно было сделать трейл-лог бекап перед восстановлением Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 21:00 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
ТиФорс, Понятно спасибо сейчас как выйти из положения? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 21:21 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
zhan9, И что перед восстановление ничего не сохранили? Тогда попробуйте это. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 21:48 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 23:07 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 23:10 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
churupaha, Поясните зачем откатывать восстановление? Файл просто можно заменить файлом из бекапа. Он и так уже восстановился. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 01:08 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
churupaha, Другое дело, что не был сделан бекап хвоста лога, который можно было накатить на файл бекапа. И теперь там (в логе) - непонятно что. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 01:11 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
ТиФорс, Перед восстановлением я сделал бэкап лога. сделал вот это USE [master] GO ALTER DATABASE [utpr] SET OFFLINE WITH ROLLBACK IMMEDIATE GO /*drop the mdf*/ /* try to bring database online. This will fail but is a necessary step*/ ALTER DATABASE utpr SET ONLINE GO /*try a NORECOVERY tail log backup */ USE master GO BACKUP LOG utpr TO DISK='d:\backup\utpr_tail.trn' WITH INIT, NORECOVERY; /*Msg 942, Level 14, State 4, Line 1 Database 'FullRecovery' cannot be opened because it is offline. Msg 3013, Level 16, State 1, Line 1 BACKUP LOG is terminating abnormally.*/ /*A NO_TRUNCATE tail log backup should work */ USE master GO BACKUP LOG utpr TO DISK='d:\temp\utpr_tail.trn' WITH INIT, NO_TRUNCATE; выдало Msg 5052, Level 16, State 1, Line 2 ALTER DATABASE is not permitted while a database is in the Restoring state. Msg 5069, Level 16, State 1, Line 2 ALTER DATABASE statement failed. Msg 5052, Level 16, State 1, Line 8 ALTER DATABASE is not permitted while a database is in the Restoring state. Msg 5069, Level 16, State 1, Line 8 ALTER DATABASE statement failed. Msg 927, Level 14, State 2, Line 2 Database 'utpr' cannot be opened. It is in the middle of a restore. Msg 3013, Level 16, State 1, Line 2 BACKUP LOG is terminating abnormally. Msg 927, Level 14, State 4, Line 2 Database 'utpr' cannot be opened. It is in the middle of a restore. Msg 3013, Level 16, State 1, Line 2 BACKUP LOG is terminating abnormally. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 09:35 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
ТиФорсchurupaha, Поясните зачем откатывать восстановление? Файл просто можно заменить файлом из бекапа. Он и так уже восстановился. Какой это файл или бэкап восстановился, простите? ТС решил сделать page restore, для которого необходимо наличие полного бэкапа и непрерывной цепочки бэкапов лога со времен полного. У него бэкапы лога не делались, и он не попытался сделать бэкап tail of the log. Теперь он НЕ восстановил полный бэкап, а восстановил одну только страницу. Сервер ждет продолжение банкета, т. е. накат всех бэкапов лога с июня. Предложить ему нечего, бэкапов лога нет. Что еще делать, как не пытаться откатить начатое? Ну, остается восстановить июньский бэкап в другую базу. Это и есть последний полный бэкап, о котором писал komrad ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 10:19 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
zhan9 пришел с отпуска и меня ждет 1.бэкап больше месяца не делается. и все бэкапы куда то делись есть только за июнь месяц. а у вас точно бекапы перестали делаться? Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 12:40 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
zhan9ТиФорс, Перед восстановлением я сделал бэкап лога. сделал вот это USE [master] GO ALTER DATABASE [utpr] SET OFFLINE WITH ROLLBACK IMMEDIATE GO /*drop the mdf*/ /* try to bring database online. This will fail but is a necessary step*/ ALTER DATABASE utpr SET ONLINE GO /*try a NORECOVERY tail log backup */ USE master GO BACKUP LOG utpr TO DISK='d:\backup\utpr_tail.trn' WITH INIT, NORECOVERY; /*Msg 942, Level 14, State 4, Line 1 Database 'FullRecovery' cannot be opened because it is offline. Msg 3013, Level 16, State 1, Line 1 BACKUP LOG is terminating abnormally.*/ /*A NO_TRUNCATE tail log backup should work */ USE master GO BACKUP LOG utpr TO DISK='d:\temp\utpr_tail.trn' WITH INIT, NO_TRUNCATE; выдало Msg 5052, Level 16, State 1, Line 2 ALTER DATABASE is not permitted while a database is in the Restoring state. Msg 5069, Level 16, State 1, Line 2 ALTER DATABASE statement failed. Msg 5052, Level 16, State 1, Line 8 ALTER DATABASE is not permitted while a database is in the Restoring state. Msg 5069, Level 16, State 1, Line 8 ALTER DATABASE statement failed. Msg 927, Level 14, State 2, Line 2 Database 'utpr' cannot be opened. It is in the middle of a restore. Msg 3013, Level 16, State 1, Line 2 BACKUP LOG is terminating abnormally. Msg 927, Level 14, State 4, Line 2 Database 'utpr' cannot be opened. It is in the middle of a restore. Msg 3013, Level 16, State 1, Line 2 BACKUP LOG is terminating abnormally. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 18:29 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
o-oКакой это файл или бэкап восстановился, простите? ТС решил сделать page restore, для которого необходимо наличие полного бэкапа и непрерывной цепочки бэкапов лога со времен полного. У него бэкапы лога не делались, и он не попытался сделать бэкап tail of the log. Теперь он НЕ восстановил полный бэкап, а восстановил одну только страницу. Сервер ждет продолжение банкета, т. е. накат всех бэкапов лога с июня. Предложить ему нечего, бэкапов лога нет. Что еще делать, как не пытаться откатить начатое? Ну, остается восстановить июньский бэкап в другую базу. Это и есть последний полный бэкап, о котором писал komradНу и фик с ним с restore. - переводим базу в оффлайн - удаляем файл mdb - пытаемся перевести базу в онлайн для бекапа tail-log - бекапим tail-log - делаем полное восстановлени с июньского бекапа + recovery tail-log там-же все написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 18:56 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
ТиФорсo-oКакой это файл или бэкап восстановился, простите? ТС решил сделать page restore, для которого необходимо наличие полного бэкапа и непрерывной цепочки бэкапов лога со времен полного. У него бэкапы лога не делались, и он не попытался сделать бэкап tail of the log. Теперь он НЕ восстановил полный бэкап, а восстановил одну только страницу. Сервер ждет продолжение банкета, т. е. накат всех бэкапов лога с июня. Предложить ему нечего, бэкапов лога нет. Что еще делать, как не пытаться откатить начатое? Ну, остается восстановить июньский бэкап в другую базу. Это и есть последний полный бэкап, о котором писал komradНу и фик с ним с restore. - переводим базу в оффлайн - удаляем файл mdb - пытаемся перевести базу в онлайн для бекапа tail-log - бекапим tail-log - делаем полное восстановлени с июньского бекапа + recovery tail-log там-же все написано. если BACKUP LOG с no_truncate , то обращения к мдф все равно не будет. зачем же его(mdf) грохать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 19:07 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
o-o, если не грохнуть, то база будет в рекавери, как у ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 19:18 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
ТиФорсo-o, если не грохнуть, то база будет в рекавери, как у ТС. А у него никакое не рекавери, мдф он не грохнул. У него база в оффлайн не перешла, потому что она in the restoring state ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 19:32 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
o-o, должна была перейти (проверял). жалко, что он лог выполения не приложил. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 19:36 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
ТиФорсo-o, должна была перейти (проверял). жалко, что он лог выполения не приложил. А что вы называете логом выполнения? Он привел ошибки, последовательно выданные вашими командами, вы их процитировали в своем посте, где спрашиваете, точно ли был грохнут mdf. Сейчас, похоже, я тоже проверю, если батарея не села. Отчитаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 20:09 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
короче, у меня лог забэкапился и при недоресторенной базе. т.е. страница из полного восстановлена, логи не накачены, база в RestorePending. бэкапить лог позволяет без всяких ухищрений. 3 раза проверено на трех базах ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 22:18 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
еще позже сделаю на экспрессе, а то у меня база вечно онлайновая ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 22:20 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
итак, на экспрессе катит только оффлайновый рестор, т.е. он отказывается ресторить страницу, пока не сделаешь бэкап лога: Msg 3159, Level 16, State 1, Line 1 The tail of the log for the database "db_full" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log. Msg 3013, Level 16, State 1, Line 1 RESTORE DATABASE is terminating abnormally. о чем вообще-то сказано в БОЛ: BOLyou can perform an offline page restore, but first you must create a tail log backup (by backing up the transaction log using RESTORE WITH NORECOVERY --------------------------------------------------------------- ТиФорсo-o, если не грохнуть, то база будет в рекавери, как у ТС. а я еще думаю, что за бредовое объяснение дропанью файла данных? да и инглиш больно приличный. а все просто. это товарищ ТиФорс открыл книженцию SQL Server Transaction Log Management By Tony Davis and Gail Shaw и скопировал оттуда Tail log backups when the database is offline. только не учел, что в книге идет речь о ситуации, когда база и впрямь навернулась, т.е. полностью в оффлайне. автор книги имитирует убитую базу дропом мдф. только не потому, что "если не грохнуть, то база будет в рекавери, как у ТС", а для того, чтобы продемонстрировать безвозвратный оффлайн. а у ТС базу в оффлайн не перевести никак, так что не вышло подогнать под описанный оффлайновый случай ---- но мне нравится заявление "должна была перейти ( проверял )" что проверял-то, забэкапить лог оффлайновой базы? еще раз: не надо для этого грохать файл данных, и без того backup log with no_truncate в файл данных не полезет. вообще-то проблема у ТС не в оффлайновой базе, а в ресторящейся базе, вот ЭТО вы проверяли? пробовали именно страницу восстанавливать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2016, 01:07 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
o-oТиФорсchurupaha, Поясните зачем откатывать восстановление? Файл просто можно заменить файлом из бекапа. Он и так уже восстановился. Какой это файл или бэкап восстановился, простите? ТС решил сделать page restore, для которого необходимо наличие полного бэкапа и непрерывной цепочки бэкапов лога со времен полного. У него бэкапы лога не делались, и он не попытался сделать бэкап tail of the log. Теперь он НЕ восстановил полный бэкап, а восстановил одну только страницу. Сервер ждет продолжение банкета, т. е. накат всех бэкапов лога с июня. Предложить ему нечего, бэкапов лога нет. Что еще делать, как не пытаться откатить начатое? Ну, остается восстановить июньский бэкап в другую базу. Это и есть последний полный бэкап, о котором писал komrad я так понимаю если восстановить июньский бэкап, то все данные по день когда он встал в ресторинг теряются? т.е. другого решения нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2016, 07:54 |
|
Нужна помощь! База в restoring как выйти?
|
|||
---|---|---|---|
#18+
Правильно понимаете, база будет на момент снятия бэкапа в июне. Но это вы всегда успеете сделать, давайте попробуем разобраться с тем, что сейчас происходит. Вы выполнили скрипт комрада, проверили, какие бэкапы были сделаны / не сделаны с момента снятия полного в июне? Если бэкапы лога делались, но исчезли безвозвратно, то без вариантов, только восстановление из полного. Если же не делались или вы нашли те сделанные после июньского полного, весь хвост лога нам нужен. Еще раз расскажите, как вы базу в restoring загнали? Онлайново или оффлайново? Оффлайново же он не даст страницы ресторить, если вы не сделали бэкап лога с norecovery, так может, вы его сделали? А если онлайново, что он пишет на попытку сделать сейчас бэкап лога? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2016, 09:17 |
|
|
start [/forum/topic.php?fid=46&msg=39339343&tid=1686388]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 332ms |
total: | 461ms |
0 / 0 |