SQL SERVER 2000 遷移后SQL SERVER代理服務啟動錯誤分析


       公司有一個老系統,這個系統所用的數據庫是SQL SERVER 2000,它所在的Dell服務器已經運行超過10年了,早已經過了保修服務期,最近幾乎每周會出現一次故障,加之5月份另外一台服務器壞了兩個硬盤,所以非常擔心這台服務器“壽終正寢”,跟開發維護那邊溝通,想將數據庫遷移升級到SQL SERVER 2008,但是由於是老舊系統,現在的負責人不敢做數據庫升級,最終協商下來,只能遷移到另外一台服務器,不做升級。

      在部署測試環境時,先將master,msdb等系統數據庫直接拷貝過去覆蓋原系統數據庫,啟動數據庫后,出現了莫名錯誤。不得已只能從生產庫備份master后在測試庫還原,然后莫名的錯誤解決了(之前沒有截圖,記錄下來),但是啟動SQL SERVER代理服務器時,出現下面錯誤。

 

clip_image001

在目錄C:\Program Files\Microsoft SQL Server\MSSQL\LOG\下找到SQLAGENT.OUT錯誤日志文件,發現如下錯誤提示:

 

2013-09-20 09:46:12 - ! [298] SQLServer 錯誤:  229,EXECUTE permission denied on object 'sp_sqlagent_has_server_access', database 'msdb', owner 'dbo'. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

2013-09-20 09:46:12 - ! [298] SQLServer 錯誤:  229,EXECUTE permission denied on object 'sp_sqlagent_get_startup_info', database 'msdb', owner 'dbo'. [SQLSTATE 42000] 

2013-09-20 09:46:12 - ? [100] Microsoft SQLServerAgent 8.00.2039 版(內部版本號 x86 unicode retail): 進程 ID 

2013-09-20 09:46:12 - ? [100] Microsoft SQLServerAgent 8.00.2039 版(內部版本號 x86 unicode retail): 進程 ID 796

2013-09-20 09:46:12 - ? [101] SQL Server  8.00.2039 版(0 連接限制)

2013-09-20 09:46:12 - ? [102] SQL Server ODBC 驅動程序 3.85.11172013-09-20 09:46:12 - ? [103] 正由驅動程序使用的 NetLib 是 DBMSSHRN.DLL;本地主機服務器是

2013-09-20 09:46:12 - ? [310] 檢測到 2 個處理器和 2048 MB RAM 

2013-09-20 09:46:12 - ? [339] 本地計算機是 GETHRTESTW2KS,運行 Windows NT 5.0 (2195) Service Pack 4

2013-09-20 09:46:12 - ! [000] SQLServerAgent 必須可以以 SysAdmin 身份連接到 SQLServer,但是“(未知)”不是 SysAdmin 角色的成員

2013-09-20 09:46:13 - ? [098] SQLServerAgent 已終止 (正常)

 

看來是權限問題,但是具體原因又不太清除,搜索后終於在這位老兄的博客http://www.sqldbadiaries.com/2011/01/17/sql-server-agent-does-not-start-unknown-is-not-a-member-of-the-sysadmin-role/找到答案,生產環境是用一個NT賬號(域賬號)啟動該服務,

clip_image002

但是在測試環境使用本地系統賬號(Local System)

clip_image003

但是由於BUILTIN\Administrators這個登錄名沒有sysadmin服務器角色,所以啟動上面的SQL SERVER代理服務時,就報那個錯誤了。只需要勾選上sysadmin角色,然后重啟該服務就OK了

clip_image004


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM