Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Эмм, а как восстанавливается diff бэкап?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
Всем привет.

Что-то я не понимаю совсем. Есть полный субботний бэкап и диффы за пн и вт.

Восстановил базу из полного, затем хочу накатить на неё дифф:

+
RESTORE DATABASE [Checks_og] FROM  DISK = N'\\s-sql-bkp
\SQL_bkp\GAMMA\Checks\Checks_Diff(20210428_0935).bak' WITH  FILE = 1,  MOVE N'Checks' TO N'F:\SQLData\Checks_og.mdf',  MOVE N'Checks_indexes' TO N'F:\SQLData\Checks_og_indexes.ndf',  MOVE N'Checks_Export' TO N'F:\SQLData\Checks_og_Export.ndf',  MOVE N'Checks_Archive' TO N'F:\SQLData\Checks_og_Archive.ndf',  MOVE N'Checks_log' TO N'F:\SQLData\Checks_og_log.ldf',  NOUNLOAD,  REPLACE,  STATS = 5


получаю ошибку:
автор
Сообщение 3117, уровень 16, состояние 4, строка 11
Невозможно восстановить журнал или разностную резервную копию, так как нет файлов, готовых к накату.
Сообщение 3013, уровень 16, состояние 1, строка 11
RESTORE DATABASE прервано с ошибкой.


Корректно восстанавливается так:
+
USE [master]
RESTORE DATABASE [Checks_og] FROM  DISK = N'\\s-sql-bkp\SQL_bkp\GAMMA\Checks\Checks_backup_2021_04_24_052655_1330439.bak' WITH  FILE = 1,  MOVE N'Checks' TO N'F:\SQLData\Checks_og.mdf',  MOVE N'Checks_indexes' TO N'F:\SQLData\Checks_og_indexes.ndf',  MOVE N'Checks_Export' TO N'F:\SQLData\Checks_og_Export.ndf',  MOVE N'Checks_Archive' TO N'F:\SQLData\Checks_og_Archive.ndf',  MOVE N'Checks_log' TO N'F:\SQLData\Checks_og_log.ldf',  NORECOVERY,  NOUNLOAD,  STATS = 5
RESTORE DATABASE [Checks_og] FROM  DISK = N'\\s-sql-bkp\SQL_bkp\GAMMA\Checks\Checks_Diff(20210428_0935).bak' WITH  FILE = 1,  NOUNLOAD,  STATS = 5

GO


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

Сообщение было отредактировано: 28 апр 21, 10:36
28 апр 21, 10:26    [22315469]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37232
Любой рестор начинается с восстановления полного бэкапа.
28 апр 21, 10:36    [22315472]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
0wl
Member

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

У вас во втором случае Full восстановился с NORECOVERY - и это правильно.

На самом деле цепочка могла быть еще длиннее: Full -> Diff -> Log [-> Log]*[несеолько раз]
И только последний из этих бэкапов будет с Recovery.

В общем, как только вы восстанавливаете какой-то бэкап с Recovery, вы отменяете возможность накатить дальше другие бэкапы.
28 апр 21, 10:36    [22315473]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
0wl,

Грубо говоря, от восстановления полного бэкапа не уйти?

Хочу каждую ночь актуализировать данные на тестовой среде без использования репликаций на проде, наивно полагал, что смогу просто раз в сутки накатывать diff...

Сообщение было отредактировано: 28 апр 21, 10:37
28 апр 21, 10:45    [22315476]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37232
teCa
0wl,

Грубо говоря, от восстановления полного бэкапа не уйти?

Хочу каждую ночь актуализировать данные на тестовой среде без использования репликаций на проде, наивно полагал, что смогу просто раз в сутки накатывать diff...
Действительно, предположение было наивно.
28 апр 21, 10:49    [22315478]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
Хм, а если фулл накатить с опцией WITH STANDBY? По идее должно дать возможность накатить дифф сверху?
28 апр 21, 11:23    [22315501]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
uaggster
Member

Откуда:
Сообщений: 1003
teCa
Хм, а если фулл накатить с опцией WITH STANDBY? По идее должно дать возможность накатить дифф сверху?

Да, но база будет read only.
28 апр 21, 12:39    [22315562]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
uaggster,

Да, меня это устраивает, база нужна для чтения.
28 апр 21, 13:32    [22315611]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
uaggster
Member

Откуда:
Сообщений: 1003
teCa, тогда, наверное, удобнее восстанавливать не дифы, а бэкапы лога.
Вначале 1 раз полный бэкап, потом накатывать бэкапы лога with standby, до определенной даты/времени (stopat ...)
Либо просто настройте себе логшиппинг на свой тестовый сервер, там всё это с помощью визардов делается.
28 апр 21, 13:43    [22315621]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
uaggster,

Это уже будет излишне. Достаточно обновлять данные 1 раз в сутки.
28 апр 21, 13:45    [22315624]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
Немного не так, diff накатить нельзя, только лог транзакций.
28 апр 21, 14:18    [22315650]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
Тяп-ляп
Member

Откуда: Москва
Сообщений: 826
restore log with standby для бекапов, накопившихся за сутки может идти долго, БД в это время будет недоступна
для ускорения можно делать restore log with recovery для всех бекапов, кроме последнего
ускорение в десятки раз можно получить
28 апр 21, 17:55    [22315814]     Ответить | Цитировать Сообщить модератору
 Re: Эмм, а как восстанавливается diff бэкап?  [new]
Тяп-ляп
Member

Откуда: Москва
Сообщений: 826
restore log with NOrecovery
28 апр 21, 18:12    [22315826]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить