docker 中的 SQL Server 啟用 SQLServerAgent

這個 SQL Server 是部屬在 docker 中,docker image 是 mcr.microsoft.com/mssql/server:2022-latest ,在 SSMS(SQL Server Management Studio) 中查看 SQL Server Agent 顯示已停用:

要啟用 SQL Server Agent 要先執行以下指令:
    
sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'Agent XPs', 1;  
GO  
RECONFIGURE  
GO
    

回到 SSMS 中重新整理就會發現已經變成綠色的了,並沒有顯示「已停用」:

但是使用指令查詢 SQLServerAgent 的狀態還是 Stopped.
    
EXEC xp_servicecontrol 'QUERYSTATE', 'SQLServerAgent';
    


後來研究了半天才發現要去 docker 中下指令,先使用 root 身分進入 docker (這裡假設 docker 容器名稱為 sql-server):
    
docker exec -it -u root sql-server bash
    

將 sqlagent 服務設定為啟用:
    
/opt/mssql/bin/mssql-conf set sqlagent.enabled true
    

重新啟動 docker 容器:
    
docker restart sql-server
    

再次查詢就已經是 Running. 了



參考資料:
Microsoft.Learn - Start, Stop, or Pause the SQL Server Agent Service
Microsoft.Learn - Install SQL Server Agent on Linux

留言