Отработка отказа и восстановление зеркальных баз данных в отдельной ферме
В данной статье описывается процедура отработки отказа и восстановления для фермы Microsoft Office SharePoint Server 2007, настроенной для использования зеркального отображения базы данных высокой доступности, после выполнения действий, которые описаны в разделе Настройка доступности в ферме с помощью зеркального отображения баз данных SQL Server.
Эта статья содержит следующие разделы:
Автоматический процесс отработки отказа для зеркальной базы данных
Ручной процесс отработки отказа для зеркальной базы данных
Мониторинг и предупреждения при зеркальной отработке отказа
Задание: отработка отказа для всех остальных баз данных
Задание: обновление псевдонимов соединений
Отработка отказа
Резюме
При отработке отказа в среде Office SharePoint Server 2007, в которой работают зеркальные базы данных, должны выполняться следующие действия:
Одна или несколько баз данных на основном сервере автоматически или вручную перемещаются на зеркальный сервер.
Все другие базы данных основного сервера выполняют принудительную отработку отказа.
Рекомендуется использовать предупреждения и задания Microsoft SQL Server 2005 для мониторинга зеркального отображения и принудительной отработки отказа всех баз данных.
Ссылающиеся на базы данных псевдонимы соединений на всех интерфейсных веб-серверах и компьютерах перенаправляются на зеркальный сервер.
Автоматический процесс отработки отказа для зеркальной базы данных
Автоматическая отработка отказа выполняется в том случае, когда основной сервер теряет соединение с другими элементами структуры зеркального отображения баз данных, а соединение между зеркальным и следящим сервером сохраняется.
Примечание
Если все экземпляры сервера теряют соединение, то автоматическая отработка отказа не выполняется даже в случае последующего восстановления соединения между следящим сервером и зеркальным сервером.
При запуске автоматической отработки отказа выполняются следующие действия:
Если основной сервер еще работает, он изменяет состояние основной базы данных на состояние DISCONNECTED и отключает от нее все клиенты.
Следящий сервер и зеркальный сервер обнаруживают отсутствие доступа к основному серверу.
При наличии ожидающих журналов в очереди повторения зеркальный сервер завершает накат зеркальной базы данных. Время, необходимое для применения журнала, зависит от скорости системы, текущей загрузки и размера журналов в очереди повторения.
После того как бывший основной сервер вновь присоединяется к сеансу, он обнаруживает, что основная роль теперь перешла к его партнеру по отработке отказа. Бывший основной сервер получает роль зеркального сервера, а бывшая основная база данных становится зеркальной. Новый зеркальный сервер немедленно синхронизирует новую зеркальную базу с основной базой. После завершения синхронизации баз данных процесс отработки отказа может быть выполнен снова, но в обратном направлении.
Более подробное описание автоматической отработки отказа см. в статье Автоматическая отработка отказа (https://go.microsoft.com/fwlink/?linkid=83690&clcid=0x419).
Ручной процесс отработки отказа для зеркальной базы данных
Ручная отработка отказа обычно выполняется в том случае, когда запущены основной и зеркальный серверы. Администратор принимает осознанное решение переключить активную базу данных с основного сервера на зеркальный.
В ходе ручной отработки отказа выполняются следующие действия:
Администратор подключается к основному серверу и запускает для каждой базы данных следующие команды Transact-SQL:
USE master; ALTER DATABASE <database_name> SET PARTNER FAILOVER; -- where database_name is the mirrored database.
Этот оператор немедленно запускает переход зеркального сервера на основную роль.
Бывший основной сервер отключает все клиенты от базы данных и выполняет откат всех невыполненных транзакций.
При запуске ручной отработки отказа с настройками автоматической отработки (т.е. со следящим сервером) основной и зеркальный серверы автоматически меняются ролями.
Мониторинг и предупреждения при зеркальной отработке отказа
Используйте предупреждения 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. Перед запуском заданий следует изменить их значения.
Заключение
После настройки зеркального отображения в среде с одной фермой рекомендуется проверить процессы, предупреждения, задания и скрипты отработки отказов и восстановления размещения. При отработке отказа для одной базы данных можно создать скрипты, вначале пытающиеся восстановить размещение на основном сервере, а затем выполняющие отработку отказа для баз данных и их переключение на зеркальный сервер.
Загрузка данной книги
Этот раздел включен в следующую загружаемую книгу для удобства чтения и печати:
Планирование и настройка доступности в ферме Office SharePoint Server 2007(на английском языке)
См. полный список доступных книг на веб-сайте Загружаемые книги для Office SharePoint Server 2007.