Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server для профессионалов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

Лабораторная работа 3.5

Объекты SQLDMO.JobServer и SQLDMO.Operator, программное создание операторов SQL Server Agent в скрипте VBScript

Подготовка:

выполните скрипт jobs_creating.sql в каталоге Labs на компакт-диске для создания трех заданий (Job1, Job2 и Job3) на вашем SQL Server.

Ситуация:

В вашей организации установлено большое количество серверов SQL Server, на каждом из которых создана сложная система заданий (несколько десятков на каждом сервере). Каждый день назначается дежурный администратор, который должен немедленно уведомляться по NET SEND в случае возникновения ошибок при выполнении задания. Дежурные администраторы работают на разных компьютерах и под разными учетными записями.

Задание:

1) напишите скрипт SQL-DMO, который бы проверял наличие оператора с именем и адресом NET SEND, совпадающими с именем локального компьютера и в случае его отсутствия создавал бы такого оператора;

2) измените этот скрипт таким образом, чтобы он вносил изменения во все задания на вашем локальном сервере, назначая им созданного вами оператора NET SEND. Этот оператор должен уведомляться при любом завершении работы задания.

Решение:

Итоговый код скрипта VBScript может быть таким:

Dim sCompName, oNetwork, oServer, oOp, nErr, nCount, oJob

Set oNetwork = CreateObject("Wscript.Network")
sCompName = oNetwork.ComputerName

Set oServer = CreateObject("SQLDmo.SqlServer")
oServer.Name = sCompName
oServer.LoginSecure = true
oServer.Connect

On Error Resume Next
'Проверяем, есть ли такой оператор
Set oOp = oServer.JobServer.Operators(sCompName)
nErr = Err.Number
On Error GoTo 0
Select Case nErr
'Ошибка 21776 возникает, если оператора нет
Case 21776
Set oOp = CreateObject("SQLDMO.Operator")
oOp.Name = sCompName
oOp.NetSendAddress = sCompName
oServer.JobServer.Operators.Add(oOp)
'Ошибка 0 - такой оператор есть (то есть ошибки не возникло)
Case 0
WScript.Echo oOp.Name
WScript.Echo oOp.NetSendAddress
Case Else
WScript.Echo "Непонятная ошибка номер " & nErr & " при попытке найти оператора"
WScript.Quit
End Select

nCount = oServer.JobServer.Jobs.Count

For i = 1 To nCount
Set oJob = oServer.JobServer.Jobs(i)
'Внимание! Если до этого эти свойства были отключены, может возникнуть ошибка 42000
oJob.OperatorToNetSend = sCompName
oJob.NetSendLevel = 3
Next

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru