Мультисерверної адміністрування, MS SQL Server, Бази даних, статті

За матеріалами статті Robert Marda
Multi-Server Administration

ЗМІСТ












1.Введення
2.Організація мультисерверного адміністрування
3.Управління мультисерверної адмініструванням
4.Target Server Status
5.Download Instructions
6.Додавання підлеглих серверів
7.Мультисерверний план обслуговування
8.Мультисерверний завдання
9.Безпека
10.Видалення мультисерверного адміністрування

Введення

Мультисерверної адміністрування дозволяє створювати завдання (jobs) та плани обслуговування (maintenance plans) в одному місці, на сервері, іменованому master. Всі завдання та плани обслуговування, створені на master-сервері, можуть бути виконані на будь-якому сервері, вказаному для нього як підлеглі сервера. Стан таких завдань також може бути перевірено на master-сервері. Використання мультисерверного адміністрування дозволяє централізувати адміністрування на одному SQL сервері.
Цінність мультисерверного адміністрування залежить значною мірою від того, скільки SQL серверів їм охоплюється і скільки завдань та / або планів обслуговування буде зосереджено на центральному сервері.
Ця стаття покликана висвітлити основні питання застосування мультисерверного адміністрування, щоб допомогти Вам використовувати ці можливості на своїх SQL серверах. Все описане в цій статті було перевірено для SQL Server 7.0 з SP3. Ймовірно, що більшість з того, що автор описує в цій статті, може бути застосовано і на SQL Server 2000.

[Зміст]

Організація мультисерверного адміністрування

Для організації мультисерверного адміністрування необхідно мати мінімум два SQL сервера. Один сервер буде обраний як master або MSX, а інші будемо позначати, як підлеглі сервера або TSX. Автору не відомо граничне кількість підлеглих серверів, які може обслуговувати один master – сервер. Однак існує обмеження, яке обумовлює, що підлеглий SQL Server може мати тільки один master – сервер.
Налаштувати мультисерверної адміністрування можна двічі клацнувши мишкою по папці Management, клацнути правою кнопкою по SQL Server Agent, вибирати Multi Server Administration та вибрати Make this a master. Активізується візард, який створить master – сервер і зареєструє підлеглі сервери, які Ви вкажете. Пройдіть всі кроки цього візарду і мультисерверної адміністрування буде налаштоване. Після цього Ви зможете додавати завдання та плани обслуговування. Перший екран візарду Make MSX Wizard запитує контактну інформацію для спеціального оператора з ім’ям MSXOperator. Це буде єдиний оператор, який зможе отримувати повідомлення від багатосерверних завдань. Також, якщо Ви плануєте отримувати повідомлення по електронній пошті, кожен підлеглий сервер, з якого Ви хочете посилати повідомлення електронної пошти, повинен мати поштовий профіль для SQL Server Agent. У темі кожного листа електронною пошти буде вказано, який з підлеглих серверів послав Вам повідомлення.
Автор не знає, чи можуть зібрані в кластер сервери включаться в мультисерверної адміністрування. Він спостерігав одне суттєва відмінність при спробі підключити сервер з кластеру. Список завдань, який виконує візард, включає фізичний рестарт SQL Server Agent, який не можливий в кластерному середовищі, тому сервери в кластері використовують віртуальний SQL Server Agent.

[Зміст]

Управління мультисерверної адмініструванням

Для управління мультисерверної адмініструванням можна слідувати тим же самим інструкцій по запуску візарду, які автор дав вище, і виконувати за допомогою візарду необхідну конфігурацію. Змінитися тільки те, що опція Make this a master буде недоступна. Двічі клацніть мишкою по папці Management, потім правою кнопкою клацніть по SQL Server Agent, виберете Multi Server Administration і потім Manage Target Servers. Ви побачите вікно зі списком всіх ваших підлеглих серверів. Для подальшої роботи будуть доступні дві вкладки: Target Server Status і Download Instructions.

[Зміст]

Target Server Status

На вкладці Target Server Status є три кнопки. Кнопка Force Poll використовується для примусового виконання обраними підлеглими серверами підготовлених для них команд. Натискання цієї кнопки також скидає лічильник часу між опитуваннями підлеглих серверів (автор більш детально розбирає це нижче).
Кнопка Force Defection використовується для видалення підлеглого сервера з мультисерверного адміністрування. Виконання такого видалення на master-сервері не видалить багато з завдань на підпорядкованому сервері. Ви можете видалити залишився на підпорядкованому сервері, клацнувши правою кнопкою миші по SQL Server Agent цього сервера, вибирав Multi Server Administration та потім Defect From MSX. Коли автор перевіряв дію цієї кнопки для підлеглого сервера, вся посилання на нього були вилучені у master-сервера. Краще не використовувати кнопку Force Defection, т.к. Ви можете створити спеціальну команду (defect instruction), яка автоматично очистить більшість пов’язаних з мультисерверної адмініструванням завдань і т.п. (Більш докладно про те, що не очищається при натисканні кнопки Force Defection, буде розказано в інших частинах цієї статті).
Кнопка Post Instructions дозволяє створювати інструкції для підлеглих серверів: defect (дефектовка), change the polling interval (Змінити інтервал опитування), synchronize clock (синхронізація часу з master-сервером) та інструкції для запуску завдань. Дефектовка призначена для очищення інформації про підпорядкованість сервера, наприклад, коли дійсно з цим сервером є нерозв’язні проблеми. Ця команда буде завантажена і виконана при наступному опитуванні, яке ініціює master-сервер. Після отримання команди на дефектовку, сервер видалить зі списку підлеглий сервер і очистить майже все пов’язане з ним з мультисерверного адміністрування. Цим автор має на увазі, що будуть вилучені всі завдання дефектуемого сервера. Однак, якщо завдання були створені в рамках плану обслуговування (maintenance plan), цей план не буде видалений. Заглянувши в цей план обслуговування, Ви виявите, що ні на одній з його вкладок нічого не позначено. Наступні два запити видалять залишився не віддаленим план обслуговування:


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 і 28 800 (8:00). Для того, щоб новий інтервал опитування набрав чинності негайно, Ви можете натискати кнопку Force Poll. При такому форсуванні опитування підлеглого сервера для виконання ним нових команд, відбувається скидання інтервалу опитування, і починається відлік з цього часу, коли Ви ініціювали опитування підлеглого сервера.
Автор статті спостерігав, що після дефектації підлеглого сервера і подальшого його ж включення до мультисерверної адміністрування на тому ж самому master-сервері, встановлений цим підлеглому серверу інтервал опитування зберігається з таким значенням, яке було до дефектовки. Це значення не буде скинуто до значення за замовчуванням в 60 секунд. Автором статті були здійснені виміри мережевого трафіку, який породжує мультисерверної адміністрування. Він використовував локальну мережу 100 MB Ethernet, що використовує комутатор для підключення всіх серверів. У мережі був один master-сервер і три підлеглих сервера. Опитування здійснювалося кожні 10 секунд. Під час опитування автор спостерігав величину мережевого трафіку. Утилізація мережі була настільки мала, що її можна вважати незначною. Автор вважає, трафік не повинен створювати проблеми в будь-якій мережі, і Ви завжди можете збільшити інтервал опитування, що б скоротити цей трафік. Наприклад, опитування щогодини або кожні 2:00 по лінії T1 не повинен створювати ніяких проблем, оскільки опитування триває тільки секунду і навіть менше.
Остання команда, яку Ви можете використовувати, відноситься до мультисерверної завданням (multi server job). Мультисерверний завдання будуть обговорені нижче в цій статті.
Всі ці команди можуть бути призначені одному і більше серверу або всім підлеглим серверам.

[Зміст]

Download Instructions

Вкладка 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.
Автор зауважив, що якщо змінювати тільки параметр на вкладці оптимізації “free space percentage”, це зміна не буде надіслано на підлеглий сервер. Однак, якщо крім того змінити опцію Shrink database, то обидва зміни будуть відправлені на підлеглий сервер. Кращий спосіб переконатися в тому, що зміна дійсно буде відправлено, це повторне відкриття maintenance plan і перевірка наявності в ньому виконаних Вами змін. Якщо зміни там відображені, Ви можете перевірити відправлені команди для підлеглих серверів.

[Зміст]

Мультисерверний завдання

Після успішного створення master-сервера, Ви помітите знак + (плюс) поряд із позначкою папки завдань в лівому вікні Enterprise Manager. Коли клацніть мишкою по цьому значку, Ви побачите дві папки: Local Server Jobs і Multi Server Jobs. Завдання, які Ви хочете виконувати на master-сервері, повинні бути створені в папці Local Server Jobs.
Мультисерверний завдання, створені на master-сервері не можуть виконуватися на локальному сервері. Якщо Ви створювали Мультисерверний maintenance plan, який виконується на підлеглих серверах і на локальному сервері, в папці Local Server Jobs перебуватиме завдання для maintenance plan, який виконується на master-сервері. У папці Multi Server Jobs будуть такі ж завдання для того ж самого maintenance plan, тільки вони будуть виконуватися на підлеглих серверах. Створення нових завдань здійснюється звичайним способом, відмінність лише в тому, що для завдань в папці Multi Server Jobs потрібно вказати один або більше підлеглих серверів. У властивості завдання, в нижньому, правому кутку розташовується кнопка Change (Звичайно не активна для локальних завдань), яка дозволяє вибрати підлеглі сервери для мультисерверного завдання (Один, декілька або всі).
Ви можете натиснути правою кнопкою миші по будь-якому мультисерверної завданням (на master-сервері) і вибрати job status, щоб побачити поточний стан виконання завдань на кожному підпорядкованому сервері. Що б побачити хронологію виконання завдання обраного підлеглого сервера, просто клацніть правою кнопкою по цьому серверу і виберете пункт історії виконання завдання. Це дуже зручно, тому що Ви зможете переглядати хронологію завдань для всіх підлеглих серверів, замість того, щоб відкривати кожен сервер.
Кнопка Target Server Status відкриває те ж саме вікно, яке описано в попередньому абзаці.
Кнопка Synchronize Jobs необхідна тільки при відновленні бази msdb на master-сервері і вона відновлює ті зміни в мультисерверної завданнях, які відбулися після останнього резервного копіювання.

[Зміст]

Безпека

Мультисерверний завдання і 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-сервері, поки Ви не зміните категорію на локальну. Так що, якщо Ви плануєте продовжувати їх використання, Ви повинні або виконати зазначені вище рекомендації з видалення або змінити їх категорію.

[Зміст]

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*