류짱:Beyond MySelf

hotfix 설치 후 SQL server 시작 실패 본문

Microsoft/MS SQL

hotfix 설치 후 SQL server 시작 실패

リュちゃん 2011. 12. 27. 23:18

몇 주 전 SQL Server 2008 서버에 hotfix를 설치 한 후 서버를 재 시작 하였는데 SQL Server의 시작이 실패 된 사례가 있었습니다.
원인은 시스템 데이터 베이스인 Master DB와 MSDB의 collation 이 동일하지 않았기 때문이었는데 해당 문제를 해결 하기 위해서는 master DB에 대한 rebuild 작업이 필요 하였습니다.

[환 경]
MSSQL server 2008 SP2

[
증 상
]
SQL Server 2008 sp2로 운영 중인 서버에 hotfix (sp2 cu4) 적용 후 SQL Server 시작 실패
http://support.microsoft.com/kb/2527180

[SQL Server Error log]

2011-12-11 20:06:34.01 spid7s Creating procedure sp_sqlagent_get_perf_counters...
2011-12-11 20:06:34.01 spid7s 오류: 468, 심각도: 16, 상태: 9.

2011-12-11 20:06:34.01 spid7s equal to 작업에서의 "SQL_Latin1_General_CP1_CI_AS"() "Korean_Wansung_CI_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다.

2011-12-11 20:06:34.01 spid7s 오류: 912, 심각도: 21, 상태: 2.

2011-12-11 20:06:34.01 spid7s Script level upgrade for database 'master' failed because upgrade step 'sqlagent100_msdb_upgrade.sql' encountered error 200, state 7, severity 25. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.

2011-12-11 20:06:34.01 spid7s 오류: 3417, 심각도: 21, 상태: 3.

2011-12-11 20:06:34.01 spid7s Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.

2011-12-11 20:06:34.01 spid7s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.


[원 인]
Master DB
MSDB collation이 일치 하지 않아 발생한 장애로 Master DB rebuild 후 정상 복구

같은 시기에 설치 된 다른 업무 환경의 운영 서버에서 collation 확인을 확인 해 보니 해당 서버도 MSDB의 collation만 틀린 것을 확인 하였습니다.

=> select name,collation_name from sys.databases where database_id < 10

master SQL_Latin1_General_CP1_CI_AS
model SQL_Latin1_General_CP1_CI_AS
msdb Korean_Wansung_CI_AS
tempdb SQL_Latin1_General_CP1_CI_AS

=> msdb collation Korean_Wansung 임을 확인

[조치 방법]
master database rebuild 하여 시스템 데이터베이스의 collation을 일치 시켜 줌

master database rebuild

Z:\>setup.exe /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=
SWXXXXX\admin /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS /SAPWD=xxxxxx

[참고 자료]
Rebuilding System Databases
http://technet.microsoft.com/en-us/library/dd207003.aspx

감사합니다.