Невозможно восстановить журнал или разностную резервную копию, так как нет файлов, готовых к накату. (Microsoft.SqlServer.SmoExtended)

1. xten 49 17.04.24 16:57 Сейчас в теме
Добрый день, коллеги!
Подскажите , пожалуйста, такая ситуация: MS SQl Server 2019. Модель восстановления баз Простая. Раз в неделю делается полный бэкап по воскресеньям. По субботам и будням - дифференц. При восстановлении рабочей базы или когда создаю пустую базу и в нее хочу восстановить с использованием дифф. архивов (разумеется в купе с полным ) ругается : Невозможно восстановить журнал или разностную резервную копию, так как нет файлов, готовых к накату. (Microsoft.SqlServer.SmoExtended). Хотя видит все архивы. Пробовал командами с recovery и norecovery - никак.
Буду крайне признателен за помощь !!!
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DENSKR 16 17.04.24 17:27 Сейчас в теме
1.) При восстановлении:
- Оставить базу данных в неработающим состоянии
- Не выполнять * незафиксированных транзакций.

2.)
USE master
GO
RESTORE DATABASE 'ВашаБД' FROM DISK = N'Путь к полному' WITH NORECOVERY
GO
RESTORE DATABASE 'ВашаБД' FROM DISK = N'Путь к дифф бекапу' WITH RECOVERY


3.) Проверить права на файлы бекапов, посмотреть лог что пишет перед ошибкой.

4.) Курить гугл.
3. xten 49 17.04.24 18:12 Сейчас в теме
Извиняюсь, права на файлы бэкапов, что вы имеете в виду?
4. xten 49 17.04.24 18:33 Сейчас в теме
Делал вот так :
restore database "name" from disk = 'E:\Новая папка\name_backup_2024_04_14_210002_4519290.bak' with NORECOVERY
restore database "name" from disk = 'E:\Новая папка\name_backup_2024_04_15_210004_5511524.bak' with NORECOVERY
restore database "name" with RECOVERY

Ругается:
Сообщение 3136, уровень 16, состояние 1, строка 2
Невозможно восстановить разностную резервную копию, так как база данных не была восстановлена в более раннем состоянии.
Сообщение 3013, уровень 16, состояние 1, строка 2
RESTORE DATABASE прервано с ошибкой.
5. redfred 17.04.24 18:42 Сейчас в теме
(4) Нужно не два bak восстанавливать, а последний bak и, за ним, последний dif
6. xten 49 17.04.24 18:47 Сейчас в теме
Так я сперва полный восстанавливаю, а потом дифференциальный, он тоже с расширением bak.
или у Дифф бэкапа должно быть расширение dif ?
7. redfred 17.04.24 18:59 Сейчас в теме
(6)
restore headeronly from disk = 'E:\Новая папка\name_backup_2024_04_14_210002_4519290.bak';
restore headeronly from disk = 'E:\Новая папка\name_backup_2024_04_15_210004_5511524.bak';


Что выводит?
8. xten 49 17.04.24 19:14 Сейчас в теме
name_backup_2024_04_14_210002_4519290 NULL 1 NULL 1 1 2 \1c_srv INT-RU-ND-1C-3 name 904 2024-03-20 13:39:31.000 4166087680 3366000023518300001 3366000023518600001 3366000023518300001 3366000017908500001 2024-04-14 21:08:28.000 2024-04-14 21:08:37.000 0 0 1049 196609 140 4608 15 0 2000 INT-RU-ND-1C-3 512 59C58D52-4260-4DBA-A900-8B68AEF1D6AE 23196D9F-0BBE-473F-9B4F-5E26950CCD27 Cyrillic_General_CI_AS D0137D07-607D-4FA4-8885-E819D648F243 0 0 0 0 0 0 0 0 0 0 23196D9F-0BBE-473F-9B4F-5E26950CCD27 NULL SIMPLE NULL NULL Database E4C89981-4F44-4E80-9A3D-A429093866F9 2191760531 0 NULL NULL NULL



name_backup_2024_04_15_210004_5511524 NULL 5 NULL 1 1 2 A \1c_srv INT-RU-ND-1C-3 name 904 2024-03-20 13:39:31.000 16872448 3394000002198400001 3394000002198700001 3394000002198400001 3392000001383800001 2024-04-15 21:00:26.000 2024-04-15 21:00:27.000 0 0 1049 196609 140 4608 15 0 2000 INT-RU-ND-1C-3 2560 59C58D52-4260-4DBA-A900-8B68AEF1D6AE 23196D9F-0BBE-473F-9B4F-5E26950CCD27 Cyrillic_General_CI_AS D0137D07-607D-4FA4-8885-E819D648F243 0 0 0 0 0 0 0 0 0 0 23196D9F-0BBE-473F-9B4F-5E26950CCD27 NULL SIMPLE 3392000001383800001 349AC0B3-4A75-4F0E-B6C0-511E65230ECF Database Differential DF
9. redfred 17.04.24 19:27 Сейчас в теме
(8) У вас разрыв в цепочке бэкапов. Кто-то сделал полный бэкап в промежутке между вашими полным и диффом. Соотв. диф можно накатить только на этот промежуточный полный.
10. xten 49 17.04.24 19:31 Сейчас в теме
А как определили разрыв? Подскажите пожалуйста?
13. redfred 17.04.24 19:36 Сейчас в теме
(10)
А как определили разрыв? Подскажите пожалуйста?


DatabaseBackupLSN у диф бэкапа должен совпадать с CheckpointLSN полного. У вас они различаются.
11. xten 49 17.04.24 19:32 Сейчас в теме
Я делаю полный и диф на один диск и ещё каждый день делаю полный на другой диск. Из-за этого? Нужно обязательно галку ставить только копирование, когда на другое место делаю ?
12. redfred 17.04.24 19:33 Сейчас в теме
(11)
Нужно обязательно галку ставить только копирование?


Для второго бэкапа, который на другой диск - да, надо
14. xten 49 17.04.24 19:40 Сейчас в теме
Он через план обслуживания
Прикрепленные файлы:
15. xten 49 17.04.24 19:41 Сейчас в теме
16. redfred 17.04.24 19:44 Сейчас в теме
(15)
Теперь верно?


Да. Но, всё же, потом потренируйтесь в восстановлении
17. xten 49 17.04.24 19:49 Сейчас в теме
Вы гений!)) Огромное вам спасибо!!!!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот