次のコマンドを使用して、Windows Server2016仮想マシンのDockerコンテナーでWindowsSQLServerを起動します。
_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'
_
しかし、エージェントを起動しようとすると、上からまったく同じエラーメッセージが表示されました(サービスが開始されていません...サービスを開始できませんでした...エラーは報告されていません)。
面白いのは、走ると
_exec sp_configure 'Agent XPs'
_
Start-agent-commandがエージェント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
_を手動で有効にしたことがわかります。次に、上からコマンドを実行してエージェントを起動しました。これにより、次の2行が表示されました。
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:Dan Guzmanからのコメントによると:これは_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)
_
私の解決策は、ビルドサーバーをWindows Server2019にアップグレードすることでした。それだけです。その後、すべてがそれ以上の変更なしで機能しました。
「cmd」を使用してDockerコンテナーに入るこの問題を解決し、特定のコマンドを実行してWindowsサービスを開始しました。
1)docker exec -it YourSQLServerContainerName cmd
2)net start sqlserveragent
コンテナを停止および開始でき、実行ステータスが保持されます。
こんにちは、SQL Serverエージェントサービスを開始する必要があります。サービスを開始する方法は、次のリンクをたどることができます: サービスの開始
ステップ1:まず、スタートメニューをクリックし、SQL Server構成マネージャーを検索して、 をクリックする必要があります。検索結果からのSQLServer 構成マネージャーオプション。
ステップ2:次に、左側のメニューからSQL Serverサービスを選択する必要があり、サービス SQL Server (SQLEXPRESS)が実行されておらず、停止しています。
ステップ3:ここで、サービスSQL Server(SQLEXPRESS)を起動する必要があります。そのためには、マウスを右クリックして SQL Server (エージェント)サービスを選択し、[開始]オプションを選択してサービスを開始します。
ステップ4:サービスの状態が実行されていることを確認できます。ここで、SQLサーバーデータベースエンジンへの接続を再試行する必要があります。
Dockerコンテナーで実行しているため、何らかの形の環境管理(chef、puppet、jenkins)なども使用していると想定しています。環境内のすべてのアクターを注意深く確認してください。これらの1つは、エージェントのステータスと、エージェントxpを許可する必要があるかどうかを検出することです。さらに、ドメイン内にいる場合は、SQLポリシーとADポリシーを確認する必要がある場合があります。しかし、逆転が発生する速度は、dockerインスタンスのエージェントが責任を負っていることを示しています。