Резервное копирование и восстановление БД
В этом разделе рассматриваются две из наиболее важных задач, связанные с системой администрирования: резервное копирование и восстановление. Резервное копирование (backup) означает процесс создания копии базы данных (баз данных) и/или протоколов транзакций для разделения устройств, которые в дальнейшем при необходимости могут быть использованы для восстановления данных. Восстановление (recovery) - это процесс использования устройства резервной копии для замены неподтвержденных, несогласованных или потерянных данных.
Резервное копирование базы данных является процессом выгрузки данных (из базы данных, протокола транзакций или из файла) на устройства резервной копии, которые создаются и поддерживаются системой. Устройство резервной копии может быть дисковым файлом или магнитной лентой. Database Engine обеспечивает статические и динамические резервные копии. Статическая резервная копия означает, что в процессе копирования только одна активная сессия, поддерживаемая системой, является той сессией, которая создает резервную копию. Иными словами, недопустимы пользовательские процессы во время выполнения копирования. Динамическое резервное копирование означает, что копирование базы данных может выполняться без останова сервера базы данных, удаления пользователей или даже закрытия файлов. (Пользователи даже не будут знать, что…
Полное копирование базы данных захватывает то состояние базы данных, которое она имеет на момент начала копирования. В процессе полного копирования базы данных система копирует данные, а также схему всех таблиц базы данных и соответствующие файловые структуры. Если полное копирование базы данных выполняется динамически, то система базы данных записывает любые действия, которые имеют место в процессе выполнения резервного копирования. Поэтому даже все неподтвержденные транзакции в протоколе транзакций будут записаны на устройство резервной копии.
Дифференцированное резервное копирование создает копию только частей базы данных, которые изменялись с момента последнего полного копирования базы данных. (Как и в случае полного копирования базы данных любые действия, имеющие место в процессе дифференцированного резервного копирования, также копируются.) Преимуществом дифференцированного резервного копирования является скорость. Этот тип резервного копирования минимизирует время, требуемое для копирования, потому что количество копируемых данных значительно меньше, чем в случае полного резервного копирования. Помните, что полное копирование базы данных включает копии всех страниц базы данных.
Резервное копирование протокола транзакций учитывает только изменения, записанные в протокол. Поэтому такая форма резервного копирования не основывается на физических частях (страницах) базы данных, а только на логических операциях, т. е. на изменениях, выполненных операторами DML: insert, update и delete. Опять же, поскольку объем данных достаточно мал, этот процесс может быть выполнен значительно быстрее, чем полное или дифференцированное резервное копирование. Существуют две основные причины, по которым следует выполнять копирование протокола транзакций: во-первых, это сохранение данных, которые были изменены с момента последнего копирования протокола транзакций или базы данных на защищенное устройство; во-вторых (что является более важным), это правильное закрытие протокола транзакций перед…
Резервное копирование файла (или файловой группы) дает вам возможность копировать указанные файлы базы данных (или файловые группы) вместо копирования всей базы данных. В этом случае Database Engine копирует • только заданные вами файлы. Отдельные файлы (или файловые группы) могут быть восстановлены из копии базы данных, позволяя выполнить восстановление после сбоя, который повлиял лишь на небольшое подмножество файлов базы данных. Для восстановления отдельных файлов или файловых групп вы можете использовать или копию базы данных, или копию файловой группы. Это означает, что вы можете использовать копии базы данных и протокола транзакций в качестве вашей процедуры резервного копирования и в то же время…
Вы можете выполнить резервное копирование, используя следующие средства: ♦ операторы Transact-SQL; ♦ SQL Server Management Studio.
Все типы операций резервного копирования могут быть выполнены при использовании двух операторов Transact-SQL: ♦ backup database; ♦ backup log. Прежде чем я начну описывать эти два оператора Transact-SQL, я расскажу про существующие типы устройств для резервного копирования.
Database Engine позволяет вам копировать базы данных, протоколы транзакций и файлы на такие устройства резервного копирования, как: ♦ диск; ♦ магнитная лента. Дисковые файлы чаще всего используются для хранения резервных копий. Дисковое устройство копии может размещаться на локальном жестком диске на сервере или на удаленном диске на общем сетевом ресурсе. Database Engine позволяет добавлять новые копии в файл, который уже содержит копии той же самой или другой базы данных. При добавлении нового набора копий на существующий носитель предыдущее содержимое носителя остается нетронутым, а новая копия записывается после последней копии на этом носителе. (Набор копий включает все сохраненные данные объектов, которые…
Оператор backup database используется для полного копирования базы данных или дифференцированного резервного копирования. Этот оператор имеет следующий синтаксис: backup database {db_name | ^variable] то device_list [mirror to device_list2] [with I option_list] Здесь db_name является именем базы данных, для которой должно быть выполнено резервное копирование. Имя базы данных также может быть задано переменной ^variable. Параметр device_iist задает одно или более имен устройств, где будет сохраняться копия базы данных. Параметр device_iist может быть списком имен дисковых файлов или магнитных лент. Синтаксис для этих устройств таков: {logical_device_name | Qlogical_device_name_var } i { disk I таре } = { 'physical_device_name' i @physical_device_name_var') Здесь имя…
Оператор backup log применяется для создания резервной копии протокола транзакций. Этот оператор имеет следующий синтаксис: backup log {db_name | Qvariable] . to device_list [mirror to device_list2] [with option__list] Здесь db_name, ^variable, device_list и device_list2 имеют те же самые значения, что и параметры с теми же именами в операторе backup database. Параметр option_iist имеет те же опции, что и в операторе backup database, кроме того, он поддерживает специфические опции протокола nojtruncate, norecovery и standby. Вы должны использовать опцию nojtruncate, если хотите выполнять копирование протокола без его усечения, т. е. эта опция не очищает подтвержденные транзакции в протоколе. После выполнения этой опции…
© 2021 serversql.ru. Все права защищены.