Я использую следующую строку для резервного копирования базы данных Microsoft SQL Server 2008:
BACKUP DATABASE @name TO DISK = @fileName WITH COMPRESSION
Учитывая, что база данных не изменяется, повторное выполнение этой строки приводит к файлам того же размера, новнутри сильно различаются.
Как создать повторные резервные копии SQL Server для одной и той же неизменной базы данных, которые бы давали одинаковые байтовые файлы?Я полагаю, что простые вызовы BACKUP DATABASE
добавляют некоторые метки времени или другую метаинформацию на носителе резервных копий, есть ли способ отключить или удалить это добавление?
В качестве альтернативы, если это невозможно, существует ли относительно простойспособ сравнить 2 резервные копии и посмотреть, восстановят ли они одно и то же состояние базы данных?
ОБНОВЛЕНИЕ : моя точка зрения на сравнение резервных копий заключается в том, что я выполняю резервное копирование множества баз данныхежедневно, но большинство баз данных меняются не так часто.Для большинства из них нормально меняться несколько раз в год.Таким образом, в основном для всех других СУБД (MySQL, PostgreSQL, Mongo) я использую следующий алгоритм:
- Делать новую ежедневную резервную копию
- Различать новую резервную копию с наибольшим количествомпоследние из старых резервных копий
- Если база данных не была изменена (т. е. совпадают резервные копии), удалите только что созданную ежедневную резервную копию
Этот алгоритм работает со всеми СУБД, которые мысталкивался ранее, но, увы, он не работает из-за неповторяющихся резервных копий MSSQL.