Опубликован: 11.12.2006 | Уровень: специалист | Доступ: свободно

Лекция 33: Восстановление и воспроизведение базы данных

< Лекция 32 || Лекция 33: 1234 || Лекция 34 >
Аннотация: В прошлой лекции вы познакомились с методами резервного копирования базы данных. Теперь пришло время рассказать о восстановлении данных до состояния нормальной работы системы. Рассматривается восстановление из полной резервной копии, разностной резервной копии, резервных копий журналов транзакций, режиме воспроизведения BULK_LOGGED. Уделено внимание операторам RESTORE DATABASE и RESTORE LOG. Описание параметров этих операторов, примеры использования. Эти две лекции помогут эффективно выполнять резервное копирование и восстановление системы и понять как выполняется воспроизведение в SQL Server.

В "Резервное копирование Microsoft SQL Server" вы узнали о том, насколько важно выполнять резервное копирование вашей системы и как создавать резервные копии. В этой лекции мы продолжим тему защиты базы данных, исходя из материала предыдущей лекции. Вы узнаете, как восстанавливать базу данных, как планировать восстановление на случай аварии; мы рассмотрим более подробно, как происходит воспроизведение базы данных. Как вы увидите, тип выполненного резервного копирования влияет на то, как выполняется восстановление. Кроме изучения методов восстановления и воспроизведения базы данных, вы ознакомитесь с понятием доставки журнала транзакций (log shipping). Это новое средство, введенное в Microsoft SQL Server 2000, позволяющее создавать резервную копию вашей базы данных на другом сервере путем использования журнала транзакций исходного сервера.

Примечание. Некоторые администраторы баз данных (DBA) называют процесс восстановления (restoring) и последующее воспроизведение (recovering) базы данных просто "воспроизведением базы данных". Однако это совершенно различные процедуры. В "Резервное копирование Microsoft SQL Server" разъясняются отличия между восстановлением базы данных из резервной копии и процессом воспроизведения SQL Server. В любом случае главной целью выполнения операций резервного копирования, восстановления и воспроизведения является возврат базы данных к состоянию, в котором она находилась на момент отказа системы.

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

Как уже говорилось, тип выполненного резервного копирования влияет на характер операции восстановления. В этом разделе вы узнаете, как выполнять восстановление из полной резервной копии, из разностной резервной копии, а также из резервных копий журнала транзакций.

Восстановление из полной резервной копии

Восстановление из полной резервной копии – это довольно простой процесс: вы просто восстанавливаете файлы резервной копии с помощью SQL Server Enterprise Manager или операторов Transact-SQL (T-SQL). Инструкции по восстановлению данных с помощью этих двух методов приводятся далее в данной лекции. Если вы планируете восстановление из разностных резервных копий после восстановления из полной резервной копии, то не забывайте создавать резервную копию текущего журнала транзакций (см. раздел "Восстановление из резервных копий журнала транзакций" далее в этой лекции), и задавать параметр NORECOVERY, когда выполняете восстановление.

Примечание. Важной особенностью операции восстановления является использование параметра RECOVERY. Параметр RECOVERY указывает SQL Server, что после окончания операции восстановления нужно попытаться воспроизвести базу данных с помощью оперативного журнала транзакций. Если вы планируете использовать файлы разностных резервных копий или файлы резервных копий журнала транзакций, то не забудьте указать параметр NORECOVERY.
Восстановление из разностной резервной копии

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

Восстановление из резервных копий журнала транзакций

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

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

Чтобы использовать журналы транзакций для восстановления базы данных к состоянию, в котором она находилась непосредственно перед моментом отказа, выполните следующие основные шаги, используя методы, которые вы изучили в "Резервное копирование Microsoft SQL Server" .

  1. Выполните резервное копирование текущего активного журнала транзакций, используя параметр NO_TRUNCATE.
  2. Восстановите последнюю полную резервную копию.
  3. Восстановите все разностные резервные копии для возврата базы данных к состоянию, в котором она находилась при создании последней резервной копии.
  4. Восстановите все резервные копии журнала транзакций, созданные после записи последней разностной резервной копии, для воспроизведения всех транзакций, выполненных с момента создания этой последней резервной копии.
  5. Восстановите резервную копию журнала транзакций, которую вы создали на шаге 1, чтобы вернуть базу данных к состоянию, в котором она находилась непосредственно перед отказом системы.
Восстановление базы данных в режиме воспроизведения BULK_LOGGED

Если ваша база данных работает в режиме воспроизведения BULK_LOGGED, то вы должны повторно выполнить любые минимально протоколированные в журнале операции, если это восстановление необходимо. К этим операциям относятся SELECT...INTO, BULK COPY, BCP и некоторые операции CREATE INDEX, а также текстовые операции, о которых говорилось в предыдущей лекции. Если это налагает на вас непосильную нагрузку, не задавайте для вашей базы данных режим BULK_LOGGED.

< Лекция 32 || Лекция 33: 1234 || Лекция 34 >
Светлана Красюк
Светлана Красюк
Россия, г.Кемерово ул.Весенняя д.21 кв.29, КузГТУ, 2003