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