Published on

January 30, 2021

Автоматизация включения/отключения заданий SQL Server Agent с помощью PowerShell

Управление заданиями SQL Server Agent в среде высокой доступности / восстановления после сбоя может быть сложной задачей. Вручную включать и отключать задания на разных серверах или писать код для проверки текущего экземпляра может быть трудоемким и подверженным ошибкам. В этой статье мы рассмотрим решение с использованием PowerShell для автоматизации процесса включения/отключения заданий SQL Server Agent.

Начальные соображения

Прежде чем мы приступим к решению, есть несколько вещей, которые следует учесть:

  • Убедитесь в наличии связи между сервером, на котором будет выполняться сценарий PowerShell, и целевым экземпляром SQL Server.
  • Убедитесь, что учетная запись, используемая для подключения к экземпляру SQL Server, имеет достаточные привилегии для доступа к системной базе данных msdb и выполнения sp_update_job.

Параметры сценария PowerShell

Для выполнения сценария PowerShell требуются три обязательных параметра:

  • $instance: имя целевого экземпляра SQL Server, к которому нужно подключиться
  • $job: имя задания SQL Agent, которое нужно включить или отключить
  • $action: 0 для отключения задания или 1 для включения задания

Выполнение сценария

Чтобы выполнить сценарий, выполните следующие действия:

  1. Откройте окно PowerShell.
  2. Перейдите в каталог, где находится сценарий.
  3. Выполните сценарий с помощью следующей команды:
PS C:\temp> .\Get-MSSQL-Instance-Jobs-Flip.ps1 localhost test 0

Сценарий запросит у вас учетные данные для подключения к указанному экземпляру SQL Server. Вы можете выбрать один из следующих вариантов:

  • Доверенный: Сценарий будет использовать те же учетные данные пользователя, используемые для выполнения сценария PowerShell.
  • Вход в систему Windows: Укажите учетную запись Windows для аутентификации.
  • Вход в систему SQL: Укажите учетную запись SQL для аутентификации.

Если сценарий столкнется с проблемами при подключении к экземпляру SQL Server, он уведомит вас.

Обработка нескольких заданий одновременно

Если вам нужно включить или отключить несколько заданий в экземпляре SQL Server, вы можете создать файл, который вызывает сценарий PowerShell для каждого задания. Каждая строка в файле должна указывать имя задания и предполагаемый статус (0 для отключения, 1 для включения).

Например, если у вас есть три задания с именами test, test2 и test3, и вы хотите отключить их все, создайте файл со следующим содержимым:

powershell C:\temp\Get-MSSQL-Instance-Jobs-Flip.ps1 localhost test 0
powershell C:\temp\Get-MSSQL-Instance-Jobs-Flip.ps1 localhost test2 0
powershell C:\temp\Get-MSSQL-Instance-Jobs-Flip.ps1 localhost test3 0

Обратите внимание, что вам может потребоваться изменить сценарий, чтобы передать учетные данные для входа или уже включить их, чтобы избежать запроса ввода каждый раз при запуске сценария.

Автоматизируя процесс включения/отключения заданий SQL Server Agent с помощью PowerShell, вы можете сэкономить время и обеспечить правильное выполнение критических заданий в вашей среде высокой доступности / восстановления после сбоя.

Скачать сценарий PowerShell можно по этой ссылке.

Статья последний раз обновлена: 2021-08-17

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.