Поделиться через


Восстановление резервной копии журнала транзакций (SQL Server)

В этом разделе описывается восстановление журнала транзакций из резервной копии в SQL Server 2012 с помощью среды Среда SQL Server Management Studio или Transact-SQL.

В этом разделе

  • Перед началом работы выполните следующие действия.

    Предварительные требования

    Безопасность

  • Для восстановления резервной копии журнала транзакций используется:

    Среда SQL Server Management Studio

    Transact-SQL

  • Связанные задачи

Перед началом работы

Предварительные требования

  • Резервные копии должны восстанавливаться в том же порядке, в котором они были созданы. Перед тем как можно будет восстановить определенную резервную копию журнала транзакций, вначале должны быть восстановлены следующие более ранние резервные копии без отката незафиксированных транзакций, т.е.с параметром WITH NORECOVERY:

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

    • Все резервные копии журнала транзакций, созданные после полной резервной копии базы данных или разностной резервной копии (если она восстанавливается), и перед заданной резервной копией журнала транзакций. Резервные копии журналов необходимо применять в порядке их создания, без разрывов в цепочке журналов.

      Дополнительные сведения о резервном копировании журналов транзакций см. в разделах Резервные копии журналов транзакций (SQL Server) и Применение резервных копий журналов транзакций (SQL Server).

Безопасность

Разрешения

Разрешения на выполнение инструкции RESTORE даются ролям, в которых данные о членстве всегда доступны серверу. Так как членство в предопределенной роли базы данных может быть проверено только тогда, когда база данных доступна и не повреждена, что не всегда имеет место при выполнении инструкции RESTORE, члены предопределенной роли базы данных db_owner не имеют разрешений RESTORE.

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Использование среды SQL Server Management Studio

ПредупреждениеВнимание!

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

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

  1. После соединения с соответствующим экземпляром компонента Microsoft Компонент SQL Server Database Engine в обозревателе объектов разверните дерево сервера, щелкнув имя сервера.

  2. Раскройте узел Базы данных и в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных.

  3. Щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, затем пункт Восстановить и пункт Журнал транзакций. В результате откроется диалоговое окно Восстановление журнала транзакций.

    ПримечаниеПримечание

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

  4. На странице Общие в списке База данных выберите имя базы данных. Перечислены только базы данных, которые находятся в состоянии восстановления.

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

    • Из предыдущих резервных копий базы данных

      Выберите из раскрывающегося списка базу данных для восстановления. Данный список содержит только базы данных, резервное копирование которых было выполнено в соответствии с журналом резервного копирования msdb.

    • Из файла или с ленты

      Нажмите кнопку обзора (...), после чего откроется диалоговое окно Выбор устройства резервного копирования. В окне Тип носителя резервной копии выберите один из перечисленных типов устройств. Чтобы выбрать одно или несколько устройств в окне Носитель резервной копии, нажмите кнопку Добавить.

      После добавления устройств в список окна Носитель резервной копии нажмите кнопку ОК для возвращения на страницу Общие.

  6. В сетке Выберите резервные копии журнала транзакций для восстановления выберите нужные резервные наборы. В этой сетке перечислены резервные копии журналов транзакций, доступные для выбранной базы данных. Резервная копия журналов доступна только в том случае, если ее первый номер LSN больше, чем последний номер LSN базы данных. Резервные копии журналов перечислены в порядке содержащихся в них номеров LSN и должны быть восстановлены в этом порядке.

    В приведенной ниже таблице перечислены заголовки столбцов сетки, а также даны описания их значений.

    Заголовок

    Значение

    Восстановить

    Установленные флажки показывают резервные наборы данных для восстановления.

    Название

    Имя резервного набора данных.

    Компонент

    Компонент, для которого выполнено резервное копирование: База данных, Файл или <пусто> (для журналов транзакций).

    База данных

    Имя базы данных, задействованной в операции резервного копирования.

    Дата начала

    Дата и время начала резервного копирования, представленные в соответствии с региональными стандартами клиента.

    Дата завершения

    Дата и время окончания резервного копирования, представленные в соответствии с региональными настройками клиента.

    Первый номер LSN

    Регистрационный номер транзакции в журнале для первой транзакции резервного набора данных Пустой для резервных копий файлов.

    Последний номер LSN

    Регистрационный номер в журнале для первой транзакции резервного набора данных Пустой для резервных копий файлов.

    Номер LSN для контрольной точки

    Регистрационный номер транзакции в журнале для последней контрольной точки на время создания резервной копии.

    Полный номер LSN

    Регистрационный номер транзакции в журнале для последней полной резервной копии базы данных.

    Сервер

    Имя экземпляра ядра СУБД, выполнившего операцию резервного копирования.

    Имя пользователя

    Имя пользователя, выполнившего операцию резервного копирования.

    Размер

    Размер резервного набора данных в байтах.

    Позиция

    Позиция резервного набора данных в томе.

    Истечение срока действия

    Дата и время окончания срока действия резервного набора данных.

  7. Выполните одно из следующих действий:

    • На момент времени

      Либо сохраните значение по умолчанию (Самый последний), либо выберите конкретную дату и время, нажав кнопку обзора и открыв диалоговое окно Восстановление на момент времени.

    • До помеченной транзакции

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

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

      В приведенной ниже таблице перечислены заголовки столбцов сетки, а также даны описания их значений.

      Заголовок

      Значение

      <пусто>

      Отображает флажок для выбора маркера.

      Отметка транзакции

      Имя помеченной транзакции, заданное пользователем при фиксации транзакции.

      Дата

      Дата и время фиксации транзакции. Дата и время транзакции отображаются, в соответствии с данными в таблице msdb gmarkhistory, а не с датой и временем на клиентском компьютере.

      Описание

      Описание помеченной транзакции, заданное пользователем при ее фиксации (при его наличии).

      Номер LSN

      Регистрационный номер помеченной транзакции в журнале.

      База данных

      Имя базы данных, в которой была зафиксирована помеченная транзакция.

      Имя пользователя

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

  8. Чтобы просмотреть или выбрать дополнительные параметры, нажмите кнопку Параметры на панели Выбор страницы.

  9. В разделе Восстановление параметров предусмотрены следующие варианты выбора:

    • Сохранить параметры репликации (WITH KEEP_REPLICATION)

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

      Этот параметр доступен только вместе с параметром Оставить базу данных готовой к использованию путем отката незафиксированных транзакций... (описанным ниже), который эквивалентен восстановлению резервной копии с параметром RECOVERY.

      Выбор этого параметра равнозначен использованию параметра KEEP_REPLICATION в инструкции Transact-SQL RESTORE.

    • Выдавать приглашение перед восстановлением каждой резервной копии

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

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

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

    • Ограничить доступ к восстановленной базе данных (WITH RESTRICTED_USER)

      Доступ к восстановленной базе данных будут иметь только члены ролей db_owner, dbcreator или sysadmin.

      Выбор этого параметра аналогичен использованию параметра RESTRICTED_USER в инструкции Transact-SQL RESTORE.

  10. В качестве значения параметра Состояние восстановления укажите состояние базы данных после операции восстановления.

    • Оставить базу данных готовой к использованию, выполнив откат незафиксированных транзакций. Невозможно восстановить дополнительные журналы транзакций. (RESTORE WITH RECOVERY)

      Восстанавливает базу данных. Этот параметр равнозначен использованию параметра RECOVERY в инструкции Transact-SQL RESTORE.

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

    • Оставить базу данных в нерабочем состоянии и не производить откат незафиксированных транзакций. Можно восстановить дополнительные журналы транзакций. (RESTORE WITH NORECOVERY)

      Оставить базу данных в состоянии RESTORING (невосстановленном). Этот параметр равнозначен использованию параметра NORECOVERY в инструкции Transact-SQL RESTORE.

      При выборе данного параметра параметр Сохранить настройки репликации становится недоступным.

      Важное примечаниеВажно!

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

    • Оставить базу данных в режиме только для чтения. Отменить незафиксированные транзакции, но сохранить отмененные действия в файле, чтобы результаты восстановления могли быть отменены. (RESTORE WITH STANDBY)

      Оставить базу данных в резервном состоянии. Этот параметр равнозначен использованию параметра STANDBY в инструкции Transact-SQL RESTORE.

      При выборе этого параметра необходимо указать резервный файл.

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Использование Transact-SQL

Важное примечаниеВажно!

Во избежание неоднозначности в каждой инструкции WITH RECOVERY рекомендуется явное задание параметра WITH NORECOVERY или WITH RECOVERY. Это особенно важно учитывать при написании скриптов.

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

  1. Чтобы применить резервную копию журналов транзакций, выполните инструкцию RESTORE LOG, указав при этом:

    • имя базы данных, к которой будет применен журнал транзакций;

    • устройство резервного копирования, с которого будет восстановлена резервная копия журналов транзакций;

    • предложение NORECOVERY.

    В этой инструкции применяется следующая основная синтаксическая конструкция:

    RESTORE LOG database_name FROM <устройство_резервного_копирования> WITH NORECOVERY.

    Здесь database_name — имя базы данных, а <устройство_резервного_копирования>— имя устройства, на котором содержится восстанавливаемая резервная копия журнала.

  2. Повторите шаг 1 для каждой резервной копии журналов транзакций, которые необходимо применить.

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

    • Восстановить базу данных в составе последней инструкции RESTORE LOG:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;
      GO
      
    • Подождать, а затем восстановить базу данных отдельной инструкцией RESTORE DATABASE:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; 
      RESTORE DATABASE <database_name> WITH RECOVERY;
      GO
      

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

    Важное примечаниеВажно!

    При создании зеркальной базы данных этап восстановления можно пропустить. Зеркальная база данных должна остаться в состоянии RESTORING.

Примеры (Transact-SQL)

По умолчанию для базы данных AdventureWorks2012 используется простая модель восстановления. В следующем примере для перехода на модель полного восстановления требуется изменить базу данных следующим образом:

ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;

А.Применение одной резервной копии журнала транзакций

В следующем примере база данных AdventureWorks2012 восстанавливается с помощью полной резервной копии базы данных, которая находится на устройстве резервного копирования с именем AdventureWorks2012_1. Затем применяется первая резервная копия журнала транзакций, находящаяся на устройстве с именем AdventureWorks2012_log. В заключение происходит восстановление базы данных.

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorks2012_1
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 1,
   WITH NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2012
   WITH RECOVERY;
GO

Б.Применение нескольких резервных копий журналов транзакций

В следующем примере база данных AdventureWorks2012 восстанавливается с помощью полной резервной копии базы данных, которая находится на устройстве резервного копирования с именем AdventureWorks2012_1. Затем последовательно применяются первые три копии журнала транзакций, находящиеся на устройстве с именем AdventureWorks2012_log. В заключение происходит восстановление базы данных.

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorks2012_1
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 1,
   NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 2,
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
   FROM AdventureWorks2012_log
   WITH FILE = 3,
   WITH NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2012
   WITH RECOVERY;
GO

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Связанные задачи

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Справочник

RESTORE (Transact-SQL)

Основные понятия

Применение резервных копий журналов транзакций (SQL Server)