Программирование >>  Программирование баз данных 

1 ... 295 296 297 [ 298 ] 299 300 301 ... 346


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

Параметр Recovery Status

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

Если используется опция, предусмотренная по умолчанию (которая равносильна применению ключевого слова WITH RECOVERY при использовании операторов T-SQL), то после восстановления база данных немедленно становится полностью работоспособной. Но если, например, вслед за окончанием первоначального восстановления необходимо восстановить журналы, то следует выбрать одну из двух других опций. Обе эти опции исключают возможность выполнения в базе данных операций обновления и оставляют ее в таком состоянии, в котором могут быть выполнены дополнительные операции восстановления; различие между этими двумя опциями состоит в том, что при использовании первой из них пользователям разрешается доступ к базе данных в режиме только чтения, а применение второй приводит к тому, что у пользователей по-прежнему остается впечатление, что база данных находится в автономном режиме.

Проблема предотвращения доступа пользователей к восстанавливаемой базе данных сложнее, чем может показаться на первый взгляд. Иногда приходится просто удивляться тому, насколько быстро пользователи находят путь в систему после того, как в ходе операции восстановления база данных внезапно отмечается как доступная. Зачастую возникают такие ситуации, что администратор базы данных, подготавливая следующий этап восстановления, не успевает даже открыть базу данных, как обнаруживает, что в ней уже работают пользователи. Если дело обстоит именно так, тю обязательно используйте метод восстановления с ключевым словом N0 RECOVERY. После этого вы сможете приступить к осуществлению этапа восстановления, рассчитанного исключительно на применение опции WITH RECOVERY, и полностью перевести базу данных снова в оперативный режим, лишь убедившись в том, что все операции восстановления пройми так, как было задумано.

Восстановление данных с использованием средств языка T-SQL

Для восстановления данных, представленных в резервных копиях, используется команда RESTORE. Для вызова команды RESTORE применяется следующий синтаксис:

RESTORE DATABASE I LOG <database name> [FROM <backup device> [,...n]] [WITH

[DBO ONLY]

,] FILE = <file number>] ,] MEDIANAME = <media name>]

,] MOVE <logical file name> TO <operating system file name>][,...n] ] {NORECOVERYI RECOVERY I STANDBY = <undo file name>}] ] {NOUNLOADI UNLOAD}] ] REPLACE] ] RESTART]

] STATS [= percentage]]



[[,] { STOPAT = { <date and time> }

I STOPATMARK = { <name of mark> }

[ AFTER <date and time> ] I STOPBEFOREMARK = { <name of mark> } [ AFTER <date and time> ]

Некоторые опции этой команды описаны ниже.

DBO ONLY. После завершения восстановления должна быть выполнена настройка базы данных с вводом в действие параметра базы данных dbo only. Благодаря этому владелец базы данных получает возможность ознакомиться с результатами восстановления, проверить работоспособность базы данных и только после этого предоставить пользователям доступ в систему.

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

FILE. Перезаписываемые носители позволяют стирать с них устаревшие резервные копии и записывать новые. Параметр FILE позволяет выбрать определенную версию для восстановления. Если этот параметр не задан, то в СУБД SQL Server принимается предположение, что должна быть восстановлена последняя по времени резервная копия.

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

NORECOVERY/RECOVERY/STANDBY. Параметры RECOVERY и NORECOVERY являются взаимоисключающими. Параметр STANDBY применяется вместе с параметром NORECOVERY. Описание параметров NORECOVERY, RECOVERY и STANDBY приведено в табл. 24.13.

Таблица 24.13. Описание параметров norecovery, recovery и standby Параметр Описание

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

RECOVERY При использовэнии ЭТОГО Параметра сразу после успешного выполнения команды восстановления база данных снова отмечается как активная. После этого вновь появляется возможность вносить изменения в данные. Применительно к любым незафиксированным транзакциям выполняется откат. Этот параметр применяется по умолчанию, если не указан ни один из прочих параметров



Параметр Описание

standby Параметр standby позволяет создать файл отката, с помощью которого

могут быть отменены результаты восстановления. Параметр standby дает возможность перевести базу данных в режим доступа только для чтения до того времени, как будет вызвана на выполнение команда с параметром recovery (это означвет, что по крайней мере часть данных восстановлена, но процесс восстановления еще нельзя рассматривать как закончившийся). Благодаря этому пользователи получают возможность работать в системе в режиме только чтения, в то время, как осуществляется проверка результатов восстановления

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

RESTART. Этот параметр служит для СУБД SQL Server указанием на то, что след)ет продолжить ранее прерванный процесс восстановления.

Автор намеревается продемонстрировать описанную процедуру на примере восстановления базы данных AdventureWorks. Самим читателям следует предпринимать подобные действия, лишь полностью убедившись в том, что перед этим была успешно создана резервная копия и эта копия является исправной.

Для этого прежде всего необходимо удалить существующую базу данных AdventureWorks: use master

DROP DATABASE AdventureWorks

После завершения этой операции попытаемся восстановить базу данных с помощью команды RESTORE:

restore database AdventureWorks FROM TSQLBackupDevice with

DBO only,

norecovery, stats

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

restore log AdventureWorks FROM TSQLBackupDevice WITH

DBO ONLY, NORECOVERY,

stats

Следует отметить, что если бы на указанном устройстве резервного копирования находилось несколько журналов, предназначенных для применения, то пришлось бы указать имена этих журналов в том порядке, в котором их необходимо было бы при-



1 ... 295 296 297 [ 298 ] 299 300 301 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика