| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Мультисерверное администрирование
Мультисерверное администрирование позволяет создавать задания (jobs) и планы обслуживания (maintenance plans) в одном
месте, на сервере, именуемом master. Все задания и планы обслуживания, созданные на master-сервере, могут быть выполнены
на любом сервере, указанном для него как подчинённые сервера. Состояние таких заданий также может быть проверено на
master-сервере. Использование мультисерверного администрирования позволяет централизовать администрирование на одном
SQL сервере.
Организация мультисерверного администрирования
Для организации мультисерверного администрирования необходимо иметь минимум два SQL сервера. Один сервер будет
выбран как master или MSX, а другие будем обозначать, как подчинённые сервера или TSX. Автору не известно предельное
количество подчинённых серверов, которые может обслуживать один master - сервер. Однако существует ограничение, которое
оговаривает, что подчинённый SQL Server может иметь только один master - сервер.
Управление мультисерверным администрированием Для управления мультисерверным администрированием можно следовать тем же самым инструкциям по запуску визарда, которые автор дал выше, и выполнять с помощью визарда необходимую конфигурацию. Измениться только то, что опция Make this a master будет недоступна. Дважды щёлкните мышкой по папке Management, потом правой кнопкой щёлкните по SQL Server Agent, выберете Multi Server Administration и потом Manage Target Servers. Вы увидите окно со списком всех ваших подчинённых серверов. Для дальнейшей работы будут доступны две вкладки: Target Server Status и Download Instructions.
На вкладке Target Server Status есть три кнопки. Кнопка Force Poll используется для принудительного исполнения выбранными
подчинёнными серверами подготовленных для них команд. Нажатие этой кнопки также сбрасывает счётчик времени между
опросами подчинённых серверов (автор более детально разбирает это ниже). USE msdb DELETE mpd FROM sysdbmaintplan_databases mpd WHERE mpd.plan_id IN ( SELECT mp.plan_id FROM sysdbmaintplans mp LEFT JOIN sysdbMaintplan_jobs mpj ON mpj.plan_id = mp.plan_id LEFT JOIN sysjobs j ON SUBSTRING(name,CHARINDEX('''',name,1) + 1, LEN(name) - 1 - CHARINDEX('''',name,1)) = mp.plan_name WHERE mpj.plan_id IS NULL AND mp.plan_name <> 'All ad-hoc plans' AND j.job_id IS NULL ) DELETE mp FROM sysdbmaintplans mp LEFT JOIN sysdbMaintplan_jobs mpj ON mpj.plan_id = mp.plan_id LEFT JOIN sysjobs j ON SUBSTRING(name,CHARINDEX('''',name,1) + 1, LEN(name) - 1 - CHARINDEX('''',name,1)) = mp.plan_name WHERE mpj.plan_id IS NULL AND mp.plan_name <> 'All ad-hoc plans' AND j.job_id IS NULL
Команда Set Polling Interval позволяет изменять интервал опроса, который, по умолчанию, равен 60 секундам. Интервал опроса
может быть различным для каждого подчинённого сервера. Интервал устанавливается в секундах и может быть в интервале
между 10 и 28800 (8 часов). Для того, что бы новый интервал опроса вступил в силу немедленно, Вы можете нажимать кнопку
Force Poll. При таком форсировании опроса подчинённого сервера для исполнения им новых команд, происходит сброс интервала
опроса, и начинается отсчёт с этого времени, когда Вы инициировали опрос подчинённого сервера.
Вкладка Download Instructions позволяет увидеть список команд, которые предназначены для каждого подчинённого сервера.
Перемещаясь вниз по списку, Вы может выбирать конкретный подчинённый сервер или сразу все сервера. Вы может пометить
всё задания или выбрать одно из них. После отбора заданий, Вам будут показаны только те команды, которые относятся к
выбранным подчинённым серверам и выбранным заданиям.
Добавление подчинённых серверов Для этого просто щёлкните правой кнопкой по SQL Server Agent master-сервера, к которому Вы планируете добавить подчинённый сервер, выберите Multi Server Administration и потом Add Target Server. В списке, который Вы увидите, будут SQL серверы, которые уже зарегистрированы в Enterprise Manager того компьютера, на котором Enterprise Manager в этот момент запущен. Список будет включать серверы, которые являются подчинёнными серверами и возможно другие master-серверы. Однако, Вы не можете сделать подчинённым сервером тот сервер, который уже исполняет роль master-сервера или те сервера, которые уже являются подчинёнными другому master-серверу. Для того, что бы подчинить такой сервер, сначала Вы должны дефектовать подчинённый сервер на другом master-сервере. Каждый подчинённый сервер может иметь только один master - сервер. Также Вы можете сделать подчинённым сервер непосредственно подключившись к этому серверу, щёлкнуть правой кнопкой мыши по его SQL Server Agent, выбирать Multi Server Administration и потом Make this a Target. Запуститься визард Make TSX Wizard, в котором Вам нужно будет указать имя соответствующего master-сервера.
Мультисерверный план обслуживания
После того, как Вы настроили мультисерверное администрирование, можно создавать мультисерверные планы обслуживания.
Такие планы должны сдаваться на master-сервере. Процесс их создания идентичен тому, как это делается на обычном сервере за
исключением того, что на первом экране визарда нужно определить, на каких серверах этот план должен исполнятся. Вы можете
выбирать один, несколько или все подчинённые сервера, а также локальный сервер. После создания плана, чтобы получить
maintenance plan, Вы можете подождать до следующего сеанса опроса master-сервера или можно инициировать опрос
принудительно. Всякий раз, когда Вы будете вносить изменения в maintenance plan, будет инициирован опрос, и соответствующие
команды будут отправлены на подчинённый сервер. Все изменения, сделанные в плане, также будут отражены в заданиях на
локальном сервере, если Вы включили его (master-сервер) в мультисерверный maintenance plan.
После успешного создания master-сервера, Вы заметите знак + (плюс) рядом со значком папки заданий в левом окне Enterprise
Manager. Когда щёлкните мышкой по этому значку, Вы увидите две папки: Local Server Jobs и Multi Server Jobs. Задания, которые
Вы хотите выполнять на master-сервере, должны быть созданы в папке Local Server Jobs.
Мультисерверные задания и MSXOperator на каждом подчинённом сервере не могут быть изменены локально. Все изменения должны производиться на master-сервере. Это гарантирует, что Вы или другой администратор случайно (или преднамеренно) не изменят или удалят такие задания. Кроме того, Вы можете быть уверены, что все мультисерверные задания будут идентичны.
Удаление мультисерверного администрирования Для полного удаления мультисерверного администрирования, Вы должны дефектовать все подчинённые серверы. Когда последний подчинённый сервер будет успешно дефектован, master-сервер деинсталлируется. К сожалению, многие задания и MSXOperator не полностью удалятся с бывшего master-сервера, а также не вся информация о мультисерверных планах обслуживания удалиться с бывших подчинённых серверов. Выше уже представлялся скрипт, который удаляем остатки плана обслуживания на бывшем подчинённом сервере. Ниже представлен скрипт, который удалит с бывшего master-сервера оператора MSXOperator: USE msdb DELETE j FROM sysjobs j WHERE j.category_id = 2 --This is the ID for multi server jobs IF (EXISTS (SELECT name FROM msdb.dbo.sysoperators WHERE name = N'MSXOperator')) ---- Delete operator with the same name. EXECUTE msdb.dbo.sp_delete_operator @name = N'MSXOperator' С другой стороны, если Вы не удалите мультисерверные задания и потом повторно установите master-сервер, тогда старые задания автоматически появятся в папке заданий этого сервера. Вам останется только указать для них подчинённые сервера, и они будут готовы к использованию. Задания с категорией Uncategorized (multi-server) не могут быть выполнены на бывшем master-сервере, пока Вы не измените категорию на локальную. Так что, если Вы планируете продолжать их использование, Вы должны или выполнить указанные выше рекомендации по удалению или изменить их категорию. |
|
| ||||||||||||||||
|