Модели восстановления MSSQL SERVER

Tsql теория > Модели восстановления MSSQL SERVER
04.04.2013 17:20:35



Статья:

Модели восстановления  MSSQL SERVER

 

Модель восстановления позволяет вам управлять тем объемом данных, которые вы рискуете потерять в подтвержденных транзакциях при разрушении базы данных. Она также определяет скорость использования и размер вашей резервной копии протокола транзакций. В дополнение к этому, выбор модели восстановления оказывает влияние на размер протокола транзакций и поэтому на период времени, необходимый для выполнения резервного копирования протокола. Database Engine поддерживает три модели восстановления:

¦ полную;

¦ с неполным протоколированием;

¦ простую.

 

Полная  модель востановления

В процессе полного восстановления все операции записываются в протокол транзакций. Поэтому эта модель предоставляет полную защиту против сбоев внешних устройств. Это означает, что вы можете восстанавливать вашу базу данных с последней подтвержденной транзакции, которая была сохранена в файле протокола. В дополнение к этому вы можете восстанавливать данные на любой момент времени (предшествующий моменту сбоя). Чтобы обеспечить это, также полностью протоколируются такие операции, как select into, и выполнение утилиты Bcp.

Помимо возможности восстановления на момент времени, модель полного восстановления позволяет также выполнять восстановление на отметку в протоколе. Отметки в протоколе соответствуют заданной транзакции и добавляются в протокол, только если эта транзакция подтверждается.

Модель полного восстановления также протоколирует все операции, связанные с оператором create index, подразумевая, что процесс восстановления данных теперь включает и создание индекса. В этом случае пересоздание индексов выполняется быстрее, потому что вам не нужно отдельно создавать их заново.

Недостатком этой модели восстановления является то, что соответствующий протокол транзакций может быть очень большим по объему, и файлы на диске, содержащие этот протокол, могут быть заполнены очень быстро. Кроме того, для такого объемного протокола вам потребуется значительно больше времени на резервное копирование.

Модель восстановления с неполным протоколированием

Восстановление с неполным протоколированием поддерживает протоколы резервных копий при использовании минимального пространства в протоколе транзакций для некоторых крупномасштабных или объемных операций. Протоколирование следующих операций является минимальным и не может управляться по принципу «операция за операцией»:

¦ select into;

¦ create index (включая индексируемые представления);

¦ утилита bср и bulk insert.

Хотя объемные операции и не являются полностью запротоколированными, вам не нужно выполнять полное резервное копирование базы данных после завершения подобной операции. В процессе восстановления с неполным протоколированием резервные копии протокола транзакций содержат и протокол, и результат объемной операции. Это упрощает переход между полной моделью и моделью восстановления с неполным протоколированием.

Модель восстановления с неполным протоколированием позволяет восстанавливать базу данных до конца резервной копии протокола транзакций (т. е. до самой последней подтвержденной транзакции). Дополнительно вы можете восстанавливать вашу базу данных на любой момент времени, если вы не выполняли объемных операций. То же самое верно и для операции восстановления до именованной отметки в протоколе.

Преимуществом модели восстановления с неполным протоколированием является то, что объемные операции выполняются много быстрее, чем под моделью полного восстановления, потому что они не протоколируются полностью. С другой стороны, Database Engine выполняет резервное копирование всех экстентов вместе с собственно протоколом. Поэтому для резервной копии протокола требуется гораздо меньше памяти, чем в случае полного восстановления. Время восстановления с резервной копии протокола также значительно увеличивается.

Простая модель восстановления

В простой модели восстановления протокол транзакций усекается, если появляется точка сохранения. Поэтому вы можете выполнять восстановление разрушенной базы данных только при использовании полной резервной копии базы данных или дифференцированной резервной копии, потому что они не требуют резервной копии протокола. Стратегия резервного копирования для этой модели является очень простой: выполнение восстановления базы данных с существующей резервной копии базы данных и, если существуют дифференцированные резервные копии, применение самой последней ее версии.

Преимуществом простой модели восстановления является то, что производительность всех объемных операций очень высокая, а требования к объему памяти протокола очень невысокие. С другой стороны, эта модель требует больше ручной работы, поскольку все изменения с момента самого последнего резервного копирования базы данных (или получения дифференцированной резервной копии) должны быть восстановлены. В этой модели восстановления не допустимы восстановления на конкретный момент времени или восстановление страниц. Кроме того, восстановление файлов допустимо только для вторичных файловых групп только для чтения.