--==問題描述 基本都為:SQL Server Agent服務(wù)無法啟動(dòng)之內(nèi)存鎖定
裝 Windows Server 2003(SP2) + SQL Server 2005(SP3) 時(shí)碰到報(bào)錯(cuò): SQL Server Agent 必須可以以sysadmin身份連接到SQL Server,但是(未知)不是sysadmin角色的成員。
--==配置環(huán)境
服務(wù)器環(huán)境為32位Intel? Xeon? CPU E54410 @2.33GHz雙路雙核開啟超線程,8.00GB的內(nèi)存,RAID10。
1.根據(jù)最小權(quán)限原則,安裝完數(shù)據(jù)庫(kù)及SP3補(bǔ)丁后,建立Users組用戶SqlStartUser。
2.通過SQL Server配置管理器配置啟用TCP/IP協(xié)議,IPALL的TCP端口改為32959。SQL Server(MSSQLSERVER)和SQL Server Agent(MSSQLSERVER)的服務(wù)啟動(dòng)賬號(hào)為SqlStartUser。
3.本地安全設(shè)置->本地策略->用戶權(quán)限分配->內(nèi)存中鎖定頁(yè)面添加SqlStartUser。
4.勾選使用AWE分配內(nèi)存。最小服務(wù)器內(nèi)存(MB)5500,最大服務(wù)器內(nèi)存(MB)7200,其他留給操作系統(tǒng)。
--==檢查步驟
1.檢查本地賬號(hào)SqlStartUser隸屬于哪幾個(gè)組:本地Windows組之Users組;本地Windows組之SQL Server服務(wù)賬戶組SQLServer2005MSSQLUser$DBSRV1$MSSQLSERVER;本地Windows組之SQL Server服務(wù)賬戶組SQLServer2005SQLAgentUser$DBSRV1$MSSQLSERVER。
相關(guān)知識(shí):在指定一個(gè)用于SQL Server服務(wù)的賬戶之后,SQL Server安裝會(huì)為不同的SQL Server服務(wù)創(chuàng)建Windows組賬戶,并將這些服務(wù)賬戶分別添加到這些組賬戶中。這些新建的用戶組被給予運(yùn)行服務(wù)所需的最小的權(quán)利和權(quán)限。如果想在 安裝完成后更換一個(gè)與SQL Server服務(wù)相關(guān)聯(lián)服務(wù)賬戶,用于確保運(yùn)行該服務(wù)所需的最低限度的權(quán)利和權(quán)限都已被授予給該賬戶的最佳方法是把該賬戶添加到相關(guān)組中。
2.檢查數(shù)據(jù)庫(kù)登錄名是否有DBSRV1\SqlStartUser。
3.檢查事件查看器應(yīng)用程序有關(guān)服務(wù)啟動(dòng)的過程信息:
類型 來源 描述
①審核成功 MSSQLSERVER 用戶 'DBSRV1 \SqlStartUser' 登錄成功。連接: trusted. [客戶端: <local machine>]
②信息 MSSQLSERVER 配置選項(xiàng) 'show advanced options' 已從 1 更改為 1。請(qǐng)運(yùn)行 RECONFIGURE 語(yǔ)句進(jìn)行安裝。
③信息 MSSQLSERVER SQL Server 阻止了對(duì)組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_has_server_access' 的訪問,因?yàn)榇私M件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過使用 sp_configure 啟用 'Agent XPs'。有關(guān)啟用 'Agent XPs' 的詳細(xì)信息,請(qǐng)參閱 SQL Server 聯(lián)機(jī)叢書中的 "外圍應(yīng)用配置器"。
④信息 MSSQLSERVER SQL Server 阻止了對(duì)組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_get_startup_info' 的訪問,因?yàn)榇私M件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過使用 sp_configure 啟用 'Agent XPs'。有關(guān)啟用 'Agent XPs' 的詳細(xì)信息,請(qǐng)參閱 SQL Server 聯(lián)機(jī)叢書中的 "外圍應(yīng)用配置器"。
⑤錯(cuò)誤 MSSQLSERVER SQLServerAgent could not be started (reason: SQLServerAgent 必須能夠以 SysAdmin 身份連接到 SQLServer,但“(未知)”不是 SysAdmin 角色的成員)。
從信息③和④看到組件'Agent XPs'未能啟動(dòng)。通過系統(tǒng)管理員登錄執(zhí)行語(yǔ)句:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Agent XPs', 1;
GO
RECONFIGURE
GO
報(bào)錯(cuò)沒有內(nèi)存物理地址擴(kuò)展權(quán)限。判斷原因?yàn)?2位機(jī)器,開啟了AWE支持,更改了服務(wù)啟動(dòng)賬戶,但這個(gè)賬戶沒有加入到內(nèi)存鎖定頁(yè)的安全管理中去,所以導(dǎo)致了SQL代理服務(wù)啟動(dòng)失敗,把SqlStartUser賬戶加入到內(nèi)存鎖定就可以啟動(dòng)了