Резервное копирование базы данных SQL Server без отметок времени - PullRequest
0 голосов
/ 15 декабря 2011

Я использую следующую строку для резервного копирования базы данных Microsoft SQL Server 2008:

BACKUP DATABASE @name TO DISK = @fileName WITH COMPRESSION

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

Как создать повторные резервные копии SQL Server для одной и той же неизменной базы данных, которые бы давали одинаковые байтовые файлы?Я полагаю, что простые вызовы BACKUP DATABASE добавляют некоторые метки времени или другую метаинформацию на носителе резервных копий, есть ли способ отключить или удалить это добавление?

В качестве альтернативы, если это невозможно, существует ли относительно простойспособ сравнить 2 резервные копии и посмотреть, восстановят ли они одно и то же состояние базы данных?

ОБНОВЛЕНИЕ : моя точка зрения на сравнение резервных копий заключается в том, что я выполняю резервное копирование множества баз данныхежедневно, но большинство баз данных меняются не так часто.Для большинства из них нормально меняться несколько раз в год.Таким образом, в основном для всех других СУБД (MySQL, PostgreSQL, Mongo) я использую следующий алгоритм:

  • Делать новую ежедневную резервную копию
  • Различать новую резервную копию с наибольшим количествомпоследние из старых резервных копий
  • Если база данных не была изменена (т. е. совпадают резервные копии), удалите только что созданную ежедневную резервную копию

Этот алгоритм работает со всеми СУБД, которые мысталкивался ранее, но, увы, он не работает из-за неповторяющихся резервных копий MSSQL.

1 Ответ

0 голосов
/ 15 декабря 2011

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

Если вы не хотитетак много различий затем удаляют параметр сжатия, но сравнение файлов резервных копий не является подходящим способом.

Если у вас есть база данных, которая мало изменяется, то инкрементные или дифференциальные резервные копии могут быть более полезными.

Однако вы, похоже, попали в классическую ловушку под названием XY Problem как вы спрашиваете о вашей попытке решения, а не о вашей реальной проблеме.Что побуждает вас сравнивать базы данных?

...