Ответ - нет, для любого программного обеспечения резервного копирования используется.
Резервное копирование - это физическая операция, а не логическая операция. Он читает все экстенты, содержащие выделенные страницы (т. Е. Даже если выделена только одна страница из 8-страничного экстента, он создает резервную копию всего экстента размером 64 КБ) и выполняет его в физическом порядке.
Восстановление - это физическая операция, а не логическая операция. Он устанавливает экстенты в их законных местах в файлах данных.
Восстановление индекса (или чего-либо подобного) - это логическая операция, которая должна быть зарегистрирована. Резервное копирование и восстановление манипулируют файлами данных напрямую, без прохождения через буферный пул, что является одной из причин, почему это невозможно сделать. Другая причина, по которой это невозможно сделать, заключается в том, что резервное копирование и восстановление не имеют представления о том, что содержится в резервных копиях данных.
Однако главная причина, по которой это невозможно сделать, заключается в том, что перемещение страниц во время операции восстановления нарушило бы указатели b-дерева. Если страница A указывает на страницу B, но страница A перемещается процессом восстановления, как страница B обновляется, чтобы указывать на страницу A? Если он обновляется сразу, то он может быть перезаписан остальной частью процесса восстановления. Если оно отложено-обновлено, что если процесс восстановления восстановил некоторый журнал транзакций, который удалил страницу A или страницу B? Это просто невозможно сделать.
Итог - резервное копирование и восстановление - это физические операции, которые никогда не изменяют данные.
Надеюсь это поможет!
PS Хотя этот вопрос не касается непосредственно, ознакомьтесь со статьей, которую я написал для июльского журнала TechNet Magazine, в которой объясняется, как различные резервные копии работают внутри: Общие сведения о резервных копиях SQL Server . В сентябрьском журнале будет опубликована следующая статья о восстановлении понимания.
Родной резервного копирования SQL является дампом страницу за страницей файлов резервного копирования, так что ответ есть «нет». Резервное копирование Quest LightSpeed, вероятно, использует какой-то алгоритм сжатия сжатия, но он все равно не будет «перестраивать» файлы данных или индексы, что потребовало бы ужасно большого количества времени в большой базе данных.
источник
Резервное копирование делается регулярно и очень часто (я надеюсь). Поэтому дизайнеры позаботились о том, чтобы резервное копирование было максимально быстрым. Какой самый быстрый ввод / вывод? Последовательная. Вы читаете блоки с дисков в точном физическом порядке, у вас лучшая производительность.
С какой стати база данных должна выполнять громоздкую случайную операцию ввода-вывода каждую ночь , разбивая головки дисков повсюду? Разница будет около двух порядков. В этом нет никакой возможной выгоды.
источник
Хммм. BradC, вы работали с Firebird / Interbase раньше - где основная утилита резервного копирования / восстановления / API больше похожа на «Копировать базу данных ...» SSMS / EM? Если так, знайте, что MS SQL Server НЕ нравится.
SQLServer Backup - это больше дамп базы данных, который восстанавливается «как есть», так что это больше похоже на удобный онлайн-ярлык для операции «отсоединить-копировать-подключить в другом месте». Восстановленная база данных является почти точной копией исходного файла базы данных (почти потому, что вы можете изменить размещение файлов базы данных восстановленной базы данных) ...
источник