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