Обновление доставки журналов до SQL Server 2012 (Transact-SQL)
При обновлении с SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2 до SQL Server 2012 конфигурацию доставки журналов можно сохранить. В этом разделе описаны альтернативные сценарии и рекомендации по обновлению конфигурации доставки журналов.
Примечание |
---|
Сжатие резервной копии было введено в выпуске SQL Server 2008 Enterprise. В обновленной конфигурации доставки журналов используется параметр конфигурации backup compression default уровня сервера, который управляет применением сжатия резервной копии к файлам резервной копии журнала транзакций. Режим сжатия резервной копии журналов можно указать отдельно для каждой конфигурации доставки журналов. Дополнительные сведения см. в разделе Настройка доставки журналов (SQL Server). |
В этом разделе:
Защита данных перед обновлением
Обновление экземпляра сервера мониторинга
Обновление конфигурации доставки журналов с одним сервером-получателем
Обновление нескольких экземпляров серверов-получателей
Повторное развертывание доставки журналов
Защита данных перед обновлением
Рекомендуется защищать данные перед обновлением доставки журналов.
Защита данных
Создайте полную резервную копию каждой базы данных-источника.
Дополнительные сведения см. в разделе Создание полной резервной копии базы данных (SQL Server).
Выполните команду DBCC CHECKDB в каждой базе данных-источнике.
Обновление экземпляра сервера мониторинга
Существующий экземпляр сервера мониторинга можно обновить в любой момент.
При обновлении сервера мониторинга конфигурация доставки журналов продолжает работать, но ее состояние не записывается в таблицы мониторинга. В процессе обновления сервера мониторинга не будут срабатывать никакие настроенные предупреждения. После обновления можно обновить сведения в таблицах наблюдения. Для этого следует выполнить системную хранимую процедуру sp_refresh_log_shipping_monitor.
Обновление конфигурации доставки журналов с одним сервером-получателем
Процесс обновления, описанный в этом разделе, предполагает работу с конфигурацией, которая состоит из сервера-источника и единственного сервера-получателя. Эта конфигурация показана на следующей иллюстрации, на которой изображен экземпляр сервера-источника (A) и экземпляр единственного сервера-получателя (Б).
Сведения об обновлении нескольких серверов-получателей см. в подразделе Обновление нескольких экземпляров серверов-получателей далее в этом разделе.
В этом разделе.
Обновление экземпляра сервера-получателя
Обновление экземпляра сервера-источника
Обновление экземпляра сервера-получателя
Перед обновлением экземпляра сервера-источника обновляется конфигурация доставки журналов экземпляров серверов-получателей с SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2 до версии SQL Server 2012. Экземпляр сервера-получателя всегда следует обновлять первым. Если бы сервер-источник обновлялся до сервера-получателя, то доставка журналов стала бы невозможна, поскольку более старую версию SQL Server нельзя восстановить из резервной копии, созданной в новой версии SQL Server.
Доставка журналов продолжается и во время обновления, поскольку обновленные серверы-получатели продолжают восстанавливать журналы из резервных копий с сервера-источника SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2. Процесс обновления экземпляров сервера-получателя частично зависит от того, предусмотрено ли в конфигурации доставки журналов несколько серверов-получателей. Дополнительные сведения см. в подразделе Обновление нескольких экземпляров серверов-получателей далее в этом разделе.
Пока идет обновление экземпляра сервера-получателя, копия доставки журналов и задания восстановления не выполняются, вследствие чего накапливаются невосстановленные резервные копии журналов транзакций. Количество этих копий зависит от частоты запланированного резервного копирования на сервере-источнике. Кроме того, если настроен отдельный сервер мониторинга, то могут возникать предупреждения о том, что восстановление не выполнялось дольше установленного интервала.
Как только сервер-получатель будет обновлен, задания агентов доставки журналов возобновляют работу и продолжают копирование и восстановление резервных копий журналов с экземпляра сервера-источника, т. е. сервера A. Время, которое необходимо серверу-получателю для перевода базы данных-получателя в актуальное состояние, зависит от времени, затраченного на обновление сервера-получателя и частоты резервного копирования на сервере-источнике.
Примечание |
---|
В процессе обновления сервера база данных-получатель не обновляется до версии SQL Server 2012. Ее обновление происходит только при переключении в режим «в сети». |
Важно! |
---|
Параметр RESTORE WITH STANDBY не поддерживается для базы данных, требующей обновления. Если обновленная база данных-получатель была настроена при помощи RESTORE WITH STANDBY, то журналы транзакций нельзя восстановить после обновления. Чтобы возобновить доставку журналов на базу данных-получатель, необходимо заново настроить доставку журналов на резервном сервере. Дополнительные сведения о параметре STANDBY см. в разделе Аргументы инструкции RESTORE (Transact-SQL). |
Обновление экземпляра сервера-источника
При планировании обновления большое значение имеет время, в течение которого база данных будет недоступна. В простейшем сценарии обновления база данных недоступна, пока обновляется сервер-источник (приведенный ниже сценарий 1).
Добиться максимальной доступности базы данных можно за счет усложнения процесса обновления. Для этого перед обновлением исходного сервера-источника нужно выполнить переход с сервера-источника SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2 на сервер-получатель SQL Server 2012 (приведенный ниже сценарий 2). Существует два возможных сценария отработки отказа. Можно переключиться назад на исходный сервер-источник и сохранить первоначальную конфигурацию доставки журналов. В качестве альтернативного варианта можно удалить исходную конфигурацию доставки журналов до обновления исходного сервера-источника и позднее создать новую конфигурацию с помощью нового сервера-источника. В этом разделе описываются оба сценария.
Важно! |
---|
Экземпляр сервера-получателя следует обновлять обязательно до экземпляра сервера-источника. Дополнительные сведения см. в подразделе Обновление экземпляра сервера-получателя ранее в этом разделе. |
В этом разделе.
Сценарий 1. Обновление экземпляра сервера-источника без отработки отказа
Сценарий 2. Обновление экземпляра сервера-источника с отработкой отказа
Сценарий 1. Обновление экземпляра сервера-источника без отработки отказа
Этот сценарий проще, но он приводит к большему времени простоя, чем при использовании отработки отказа. Экземпляр сервера-источника просто обновляется, и в течение этого времени база данных недоступна.
Как только обновление сервера завершается, база данных автоматически переводится обратно в режим «в сети», в результате чего обновляется сама. После обновления базы данных возобновляют работу задания доставки журналов.
Сценарий 2. Обновление экземпляра сервера-источника с отработкой отказа
Этот сценарий сокращает до минимума время простоя и обеспечивает максимальную доступность базы данных. В данном сценарии выполняется управляемая отработка отказа на экземпляр сервера-получателя, в результате чего база данных остается доступной, пока обновляется исходный экземпляр сервера-источника. Период простоя ограничивается временем, которое требуется для перехода на другой ресурс, оно относительно невелико по сравнению с временем обновления экземпляра сервера-источника.
При обновлении экземпляра сервера-источника с отработкой отказа выполняются три основные процедуры: управляемая отработка отказа на сервер-получатель, обновление исходного экземпляра сервера-источника до версии SQL Server 2012 и настройка доставки журналов на экземпляре сервера-источника SQL Server 2012. Данные процедуры описаны в этом разделе.
Важно! |
---|
Если в качестве нового экземпляра сервера-источника планируется использовать экземпляр сервера-получателя, то конфигурацию доставки журналов придется удалить. Доставку журналов нужно будет настроить повторно на новом сервере-источнике и новом сервере-получателе после того, как будет обновлен исходный экземпляр сервера-источника. Дополнительные сведения см. в разделе Удаление доставки журналов (SQL Server). |
В этом разделе.
Процедура 1. Выполните управляемую отработку отказа на сервер-получатель
Процедура 2. Обновление исходного экземпляра сервера-источника до версии SQL Server 2012
Процедура 3. Настройка доставки журналов в SQL Server 2012
Процедура 1. Выполните управляемую отработку отказа на сервер-получатель
Управляемая отработка отказа на сервер-получатель.
Вручную создайте резервную копию заключительного фрагмента журнала транзакций в базе данных-источнике, указав предложение WITH NORECOVERY. В эту резервную копию журналов попадут все записи, резервная копия которых еще не была создана, и база данных будет отключена. Обратите внимание, что пока база данных находится в режиме «вне сети», задание резервного копирования в доставке журналов будет завершаться с ошибкой.
В приведенном ниже примере создается резервная копия заключительного фрагмента журнала базы данных AdventureWorks на сервере-источнике. Файлу резервной копии присваивается имя Failover_AW_20080315.trn:
BACKUP LOG AdventureWorks TO DISK = N'\\FileServer\LogShipping\AdventureWorks\Failover_AW_20080315.trn' WITH NORECOVERY; GO
Рекомендуется использовать различные соглашения об именах файлов, чтобы можно было отличить файлы резервных копий, созданные вручную, от файлов резервных копий, созданных заданием резервного копирования в доставке журналов.
На сервере-получателе сделайте следующее.
Убедитесь, что применены все резервные копии, созданные автоматически заданиями резервного копирования в доставке журналов. Проверить, какие задания резервного копирования были применены, можно с помощью системной процедуры sp_help_log_shipping_monitor на сервере мониторинга либо на сервере-источнике или сервере-получателе. Тот же файл должен быть указан в столбцах last_backup_file, last_copied_file и last_restored_file. Если какой-то из файлов резервной копии не был скопирован или из него не было выполнено восстановление, вручную вызовите задания копирования и восстановления агента для конфигурации доставки журналов.
Дополнительные сведения о запуске задания см. в разделе Запуск задания.
Скопируйте заключительный файл резервной копии журнала, созданный в шаге 1, из общей папки в локальное расположение, которое используется для доставки журналов на сервере-получателе.
Восстановите заключительную резервную копию журнала, указав предложение WITH RECOVERY, чтобы перевести базу данных в режим «в сети». При переходе в режим «в сети» база данных будет обновлена до версии SQL Server 2012.
В приведенном ниже примере выполняется восстановление из резервной копии заключительного фрагмента журнала базы данных AdventureWorks в базе данных-получателе. В примере используется параметр WITH RECOVERY, который переводит базу данных в режим «в сети»:
RESTORE LOG AdventureWorks FROM DISK = N'c:\logshipping\Failover_AW_20080315.trn' WITH RECOVERY; GO
Примечание Для конфигурации, в которой несколько серверов-получателей, предусмотрены дополнительные действия. Дополнительные сведения см. в подразделе Обновление нескольких экземпляров серверов-получателей далее в этом разделе.
Перевод базы данных на другой ресурс путем перенаправления клиентов с исходного сервера-источника (сервера A) на подключенный сервер-получатель (сервер B).
Убедитесь, чтобы журнал транзакций базы данных-получателя не заполнялся, когда база данных находится в режиме «в сети». Чтобы предотвратить заполнение журнала транзакций, можно создать его резервную копию. То есть рекомендуется сохранить его резервную копию в общем расположении, общей папке резервных копий, чтобы резервные копии были доступны для восстановления из копии на другом экземпляре сервера.
Процедура 2. Обновите исходный экземпляр сервера-источника до версии SQL Server 2012
После обновления экземпляра исходного экземпляра сервера-источника до версии SQL Server 2012 база данных по-прежнему будет в режиме «вне сети» и в формате предыдущей версии.
Процедура 3. Настройка доставки журналов в SQL Server 2012
Оставшаяся часть процедуры обновления зависит от того, настроена ли доставка журналов.
Если конфигурация доставки журналов SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2 была сохранена, переключитесь обратно на экземпляр исходного сервера-источника. Дополнительные сведения см. в подразделе Переключение обратно на экземпляр исходного сервера-источника далее в этом разделе.
Если конфигурация доставки журналов была удалена до перехода на другой ресурс, создайте новую конфигурацию, в которой экземпляр исходного сервера-получателя будет новым экземпляром нового сервера-источника. Дополнительные сведения см. в подразделе Сохранение экземпляра прежнего сервера-получателя в качестве экземпляра нового сервера-источника далее в этом разделе.
Переключение обратно на экземпляр исходного сервера-источника
На промежуточном сервере-источнике (сервер B) создайте резервную копию заключительного фрагмента журнала с помощью параметра WITH NORECOVERY — будет создана резервная копия заключительного фрагмента журнала, а база данных перейдет в режим «вне сети». Резервная копия заключительного фрагмента журнала имеет имя Switchback_AW_20080315.trn. Например:
BACKUP LOG AdventureWorks TO DISK = N'\\FileServer\LogShipping\AdventureWorks\Switchback_AW_20080315.trn' WITH NORECOVERY; GO
Если в промежуточной базе данных-источнике создавались резервные копии журналов транзакций, отличные от резервной копии заключительного фрагмента журнала, созданной в шаге 1, выполните восстановление из этих копий с помощью параметра WITH NORECOVERY для базы данных в режиме «вне сети» на исходном сервере-источнике (сервер A). База данных будет обновлена до формата SQL Server 2012 при восстановлении из первой же резервной копии журналов.
Выполните восстановление из резервной копии заключительного фрагмента журнала (Switchback_AW_20080315.trn) в исходной базе данных-источнике (на сервере A) с помощью параметра WITH RECOVERY, чтобы перевести базу данных в режим в сети.
Перейдите обратно к исходной базе данных-источнику (на сервере A) путем перенаправления клиентов с исходного сервера-источника на работающий в режиме «в сети» сервер-получатель.
После переключения базы данных в режим «в сети» снова будет использоваться исходная конфигурация доставки журналов.
Сохранение экземпляра прежнего сервера-получателя в качестве экземпляра нового сервера-источника
Создайте новую конфигурацию доставки журналов, используя экземпляр прежнего сервера-получателя, сервера B, в качестве нового сервера-источника и прежнего экземпляра сервера-источника, сервера A, в качестве нового сервера-получателя.
Важно! |
---|
Прежняя конфигурация доставки журналов должна быть уже удалена с исходного сервера-источника в начале процедуры перед ручным созданием резервной копии журнала транзакций, в результате чего база данных была переведена в режим «вне сети». |
Чтобы не выполнять полное резервное копирование и восстановление базы данных на новом сервере-получателе (сервере A), примените резервные копии журналов из новой базы данных-источника к новой базе данных-получателю. В примере конфигурации выполняется восстановление из резервных копий журналов, созданных на сервере B, в базе данных на сервере A.
Создание резервной копии журналов в новой базе данных-источнике (на сервере B).
Восстановление из резервных копий журналов на экземпляре нового сервера-получателя (сервере A) с помощью параметра WITH NORECOVERY. В процессе первой же операции восстановления база данных обновляется до версии SQL Server 2012.
Настройте доставку журналов с прежним сервером-получателем (сервером B) в качестве экземпляра сервера-источника.
Важно! При работе в среде Среда SQL Server Management Studio следует указать, что база данных-получатель уже инициализирована.
Дополнительные сведения см. в разделе Настройка доставки журналов (SQL Server).
Перевод базы данных на другой ресурс путем перенаправления клиентов с исходного сервера-источника (сервера A) на подключенный сервер-получатель (сервер B).
Важно! При отработке отказа с переходом на новую базу данных-источник следует убедиться, что ее метаданные согласованы с метаданными исходной базы данных-источника. Дополнительные сведения см. в разделе Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).
Обновление нескольких экземпляров серверов-получателей
Эта конфигурация показана на следующей иллюстрации, на которой изображен экземпляр сервера-источника (A) и два экземпляра сервера-получателя (B и C).
В этом разделе описывается выполнения обновления с помощью отработки отказа на сервер-получатель и обратного переключения на исходный сервер-источник. Обновление экземпляра сервера-источника с отработкой отказа усложняется, если существует несколько экземпляров сервера-получателя. В следующей процедуре после обновления всех серверов-получателей сервер-источник переводится на другой ресурс — одну из обновленных баз данных-получателей. Исходный сервер-источник обновляется, и доставка журналов переключается обратно на него.
Важно! |
---|
Экземпляры сервера-получателя всегда следует обновлять раньше, чем сервер-источник. |
Обновление с помощью отработки отказа на сервер-получатель и обратного переключения на исходный сервер-источник
Обновите все экземпляры сервера-получателя (сервер B и сервер C).
Получите заключительный фрагмент журнала транзакций базы данных-источника (на сервере A) и переведите базу данных в режим «вне сети» путем создания резервной копии журнала транзакций с помощью параметра WITH NORECOVERY.
На сервере-получателе, на который планируется выполнять переход (сервер B), переведите базу данных-получатель в режим «в сети» путем восстановления из резервной копии журналов с помощью инструкции WITH RECOVERY.
На каждом сервере-получателе (сервер C) следует перевести базу данных-получатель в режим «вне сети» путем восстановления из резервной копии журналов с помощью предложения WITH NORECOVERY.
Примечание Задания копирования и восстановления доставки журналов будут запускаться на серверах-получателях, но они не будут выполнять никаких действий, поскольку новые файлы резервной копии журналов не будут помещены в общую папку резервных копий.
Перевод базы данных на другой ресурс путем перенаправления клиентов с исходного сервера-источника (сервера A) на подключенный сервер-получатель (сервер B). База данных в режиме «в сети» становится промежуточным сервером-источником, благодаря которому база остается доступной, пока исходный сервер-источник (сервер A) находится в режиме «вне сети».
Обновите исходный сервер-источник (сервер A).
В базе данных, на которую выполнен переход — промежуточную базу данных-источник (на сервере B), — вручную создайте резервную копию журнала транзакций с помощью параметра WITH NORECOVERY. При этом база данных перейдет в режим «вне сети».
Выполните восстановление из всех резервных копий журналов транзакций, созданных в промежуточной базе данных-источнике (на сервере B) для всех прочих баз данных-получателей (на сервере C) с помощью параметра WITH NORECOVERY. Это позволяет продолжить доставку журналов из исходной базы данных-источника после ее обновления без необходимости выполнять полное восстановление в каждой базе данных-получателе.
Восстановите журнал транзакций с промежуточного сервера-источника (сервера B) на исходной базе данных-источнике (на сервере A) с помощью параметра WITH RECOVERY.
Повторное развертывание доставки журналов
Если не нужно выполнять миграцию конфигурации доставки журналов с помощью одной из вышеуказанных процедур, можно повторно развернуть доставку журналов с нуля, выполнив повторную инициализацию базы данных-получателя с полной резервной копией, и восстановить базу данных-источник. Это может быть наиболее предпочтительным режимом, если имеется небольшая база данных или если высокий уровень доступности не является требованием к процедуре обновления.
Дополнительные сведения о включении доставки журналов см. в разделе Настройка доставки журналов (SQL Server).
См. также
Основные понятия
Резервные копии журналов транзакций (SQL Server)