История заданий на неосновном сервере


istorija-zadanij-na-neosnovnom-servere_1.jpg

Чтобы вставить процедуру проверки перед этим шагом задания, откройте окно SQL Server Agent Job и перейдите на узел Steps. Проследите за тем, чтобы данный шаг задания выполнялся в основной базе данных, и далее реализуйте в нем логику, подобную той, что представлена на экране 4. Ваша логика должна обеспечивать генерацию сообщения об ошибке, если мы находимся не на сервере, где размещается основная реплика.

Теперь вам придется в окне соответствующего шага задания перейти на вкладку Advanced и указать, что данный шаг задания в случае успешного его завершения должен продолжаться до начала следующего шага, а в случае завершения ошибкой выполнение задания должно быть прекращено (с выдачей сообщения о его успешном завершении), см. экран 5. Здесь мы имеем дело с настоящим трюком.

Это определение совершенно справедливо, ведь вам придется особо проследить за тем, чтобы выполнение задания фактически начиналось с шага № 1 (хотя вы нажимали кнопку Insert для включения этого шага в общую цепочку; см. экран 6). Теперь ваши шаги задания должны выглядеть примерно так, как на экране 7.

Внеся указанные изменения, вы можете перейти к настоящему шагу задания (то есть к шагу, существовавшему изначально) и настроить его таким образом, чтобы проверки IF/ELSE, без которых нельзя было бы обойтись, если бы вы руководствовались изложенными выше положениями, в данном случае были бы не нужны.

Иными словами, поскольку шаг № 1 в данном задании в ходе проверки определяет, нужно ли продолжать работу, следовательно, раз уж мы добрались до шага № 2, необходимость в дальнейших проверках отпадает, и мы можем обращаться к базе MyAGDatabase и выполнять наш код или логику, как и предполагалось, не прибегая к каким-либо проверкам, то есть действовать так, как показано на экране 8. Наконец, вам нужно будет передать это обновленное задание на оба сервера (основной и вспомогательный серверы в вашей группе доступности).

Комментарии