Донецкий техникум промышленной автоматики

Агент SQL Server - SQL Server

  1. Переваги агента SQL Server Benefits of SQL Server Agent
  2. Компоненти агента SQL Server SQL Server Agent Components
  3. завдання Jobs
  4. розклади Schedules
  5. видно вузли Alerts
  6. Оператори Operators
  7. Безпека при адмініструванні агента SQL Server Security for SQL Server Agent Administration
  8. ролі Roles
  9. підсистеми Subsystems
  10. Облікові записи-посередники Proxies
  11. Див. Також: See Also

ОБЛАСТЬ ЗАСТОСУВАННЯ: ОБЛАСТЬ ЗАСТОСУВАННЯ:   SQL Server   База даних SQL Azure (тільки керований екземпляр)   Сховище даних SQL Azure   Parallel Data Warehouse APPLIES TO:   SQL Server   Azure SQL Database (Managed Instance only)   Azure SQL Data Warehouse   Parallel Data Warehouse   SQL Server SQL Server - це служба Microsoft Windows, яка виконує заплановані адміністративні завдання, які називаються завданнями в SQL Server 2017 SQL Server 2017 SQL Server База даних SQL Azure (тільки керований екземпляр) Сховище даних SQL Azure Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database (Managed Instance only) Azure SQL Data Warehouse Parallel Data Warehouse

SQL Server SQL Server - це служба Microsoft Windows, яка виконує заплановані адміністративні завдання, які називаються завданнями в SQL Server 2017 SQL Server 2017. Agent is a Microsoft Windows service that executes scheduled administrative tasks , which are called jobs in SQL Server 2017 SQL Server 2017.

В цьому розділі In This Topic

Переваги агента SQL Server Benefits of SQL Server Agent

SQL Server SQL Server використовує SQL Server SQL Server для зберігання відомостей про завдання. Agent uses SQL Server SQL Server to store job information. Завдання складається з одного або декількох кроків. Jobs contain one or more job steps. Кожен крок містить власне завдання, наприклад створення резервної копії бази даних. Each step contains its own task, for example, backing up a database.

SQL Server SQL Server може виконувати завдання за розкладом у відповідь на певну подію чи на вимогу. Agent can run a job on a schedule, in response to a specific event, or on demand. Наприклад, можна автоматизувати завдання створення резервної копії всіх серверів компанії, щоб вона виконувалася щодня по закінченні робочого дня. For example, if you want to back up all the company servers every weekday after hours, you can automate this task. Заплануйте запуск резервного копіювання після 22:00 з понеділка по п'ятницю; якщо під час створення резервної копії виникає проблема, агент SQL Server реєструє відповідна подія і відображається відповідне сповіщення. Schedule the backup to run after 22:00 Monday through Friday; if the backup encounters a problem, SQL Server Agent can record the event and notify you.

Примітка

Служба агента SQL Server SQL Server за замовчуванням відключена, якщо під час установки SQL Server 2017 SQL Server 2017 явно не обраний автоматичний запуск служби. By default, the SQL Server SQL Server Agent service is disabled when SQL Server 2017 SQL Server 2017 is installed unless the user explicitly chooses to autostart the service.

Компоненти агента SQL Server SQL Server Agent Components

SQL Server SQL Server використовує такі компоненти, щоб визначити завдання для виконання, час для виконання завдань і порядок повідомлення про успішне або невдале завершення завдань. Agent uses the following components to define the tasks to be performed, when to perform the tasks, and how to report the success or failure of the tasks.

завдання Jobs

Завдання - це зазначена послідовність дій, виконуваних агентом SQL Server SQL Server. A job is a specified series of actions that SQL Server SQL Server Agent performs . Використовуйте завдання, щоб визначити завдання управління, яку можна виконати один раз або неодноразово і контролювати на предмет успішного або невдалого виконання. Use jobs to define an administrative task that can be run one or more times and monitored for success or failure. Завдання може виконуватися на одному локальному сервері або на декількох віддалених серверах. A job can run on one local server or on multiple remote servers.

Важливо!

SQL Server SQL Server, які виконувалися під час відпрацювання відмови на екземплярі відмов кластеру SQL Server SQL Server, які не відновлюються після відпрацювання відмови і перемикання на інший вузол відмов кластеру. Agent jobs that are running at the time of a failover event on a SQL Server SQL Server failover cluster instance do not resume after failover to another failover cluster node. SQL Server SQL Server Завдання агента, які виконувалися під час призупинення роботи вузла Hyper-V, що не поновлюються, якщо припинення викликає відпрацювання відмови з переходом на інший вузол. Agent jobs that are running at the time a Hyper-V node is paused do not resume if the pause causes a failover to another node. Завдання, виконання яких було розпочато, але не завершилося в зв'язку з подією відпрацювання відмови, реєструються в журналі як розпочаті, але додаткових записів журналу про завершення або збої немає. Jobs that begin but fail to complete because of a failover event are logged as started, but do not show additional log entries for completion or failure. SQL Server SQL Server виглядають як незавершені. Agent jobs in these scenarios appear to have never ended.

Виконувати завдання можна декількома способами: You can run jobs in several ways:

  • по одному або декільком розкладів; According to one or more schedules.

  • у відповідь на одне або кілька попереджень; In response to one or more alerts.

  • За допомогою виконання процедури sp_start_job. By executing the sp_start_job stored procedure.

Кожна дія в завданні є кроком завдання. Each action in a job is a job step . Наприклад крок завдання може складатися з виконання інструкції Transact-SQL Transact-SQL, виконання пакету служб Служби SSIS SSIS або видачі команди сервера служб Analysis Services. For example, a job step might consist of running a Transact-SQL Transact-SQL statement, executing an Служби SSIS SSIS package, or issuing a command to an Analysis Services server. Кроками завдання управляють як частиною завдання. Job steps are managed as part of a job.

Кожен крок завдання виконується в зазначеному контексті безпеки. Each job step runs in a specific security context. Для кроків завдань, що використовують Transact-SQL Transact-SQL, застосовуйте інструкцію EXECUTE AS, щоб вказати контекст безпеки для кроку завдання. For job steps that use Transact-SQL Transact-SQL, use the EXECUTE AS statement to set the security context for the job step. Для інших типів кроків завдань використовуйте обліковий запис-посередник, щоб вказати контекст безпеки для кроку завдання. For other types of job steps, use a proxy account to set the security context for the job step.

розклади Schedules

Розклад визначає час виконання завдання. A schedule specifies when a job runs. Відразу кілька завдань можуть виконуватися по одному і тому ж розкладом, а кілька розкладів можуть застосовуватися до одного і того ж завдання. More than one job can run on the same schedule, and more than one schedule can apply to the same job. Розклад може визначити наступні умови для часу виконання завдання: A schedule can define the following conditions for the time when a job runs:

  • При кожному запуску агента SQL Server SQL Server. Whenever SQL Server SQL Server Agent starts.

  • кожен раз, коли використання ЦП комп'ютера буде досягати рівня, який визначений як рівень простою; Whenever CPU utilization of the computer is at a level you have defined as idle.

  • одного разу, в зазначені дату і час; One time, at a specific date and time.

  • Згідно повторюється розкладом. On a recurring schedule.

Додаткові відомості див. У розділі Створення і приєднання розкладів до завдань . For more information, see Create and Attach Schedules to Jobs .

видно вузли Alerts

Попередження - це автоматичний відповідь на наступ вказаної події. An alert is an automatic response to a specific event . Наприклад, подія може бути завданням, яке починає виконуватися, або системним ресурсом, які досягли зазначеного порогового значення. For example, an event can be a job that starts or system resources that reach a specific threshold. Користувач визначає умови, при яких видається попередження. You define the conditions under which an alert occurs.

Попередження може бути реакцією на одне з наступних умов: An alert can respond to one of the following conditions:

  • SQL Server SQL Server події events

  • SQL Server SQL Server умови продуктивності; performance conditions

  • події інструментарію управління Microsoft Windows (WMI) на комп'ютері, де працює агент SQL Server; Microsoft Windows Management Instrumentation (WMI) events on the computer where SQL Server Agent is running

Попередження може виконувати наступні дії: An alert can perform the following actions:

  • Повідомити один або кілька операторів Notify one or more operators

  • Здійснити запуск завдання Run a job

Додаткові відомості див. У статті попередження . For more information, see Alerts .

Оператори Operators

Оператор визначає контактні відомості про особу, відповідальну за обслуговування одного або кількох примірників SQL Server SQL Server. An operator defines contact information for an individual responsible for the maintenance of one or more instances of SQL Server SQL Server . У деяких організаціях обов'язки оператора покладаються на одну особу. In some enterprises, operator responsibilities are assigned to one individual. В організаціях, що використовують кілька серверів, обов'язки оператора можуть бути розділені між декількома особами. In enterprises with multiple servers, many individuals can share operator responsibilities. Оператор не володіє даними безпеки і не визначає суб'єкта безпеки. An operator does not contain security information, and does not define a security principal.

SQL Server SQL Server може повідомляти операторів про попередження одним або декількома способами з нижченаведених: can notify operators of alerts through one or more of the following:

  • електронна пошта; E-mail

  • пейджер (через електронну пошту); Pager (through e-mail)

  • команда net send. net send

Примітка

Щоб уможливити відправлення повідомлень за допомогою net send, служба Windows Messenger повинна бути запущена на комп'ютері, де працює агент SQL Server SQL Server. To send notifications by using net send, the Windows Messenger service must be started on the computer where SQL Server SQL Server Agent resides .

Важливо!

Режими відправки повідомлень за допомогою пейджера і команди net send будуть видалені з агента SQL Server SQL Server в наступній версії SQL Server SQL Server. The Pager and net send options will be removed from SQL Server SQL Server Agent in a future version of SQL Server SQL Server . Намагайтеся не використовувати ці функції в нових розробках і передбачте відповідні зміни в додатках, які використовують їх в даний час. Avoid using these features in new development work, and plan to modify applications that currently use these features.

Для відправки операторам повідомлень по електронній пошті або на пейджер необхідно налаштувати агент SQL Server SQL Server для використання компонента Database Mail. To send notifications to operators by using e-mail or pagers, you must configure SQL Server SQL Server Agent to use Database Mail. Додаткові відомості див. У розділі Database Mail . For more information, see Database Mail .

Можна визначити оператора як псевдонім для групи осіб. You can define an operator as the alias for a group of individuals. Таким способом всі члени цього псевдоніма будуть повідомлені одночасно. In this way, all members of that alias are notified at the same time. Додаткові відомості див. У статті Оператори . For more information, see Operators .

Безпека при адмініструванні агента SQL Server Security for SQL Server Agent Administration

SQL Server SQL Server використовує визначені ролі бази даних SQLAgentUserRole, SQLAgentReaderRole і SQLAgentOperatorRole в базі даних msdb для управління доступом до агента SQL Server SQL Server для користувачів, що не входять в зумовлену роль сервера sysadmin. Agent uses the SQLAgentUserRole, SQLAgentReaderRole, and SQLAgentOperatorRole fixed database roles in the msdb database to control access to SQL Server SQL Server Agent for users who are not members of the sysadmin fixed server role . Крім цих зумовлених ролей бази даних, підсистеми та облікові записи-посередники дозволяють адміністраторам бази даних гарантувати, що кожен крок завдання виконується з мінімальними дозволами, необхідними для виконання завдання. In addition to these fixed database roles, subsystems and proxies help database administrators ensure that each job step runs with the minimum permissions required to perform its task.

ролі Roles

Доступ до агента мають члени визначених ролей бази даних SQLAgentUserRole, SQLAgentReaderRole і SQLAgentOperatorRole в базі даних msdb, а також члени зумовленої ролі сервера sysadmin SQL Server SQL Server. Members of the SQLAgentUserRole, SQLAgentReaderRole, and SQLAgentOperatorRole fixed database roles in msdb, and members of the sysadmin fixed server role have access to SQL Server SQL Server Agent . Користувач, що не належить ні до однієї з цих ролей, не може використовувати агент SQL Server SQL Server. A user that does not belong to any of these roles can not use SQL Server SQL Server Agent. Додаткові відомості про ролях, використовуваних агентом SQL Server SQL Server, див. В розділі Забезпечення безпеки агента SQL Server . For more information on the roles used by SQL Server SQL Server Agent, see Implement SQL Server Agent Security .

підсистеми Subsystems

Підсистема - це зумовлений об'єкт, який містить функції, доступні кроку завдання. A subsystem is a predefined object that represents functionality that is available to a job step. Кожна обліковий запис-посередник має доступ до однієї або декількох підсистем. Each proxy has access to one or more subsystems. Підсистеми забезпечують безпеку, оскільки розмежовують доступ облікових записів-посередників до функцій. Subsystems provide security because they delimit access to the functionality that is available to a proxy. Кожен крок завдання виконується в контексті облікового запису-посередника, за винятком етапів завдання Transact-SQL Transact-SQL. Each job step runs in the context of a proxy, except for Transact-SQL Transact-SQL job steps. На етапах завдання Transact-SQL Transact-SQL застосовуйте команду EXECUTE AS, щоб задати контекст безпеки для власника завдання. Transact-SQL Transact-SQL job steps use the EXECUTE AS command to set the security context to the owner of the Job.

SQL Server SQL Server визначає підсистеми, перераховані в наступній таблиці: defines the subsystems listed in the following table:

Ім'я підсистеми Subsystem name Опис Description Скрипт Microsoft ActiveX Microsoft ActiveX Script Виконайте крок завдання зі скриптом ActiveX. Run an ActiveX scripting job step.
Попередження Підсистема сценаріїв ActiveX буде видалена з агента SQL Server SQL Server в наступній версії Microsoft Microsoft SQL Server SQL Server. Warning The ActiveX Scripting subsystem will be removed from SQL Server SQL Server Agent in a future version of Microsoft Microsoft SQL Server SQL Server . Уникайте використання цього компонента в нових розробках і заплануйте зміна існуючих додатків, в яких він застосовується. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Операційна система (CmdExec) Operating System (CmdExec) Запустіть виконувану програму. Run an executable program. PowerShell PowerShell Виконайте крок завдання зі скриптом PowerShell. Run a PowerShell scripting job step. Розповсюджувач реплікації Replication Distributor Виконайте крок завдання, на якому активується агент розповсюджувача реплікації. Run a job step that activates the replication Distribution Agent. Реплікація злиттям Replication Merge Виконайте крок завдання, на якому активується агент реплікації злиттям. Run a job step that activates the replication Merge Agent. Агент читання черзі реплікації Replication Queue Reader Виконайте крок завдання, на якому активується агент читання черзі реплікації. Run a job step that activates the replication Queue Reader Agent. Моментальний знімок реплікації Replication Snapshot Виконайте крок завдання, на якому активується агент моментальних знімків. Run a job step that activates the replication Snapshot Agent. Агент читання журналу транзакцій реплікації Replication Transaction Log Reader Виконайте крок завдання, на якому активується агент читання журналу. Run a job step that activates the replication Log Reader Agent. Служби Analysis Services Analysis Services Command Command Виконайте команду служб Служби Analysis Services Analysis Services. Run an Служби Analysis Services Analysis Services command. Служби Analysis Services Analysis Services Запит Query Виконайте запит служб Служби Analysis Services Analysis Services. Run an Служби Analysis Services Analysis Services query. Служби SSIS SSIS виконання пакетів служб package execution Виконайте пакет служб Служби SSIS SSIS. Run an Служби SSIS SSIS package.

Примітка

Оскільки в кроках завдання Transact-SQL Transact-SQL облікові записи-посередники не використовуються, будь-які підсистеми агента SQL Server SQL Server для кроків завдання Transact-SQL Transact-SQL відсутні. Because Transact-SQL Transact-SQL job steps do not use proxies, there is no SQL Server SQL Server Agent subsystem for Transact-SQL Transact-SQL job steps.

SQL Server SQL Server застосовує обмеження підсистеми примусово, навіть якщо зазвичай суб'єкт безпеки для облікового запису-посередника має дозвіл на виконання завдання на кроці завдання. Agent enforces subsystem restrictions even when the security principal for the proxy would normally have permission to run the task in the job step. Наприклад, користувач, який є членом визначеної ролі сервера sysadmin, не зможе виконати крок завдання служб Служби SSIS SSIS, якщо його обліковий запис-посередник не має доступу до підсистеми служб Служби SSIS SSIS, незважаючи на те, що користувач може виконувати пакети служб Служби SSIS SSIS . For example, a proxy for a user that is a member of the sysadmin fixed server role can not run an Служби SSIS SSIS job step unless the proxy has access to the Служби SSIS SSIS subsystem, even though the user can run Служби SSIS SSIS packages.

Облікові записи-посередники Proxies

SQL Server SQL Server для управління контекстами безпеки використовує облікові записи-посередники. Agent uses proxies to manage security contexts. Рахунок-посередник може бути використана на кількох кроках завдання. A proxy can be used in more than one job step. Створювати облікові записи-посередники можуть члени зумовленої ролі сервера sysadmin. Members of the sysadmin fixed server role can create proxies .

Кожного облікового запису-посереднику відповідає обліковий запис системи безпеки. Each proxy corresponds to a security credential. і може бути пов'язана з безліччю підсистем і безліччю імен входу. Each proxy can be associated with a set of subsystems and a set of logins. Рахунок-посередник може застосовуватися тільки для кроків завдання, які використовують пов'язану з цим обліковим записом-посередником підсистему. The proxy can be used only for job steps that use a subsystem associated with the proxy. Щоб створити крок завдання, використовує певну обліковий запис-посередник, власник завдання повинен або використовувати пов'язане з нею ім'я входу, або бути членом ролі, що має необмежений доступ до облікових записів-посередникам. To create a job step that uses a specific proxy, the job owner must either use a login associated with that proxy or be a member of a role with unrestricted access to proxies. Члени зумовленої ролі сервера sysadmin мають необмежений доступ до облікових записів-посередникам. Members of the sysadmin fixed server role have unrestricted access to proxies . Члени ролей SQLAgentUserRole, SQLAgentReaderRole і SQLAgentOperatorRole можуть використовувати тільки облікові записи-посередники, на які їм було надано особливий доступ. Members of SQLAgentUserRole, SQLAgentReaderRole, or SQLAgentOperatorRole can only use proxies to which they have been granted specific access . Кожному користувачеві, що входить в одну із зумовлених ролей бази даних агента SQL Server SQL Server, необхідно надати доступ до конкретних облікових записів-посередникам, щоб користувач міг створювати кроки завдання, які будуть використовувати ці облікові записи-посередники. Each user that is a member of any of these SQL Server SQL Server Agent fixed database roles must be granted access to specific proxies so that the user can create job steps that use those proxies.

Використовуйте наступні кроки для настройки агента SQL Server SQL Server для автоматичного адміністрування SQL Server SQL Server. Use the following steps to configure SQL Server SQL Server Agent to automate SQL Server SQL Server administration:

  1. Визначте, які адміністративні завдання або події сервера відбуваються регулярно, а також чи можна ці завдання або події адмініструвати програмним шляхом. Establish which administrative tasks or server events occur regularly and whether these tasks or events can be administered programmatically. Підходящої для автоматизації є таке завдання, яка включає передбачувану послідовність кроків і виконується в певний час або у відповідь на певну подію. A task is a good candidate for automation if it involves a predictable sequence of steps and occurs at a specific time or in response to a specific event.

  2. Визначте набір завдань, розкладів, попереджень і операторів, використовуючи середу SQL Server Management Studio SQL Server Management Studio, скрипти Transact-SQL Transact-SQL або керуючі об'єкти (SMO) SQL Server SQL Server. Define a set of jobs, schedules, alerts, and operators by using SQL Server Management Studio SQL Server Management Studio, Transact-SQL Transact-SQL scripts, or SQL Server SQL Server Management Objects (SMO). Додаткові відомості див. У розділі створення завдань . For more information, see Create Jobs .

  3. Запустіть призначені завдання агента SQL Server SQL Server. Run the SQL Server SQL Server Agent jobs you have defined.

Примітка

У примірнику SQL Server SQL Server за замовчуванням служба SQL Server SQL Server має ім'я SQLSERVERAGENT. For the default instance of SQL Server SQL Server, the SQL Server SQL Server service is named SQLSERVERAGENT. В іменованих примірниках служба агента SQL Server SQL Server має ім'я SQLAgent $ імя_екземпляра. For named instances, the SQL Server SQL Server Agent service is named SQLAgent $ instancename.

Якщо запущено кілька екземплярів SQL Server SQL Server, то щоб автоматизувати загальні для всіх примірників завдання, можна використовувати адміністрування декількох серверів. If you are running multiple instances of SQL Server SQL Server, you can use multiserver administration to automate tasks common across all instances. Додаткові відомості див. У статті Автоматизація адміністрування в масштабах підприємства . For more information, see Automated Administration Across an Enterprise .

Використовуйте наступні завдання, щоб почати роботу з агентом SQL Server SQL Server. Use the following tasks to get started with SQL Server SQL Server Agent:

Опис Description Розділ Topic Інформація щодо встановлення агента SQL Server. Describes how to configure SQL Server Agent. Налаштування агента SQL Server Configure SQL Server Agent Описує запуск, зупинку і припинення служби агента SQL Server. Describes how to start, stop, and pause the SQL Server Agent service. Запуск, зупинка або припинення служби агента SQL Server Start, Stop, or Pause the SQL Server Agent Service Описує питання завдання облікових записів для служби агента SQL Server. Describes considerations for specifying an account for the SQL Server Agent service. Як вибрати обліковий запис для служби агента SQL Server Select an Account for the SQL Server Agent Service Описує використання журналу помилок агента SQL Server. Describes how to use the SQL Server Agent error log. Журнал помилок агента SQL Server SQL Server Agent Error Log Інформація щодо використання об'єктів продуктивності. Describes how to use performance objects. Використання об'єктів продуктивності Use Performance Objects Описує майстер планів обслуговування програму, яка використовується для створення завдань, оповіщень і операторів для автоматизації адміністрування примірника SQL Server. Describes the Maintenance Plan Wizard, which is a utility that you can use to help create jobs, alerts, and operators to automate administration of an instance of SQL Server. Використання майстра планів обслуговування Use the Maintenance Plan Wizard Описує автоматизацію завдань адміністрування за допомогою агента SQL Server. Describes how to automate administrative tasks using SQL Server Agent. Завдання автоматизованого адміністрування (агент SQL Server) Automated Administration Tasks (SQL Server Agent)

Див. Також: See Also

Налаштування контактної зони Surface Area Configuration