Служба агента SQL Server не может быть запущена - PullRequest
7 голосов
/ 24 июня 2019

Я запускаю Windows SQL Server в Docker-контейнере на виртуальной машине Windows Server 2016 с помощью этой команды:

docker container run --name mssql-server --detach --publish 1433:1433 --memory 2048mb --volume C:\_Data:C:\_Data --env sa_password=myPassword --env ACCEPT_EULA=Y microsoft/mssql-server-windows-developer

После этого я хочу запустить агент SQL с помощью этой команды:

docker container exec mssql-server cmd.exe /C "net start sqlserveragent"

К сожалению, я получаю этот вывод:

The SQL Server Agent (MSSQLSERVER) service is starting.
The SQL Server Agent (MSSQLSERVER) service could not be started.

The service did not report an error.

More help is available by typing NET HELPMSG 3534

Когда я печатаю NET HELPMSG 3534, я получаю:

The service did not report an error.

У меня совершенно нет идей. На моей локальной машине это работает нормально, но не на сервере сборки.

Любая помощь приветствуется.

Редактировать : Я открыл SQL Server Management Studio и заметил узел SQL Server Agent (Agent XPs disabled). Итак, я прошел все в https://www.mssqltips.com/sqlservertip/2729/how-to-start-sql-server-agent-when-agent-xps-show-disabled/. После этого я выполнил

exec sp_configure 'Agent XPs'

и результат был: Agent XPs are clearly enabled

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

Интересно, когда я запускаю

exec sp_configure 'Agent XPs'

снова, я получаю это: Agent XPs are disabled

Как это возможно, что команда start-agent отключает Agent XP?

Edit2 : я только что узнал из комментария на https://community.spiceworks.com/topic/293771-sql-server-agent-agent-xps-disabled-sql-server-2008, что агент настраивает эти значения автоматически, когда он запускается и останавливается. Поэтому я не должен включать его вручную.

Edit3: После комментария от Jeroen Mostert я заглянул в EventLog. Я использовал следующую команду:

docker container exec mssql-server powershell.exe "Get-EventLog Application -Newest 100"

Это результат журнала приложений

Time         EntryType   Source                                  InstanceID Message                                                                                        
----         ---------   ------                                  ---------- -------                                                                                        
Jun 25 10:37 Information SQLSERVERAGENT                          1073741926 SQLServerAgent service successfully stopped.                                                   
Jun 25 10:37 Information MSSQLSERVER                             1073757281 Configuration option 'Agent XPs' changed from 1 to 0. Run the RECONFIGURE statement to install.
Jun 25 10:36 Information MSSQLSERVER                             1073757281 Configuration option 'Agent XPs' changed from 0 to 1. Run the RECONFIGURE statement to install.

Вы видите, что я вручную включил Agent XPs. Затем я запустил команду сверху, чтобы запустить агент, который дал мне следующие две строки

System-EventLog дал мне:

Time         EntryType   Source                                   InstanceID Message                                                                                                                                                                                                                                                             
----         ---------   ------                                   ---------- -------                                                                                                                                                                                                                                                             
Jun 25 10:37 Information Service Control Manager                  1073748860 The SQL Server Agent (MSSQLSERVER) service entered the stopped state.                                                                                                                                                                                               

Редактировать 4: Согласно комментарию от Дана Гусмана: это содержание SQLAGENT.OUT:

2019-07-09 11:03:44 - ? [000]
2019-07-09 11:03:44 - ? [098] SQLServerAgent terminated (normally)

Редактировать 5: Версия (select @@version):

Microsoft SQL Server 2017 (RTM-CU3-GDR) (KB4052987) - 14.0.3015.40 (X64)   Dec 22 2017 16:13:22   Copyright (C) 2017 Microsoft Corporation  Developer Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor) 

Ответы [ 3 ]

1 голос
/ 17 июля 2019

Моим решением было обновить сервер сборки до Windows Server 2019. Вот и все.Тогда все работало без каких-либо дальнейших изменений.

0 голосов
/ 10 июля 2019

Поскольку вы работаете в док-контейнере, я предполагаю, что вы также используете некоторую форму управления окружающей средой (шеф-повар, марионетка, Дженкинс) и т. Д. Тщательно рассмотрите всех участников вашей среды.может быть, одним из них является обнаружение статуса агентов и следует ли разрешить агент XP.Кроме того, вам может понадобиться проверить политику SQL и политики AD, если вы находитесь в домене.Но скорость, с которой происходит изменение, говорит о том, что агент в экземпляре докера слишком виноват.

0 голосов
/ 25 июня 2019

Привет, вам нужно запустить службу агента SQL Server. Как запустить службу, вы можете перейти по этой ссылке: Запуск службы

Шаг 1: Во-первых, у вас естьчтобы щелкнуть меню «Пуск» и выполнить поиск диспетчера конфигурации SQL Server, а затем выбрать опцию SQL Server Configuration Manager из результатов поиска.

Шаг 2: Затемвам нужно выбрать службы SQL Server в левом меню, и вы увидите, что служба SQL Server (SQLEXPRESS) не запущена и остановлена.

Шаг 3: Теперь вам нужно запустить службу SQL Server (SQLEXPRESS), и для этого вы должны нажать правой кнопкой мыши на SQL Server (Агент) службы и выберите опцию «Пуск», чтобы запустить службу.

Шаг 4: Вы можете увидеть, что состояние службы запущено, Теперь попробуйте снова подключить ядро ​​базы данных сервера SQL.

...