powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление разностного бекапа
25 сообщений из 36, страница 1 из 2
Восстановление разностного бекапа
    #40086936
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

У меня два скуля:
1) Microsoft SQL Server 2019 (RTM-GDR) (KB4583458) - 15.0.2080.9 (X64) Nov 6 2020 16:50:01 Copyright (C) 2019 Microsoft Corporation Standard Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)
2) Microsoft SQL Server 2019 (RTM-GDR) (KB4583458) - 15.0.2080.9 (X64) Nov 6 2020 16:50:01 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)

На скуле 1 настроены три плана обслуживания:
Фулл, дифф, трн.
Мне понадобилось восстановить дифф на скуле 2 за 28-ое число. Фулл был снят 25-го.
Сначала попробовал восстановить фулл на 25-ое и дифф на 26-ое.

Фулл восстанавливается. Дифф при восстановлении пишет ошибку:
"Невозможно восстановить разностную резервную копию, так как база данных не была восстановлена в более раннем состоянии."

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
USE master 

RESTORE DATABASE ERPWORKERR  
   FROM DISK = N'G:\Backup\ERPWORK_backup_2021_07_25_024738_0538777.backup' -- имя для фулла
   WITH FILE = 1,
   NORECOVERY;  
GO  

RESTORE DATABASE ERPWORKERR  
   FROM DISK = N'G:\Backup\ERPWORK_backup_2021_07_26_014140_0210250.bak'
   WITH RECOVERY;  
GO



Пробовал ставить File=2 при восстановлении фулл:
Идентификатор файла 2 на устройстве "G:\Backup\ERPWORK_backup_2021_07_25_024738_0538777.backup" сформирован неправильно и не может быть прочитан.

Проверяю LSN на сервере 1:
Код: sql
1.
2.
3.
4.
select name, first_lsn, last_lsn, type, is_copy_only       
from msdb..backupset
where database_name = 'erpwork'
      and backup_start_date between '20210725' and '20210730' 



name first_lsn last_lsn type is_copy_only
NULL 7466000015432800001 7466000015508000001 D 0
ERPWORK_backup_2021_07_25_024738_0538777 7513000012877600001 7513000012880000001 D 0
NULL 7514000061180000139 7514000061188800001 D 0
ERPWORK_backup_2021_07_26_014140_0210250 7515000082893600001 7515000082896000001 I 0
ERPWORK_backup_2021_07_26_090001_9701465 7373000074437600001 7516000062263200001 L 0
ERPWORK_backup_2021_07_26_100002_4520952 7516000062263200001 7516000079853600001 L 0

Проверил заголовки бэкапов на сервере 2:
Код: sql
1.
2.
restore headeronly from disk = 'G:\Backup\ERPWORK_backup_2021_07_25_024738_0538777.backup'
restore headeronly from disk = 'G:\Backup\ERPWORK_backup_2021_07_26_014140_0210250.bak'



FirstLSN LastLSN CheckpointLSN DatabaseBackupLSN BackupStartDate BackupFinishDate
7513000012877600001 7513000012880000001 7513000012877600001 7466000015496800047 2021-07-25 02:47:38.000 2021-07-25 02:48:26.000 -- фулл
7515000082893600001 7515000082896000001 7515000082893600001 7514000061180000139 2021-07-26 01:41:40.000 2021-07-26 01:41:43.000 -- дифф

Галка "Только резервное копирование" не установлена.

Подскажите пожалуйста:
Что такое NULL, откуда он берётся? Он возникает не у всех фуллов.
В чём у меня косяк? Как восстановить бэкап? Как избежать таких ошибок в будущем?
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086938
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado,

Значит кто-то еще бекапит кроме вас.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086944
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado Что такое NULL, откуда он берётся?Подобное поведение я видел у левых тулов, которые бакапят весь сервер целиком.
Ищите подробности у других таблиц msdb базы кроме backupset
https://www.mssqltips.com/sqlservertip/6042/sql-server-backup-and-restore-history-queries/

esqado Как восстановить бэкап?Восстанавливайте из бакапа логов на нужную дату/время

esqado Как избежать таких ошибок в будущем? Отловить моменты левых полных бакапов. Узнать имя софта который их делает. Настроить в этом софте "не писать ничего в msdb"
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086971
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado

Подскажите пожалуйста:
Что такое NULL, откуда он берётся? Он возникает не у всех фуллов.


посмотрите историю бекапов и вычислите "левые" бекапы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SELECT e.name AS eventclass
	,t.loginname
	,t.spid
	,t.starttime
	,t.textdata
	,t.objectid
	,t.objectname
	,t.databasename
	,t.hostname
	,t.ntusername
	,t.ntdomainname
	,t.clientprocessid
	,t.applicationname
	,t.error
FROM sys.fn_trace_gettable(CONVERT(VARCHAR(150), (
				SELECT TOP 1 f.[value]
				FROM sys.fn_trace_getinfo(NULL) f
				WHERE f.property = 2
				)), DEFAULT) T
INNER JOIN sys.trace_events e ON t.eventclass = e.trace_event_id
WHERE eventclass = 115
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086977
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,
Может я что-то не правильно делаю, но вывод пустой.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086980
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter,
Не берусь утверждать, но вроде больше некому.
Какой-то там аудитор рядом ставил виртуалку veeam для анализа сервера (предположительно железного).
Не знаю, может это как-то влиять на бэкапы.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086981
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado,

дефолтная трассировка имеет ограниченное время хранения информации.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086982
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado,

подобные проблемы решаются настройками безопасности, разрешите выполнять резервное копирование только ограниченной и доверенной группе логинов, а лучше - только одному.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086994
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado
komrad,
Может я что-то не правильно делаю, но вывод пустой.

первый скрипт проверил последний из файлов

этот скрипт проверит все 5 файлов:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
use master;
SELECT	
		te.name
		,ft.SPID
		,ft.LoginName
		,ft.Hostname
		,ft.ApplicationName
		,ft.ClientProcessID
		,ft.DatabaseName
		,ft.StartTime
		,ft.TextData
FROM sys.traces st 
CROSS Apply	::fn_trace_gettable(left(st.path,len(st.path)-charindex('_',reverse(st.path)))+right(st.path,4), st.max_files) AS ft 
INNER JOIN sys.trace_events AS te ON ft.EventClass = te.trace_event_id 
WHERE 
	te.name LIKE '%Backup%'  
	and st.is_default=1 
	and st.status=1
ORDER BY ft.StartTime desc;
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40086996
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257,

esqado
Как восстановить бэкап?

Восстанавливайте из бакапа логов на нужную дату/время

У меня есть полный и разностный бэкап. Что такое бэкап логов?

esqado
Как избежать таких ошибок в будущем?

Отловить моменты левых полных бакапов. Узнать имя софта который их делает. Настроить в этом софте "не писать ничего в msdb"

Не ожидал, что может быть какой-то левый софт.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087011
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257
Отловить моменты левых полных бакапов. Узнать имя софта который их делает. Настроить в этом софте "не писать ничего в msdb"


Это не изменит того, что полный бекап сделается и последующие diff-ы будут делаться относительно него.
esqado
У меня есть полный и разностный бэкап. Что такое бэкап логов?


Есть три типа бекапов. и они у вас все делаются

FULL (msdb..backupset.type = 'D')
DIFF (msdb..backupset.type = 'I')
LOG (msdb..backupset.type = 'L')
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087032
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257


Есть три типа бекапов. и они у вас все делаются

FULL (msdb..backupset.type = 'D')
DIFF (msdb..backupset.type = 'I')
LOG (msdb..backupset.type = 'L')


Да, все три вида бэкапов создаются. Разве возможно восстановить из лога без диффа?
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087035
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado
SERG1257


Есть три типа бекапов. и они у вас все делаются

FULL (msdb..backupset.type = 'D')
DIFF (msdb..backupset.type = 'I')
LOG (msdb..backupset.type = 'L')


Да, все три вида бэкапов создаются. Разве возможно восстановить из лога без диффа?

Да
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087075
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex,

Увы, мне логи транзакций нужны только за текущий и предыдущий день.
Я как раз рассчитывал на диффы и трн при восстановлении.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087086
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado
msLex,

Увы, мне логи транзакций нужны только за текущий и предыдущий день.
Я как раз рассчитывал на диффы и трн при восстановлении.



Найдите, что делает фулл бекапы вне мейтенс плана и
- либо используйте его полный бекап
- либо перенастройте его на copy_only бекап
- либо отключите его



Восстановить дифф на предпоследний полный бекап физически невозможно, в нем просто нет для этого информации.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087111
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Veeam снаружи фигачит, то тут к бабке не ходи. Бекапит всех и вся.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087125
Col
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esqado
Возможно full бакап идет с флагом COPY_ONLY, в таком варианте диф будет искать последний фулл без флага.
Если нажать правой педалькой мыши ма нужную базу и пройти в своийства - то там можно найти дату последнего фулл бакапа, который прошел без флага COPY_ONLY.
От этой даты и отталкиваться.

П.С>
а почему не восстановится логами?
или бакапов логов до дифа нет?
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087144
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Col
esqado
Возможно full бакап идет с флагом COPY_ONLY, в таком варианте диф будет искать последний фулл без флага.


Нет.

Между дифф и фулом должен быть ещё один или более дифф.


7513000012877600001 7513000012880000001 7513000012877600001 7466000015496800047 2021-07-25 02:47:38.000 2021-07-25 02:48:26.000 -- фулл
7515000082893600001 7515000082896000001 7515000082893600001 7514000061180000139 2021-07-26 01:41:40.000 2021-07-26 01:41:43.000 -- дифф
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087146
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex Это не изменит того, что полный бекап сделается и последующие diff-ы будут делаться относительно него. в том то и дело что полный бакап НЕ ДЕЛАЕТСЯ. Делается снапшот дисков, что тебе еще надо, собака (с)
Если копнуть в историю бакапов то именем файла бакапа будет или пусто или гуид какой-нибудь.
Как с этим боротся это отдельный вопрос (я в свое время отключал сервис SQL Server VSS writer чтобы не бодатся с сисадминами), но наверняка есть цивилизованный способ.

С другой стороны ТС получил урок - Диффы не так нужны как бакапы логов.
Диффы не надо делать часто, (а с бакапами логов можно не стеснятся, хоть каждую минуту)
И самый главный - верить никому нельзя, бакап считается сделаным если с него получилось восстановится.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087168
Col
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin

Между дифф и фулом должен быть ещё один или более дифф.

Вам мягко говоря "показалось".
SQL не умеет делать инкрементальные бакапы.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087200
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter
Если Veeam снаружи фигачит, то тут к бабке не ходи. Бекапит всех и вся.

Админ клянётся, что veeam бэкапит только машину, скуль он не трогает.
Я с этой штукой не работал, настройки не видел. Да и админу не верю ))
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087201
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Col
esqado
Возможно full бакап идет с флагом COPY_ONLY, в таком варианте диф будет искать последний фулл без флага.
Если нажать правой педалькой мыши ма нужную базу и пройти в своийства - то там можно найти дату последнего фулл бакапа, который прошел без флага COPY_ONLY.
От этой даты и отталкиваться.

копионли не стоит. проверял запросом. в поле стоят нолики. визуально посмотрел в менеджере - галка снята.

Col
esqado
П.С>
а почему не восстановится логами?
или бакапов логов до дифа нет?

У меня логи только на текущий день и на предыдущий. При запуске диффа стоит очистка логов старше двух дней.
У меня в голове не сложилось, что такая ситуация может возникнуть, что дифф может не восстановиться.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087202
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin
Col
esqado
Возможно full бакап идет с флагом COPY_ONLY, в таком варианте диф будет искать последний фулл без флага.


Нет.

Между дифф и фулом должен быть ещё один или более дифф.


7513000012877600001 7513000012880000001 7513000012877600001 7466000015496800047 2021-07-25 02:47:38.000 2021-07-25 02:48:26.000 -- фулл
7515000082893600001 7515000082896000001 7515000082893600001 7514000061180000139 2021-07-26 01:41:40.000 2021-07-26 01:41:43.000 -- дифф


25-ое - воскресенье. В 00 запускается фулл и на этом всё. Никто не работает и делать на сервере особо нечего.
Это два файла, созданных друг за другом.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087204
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
esqado
komrad,
Может я что-то не правильно делаю, но вывод пустой.

первый скрипт проверил последний из файлов

этот скрипт проверит все 5 файлов:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
use master;
SELECT	
		te.name
		,ft.SPID
		,ft.LoginName
		,ft.Hostname
		,ft.ApplicationName
		,ft.ClientProcessID
		,ft.DatabaseName
		,ft.StartTime
		,ft.TextData
FROM sys.traces st 
CROSS Apply	::fn_trace_gettable(left(st.path,len(st.path)-charindex('_',reverse(st.path)))+right(st.path,4), st.max_files) AS ft 
INNER JOIN sys.trace_events AS te ON ft.EventClass = te.trace_event_id 
WHERE 
	te.name LIKE '%Backup%'  
	and st.is_default=1 
	and st.status=1
ORDER BY ft.StartTime desc;



В зависимости от времени запуска скрипт показывает разное количество файлов и не с начала дня.
Честно признаюсь, у меня не было днём возможности погрузиться в вывод и я не понял, что скрипт выводит.
...
Рейтинг: 0 / 0
Восстановление разностного бекапа
    #40087205
esqado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257
msLex Это не изменит того, что полный бекап сделается и последующие diff-ы будут делаться относительно него.
в том то и дело что полный бакап НЕ ДЕЛАЕТСЯ. Делается снапшот дисков, что тебе еще надо, собака (с)
Если копнуть в историю бакапов то именем файла бакапа будет или пусто или гуид какой-нибудь.
Как с этим боротся это отдельный вопрос (я в свое время отключал сервис SQL Server VSS writer чтобы не бодатся с сисадминами), но наверняка есть цивилизованный способ.

С другой стороны ТС получил урок - Диффы не так нужны как бакапы логов.
Диффы не надо делать часто, (а с бакапами логов можно не стеснятся, хоть каждую минуту)
И самый главный - верить никому нельзя, бакап считается сделаным если с него получилось восстановится.
Да уж. Не люблю такие уроки. Хорошо, что ситуация не рабочая, понадобилось всего лишь какой-то документ посмотреть.

бакап считается сделаным если с него получилось восстановится.
Каким образом можно проверять баки на восстанавливаемость? Не восстанавливать же каждый день по приходу на работу.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление разностного бекапа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]