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


Отработка отказа и восстановление зеркальных баз данных в отдельной ферме

В данной статье описывается процедура отработки отказа и восстановления для фермы Microsoft Office SharePoint Server 2007, настроенной для использования зеркального отображения базы данных высокой доступности, после выполнения действий, которые описаны в разделе Настройка доступности в ферме с помощью зеркального отображения баз данных SQL Server.

Эта статья содержит следующие разделы:

  • Автоматический процесс отработки отказа для зеркальной базы данных

  • Ручной процесс отработки отказа для зеркальной базы данных

  • Мониторинг и предупреждения при зеркальной отработке отказа

  • Задание: отработка отказа для всех остальных баз данных

  • Задание: обновление псевдонимов соединений

  • Отработка отказа

  • Резюме

При отработке отказа в среде Office SharePoint Server 2007, в которой работают зеркальные базы данных, должны выполняться следующие действия:

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

  • Все другие базы данных основного сервера выполняют принудительную отработку отказа.

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

  • Ссылающиеся на базы данных псевдонимы соединений на всех интерфейсных веб-серверах и компьютерах перенаправляются на зеркальный сервер.

Автоматический процесс отработки отказа для зеркальной базы данных

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

Примечание

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

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

  1. Если основной сервер еще работает, он изменяет состояние основной базы данных на состояние DISCONNECTED и отключает от нее все клиенты.

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

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

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

Более подробное описание автоматической отработки отказа см. в статье Автоматическая отработка отказа (https://go.microsoft.com/fwlink/?linkid=83690&clcid=0x419).

Ручной процесс отработки отказа для зеркальной базы данных

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

В ходе ручной отработки отказа выполняются следующие действия:

  1. Администратор подключается к основному серверу и запускает для каждой базы данных следующие команды Transact-SQL:

    USE master;
    ALTER DATABASE <database_name> SET PARTNER FAILOVER; -- where database_name is the mirrored database. 
    

    Этот оператор немедленно запускает переход зеркального сервера на основную роль.

  2. Бывший основной сервер отключает все клиенты от базы данных и выполняет откат всех невыполненных транзакций.

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

Мониторинг и предупреждения при зеркальной отработке отказа

Используйте предупреждения SQL Server для мониторинга зеркального отображения, а затем запустите задания, выполняющие принудительную отработку отказа. Задания и предупреждения должны использоваться на основном и зеркальном экземплярах SQL Server.

Предупреждение: определение одиночного переключения базы данных с основного сервера на зеркальный

Внутри предупреждения используется команда Transact-SQL, определяющая переключение баз данных на соответствующую зеркальную базу.

SELECT * FROM Database_MIRRORING_STATE_CHANGE 
WHERE State=8 AND (databasename='Central Administration' OR databasename='Configuration' 
ORdatabasename='SSP' 
OR databasename=’SSP Content' 
OR databasename='SSP Search' 
OR databasename='WSS Search' 
OR databasename='Content_<port>' )

Задание: выполнить отработку отказа для всех остальных баз данных

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

Ниже приведен пример скрипта Transact-SQL, который может использоваться в задании по отработке отказа для всех зеркальных баз данных.

USE master;
DECLARE i CURSOR
READ_ONLY
FOR 
SELECT name FROM sys.databases WHERE database_id IN
(SELECT database_id FROM sys.database_mirroring WHERE mirroring_state=4)

DECLARE @name varchar(255)
DECLARE @cmd varchar(1000)
OPEN i

FETCH NEXT FROM i INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
set @cmd = 'ALTER Database [' + @name + '] SET PARTNER FAILOVER;'
exec (@cmd)

DECLARE @message varchar(100)
SELECT @message = 'Failover for : ' + @name
PRINT @message
END
FETCH NEXT FROM i INTO @name
END

CLOSE i
DEALLOCATE i
GO

Задание: обновление псевдонимов соединений

После отработки отказа необходимо заменить имя основного сервера базы данных, связанное с псевдонимом соединения SQL Server, на имя зеркального сервера на всех компьютерах, на которых работает Office SharePoint Server 2007.

Примечание

Ссылки внутри веб-приложений не изменяются. Таким образом, после отработки отказа в Office SharePoint Server 2007 выполнение дополнительных действий не требуется.

Создайте задание SQL Server, запускаемое после отработки отказа. Внутри этого задания выполните команду, заменяющую параметр реестра на значение псевдонима зеркала:

\Registry\Machine\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo
<alias> = REG_SZ DBMSSOCN,DBMirror

Примечание

Учетная запись, используемая для запуска заданий и предупреждений SQL Server, должна иметь соответствующие разрешения на изменение значений реестра на компьютерах, на которых работает Office SharePoint Server 2007. Дополнительные сведения см. в статье Назначение разрешений разделу реестра (https://go.microsoft.com/fwlink/?linkid=116137&clcid=0x419).

Пример создания подобного задания см. в разделе Технический документ: анализ отказоустойчивого решения на основе SharePoint с использованием зеркального отображения баз данных.

Восстановление размещения

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

Заключение

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

Загрузка данной книги

Этот раздел включен в следующую загружаемую книгу для удобства чтения и печати: