제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under MSSQL
http://blogs.msdn.com/b/psssql/archive ··· 008.aspx

In SQL Server 2005, we introduced a different method than in previous versions to rebuild system databases (affectionately known as "rebuild master"). You were required to use the setup.exe program with command line switches.

This is no different in SQL Server 2008 but the command line switches have changed some and the process behind the scenes to rebuild the system databases (master, model, and msdb) is also a bit different.

Currently the SQL Server 2008 Books Online only mention an option for setup called /REBUILDDATABSES (See this link) but this information is not correct so I'll outline how to do this here in this blog post. We will also get our documentation updated to reflect this information.

The syntax for using setup.exe to rebuild the system databases is as follows:

setup.exe

/QUIET

/ACTION=REBUILDDATABASE

/INSTANCENAME=instance_name

/SQLSYSADMINACCOUNTS= accounts

[/SAPWD=password]

[/SQLCOLLATION=collation_name]

Here are the details about how to use this syntax and how it works:

1. Find setup.exe either from your original media or the "local" setup.exe as found in the directory where you have installed SQL Server in the 100\Setup BootStrap\Release directory. So on my machine, I changed directory to C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release.

2. Run setup.exe with the following syntax from a Windows command prompt:

If you have SQL configured for Windows Authentication Mode use this syntax:

setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<instance name> /SQLSYSADMINACCOUNTS=<accounts>

where

<instance name> is either the name of your named instance or MSSQLSERVER for the default instance

<accounts> are Windows groups or individual accounts to provision as sysadmin

If you have SQL configured for Mixed Authentication Mode use the same syntax except you must also provide the /SAPWD parameter to specify the SA password. If you don't, you will get an error.

If you want to rebuild the system databases with a different collation than what you used to install SQL Server, you would need to supply the /SQLCOLLATION parameter. If you don't supply this parameter, then SQL Server will rebuild the system databases with the collation you selected when you installed SQL Server.

3. When setup has completed rebuilding the system databases, it will return to the command prompt with no messages (It always first prints out the version). If you have any syntax problems or issues with parameters you will see these errors in the command window. If you don't see any errors, then you will need to examine the "Summary" log file to verify it was completely successful.

클러스터를 구성한 MSSQL2008 서버에서 강제종료하고 발생한 서비스 시작 실패였습니다. 이벤트 로그에서는 master DB와 Log 가 손상되어 종료되었다는 구문이 나와서 master DB가 문제가 되어 복구 문제에서 검색해서 나온 결과입니다. 템플릿 폴더에서 복사했더니 역시 복구가 되지 않고 위 명령 옵션을 수행해야만 master 데이터베이스가 복구가 되었습니다. 서비스가 시작이 되어야만 백업된 DB를 복구를 하든 말든 할건데 계정이 많지 않다면 뭐 수동으로 일일이 넣어도 시간은 늦지 않을거라는 판단입니다. 그냥 클러스터 다시 설치할까 고민하다가 한번 검색해서 찾아보구 실행해서 복구해본 포스팅입니다. 서버가 무응답이 길어져서 그냥 iSCSI 스토리지 서버를 강제 종료한것이 화근이 되었던 것입니다. MySQL도 멀쩡하였는데 MSSQL만 이런현상이 있어서 난감했던 몇일이였습니다. 다행히 운영중이지 않아 별문제가 없었지만 실제로 이런일이 발생하면 발만 동동 구르기 때문에  신속히 MS에 지원받는게 빠를수도 있습니다( DB다운되면 어떤일이 벌어지는지 다 아시겠지만... 흠흠) 위에 내용보면 2005 나 2008이나 별반 다를게 없다고 나온거 보면 2005도 같은 명령을 수행하는가 봅니다. 누군가 이글을 읽어보고 영문이라서 무심코 그냥 대충 무시하고 할수 있는데 필자처럼 SA패스워드를 무시하고 진행을 하였더니 에러를 뿜어주는 삽질을 피하지 못할것입니다. 위설명처럼 반드시 sa 패스워드는 넣으라고 지시하고 있습니다.


2012/04/15 05:41 2012/04/15 05:41