본문 바로가기
RDBMS

시스템 데이터베이스의 종류와 master 데이터베이스 복원하기

by algorizm algorizm 2010. 9. 9.

이직 전 회사에서도 몇 번 master 데이터베이스 복원 작업을 해본적이 있었는데
나름대로 정리해보자 했는데 새로 이직한 회사에서도 작업하게 되어 이번 기회에 정리해보았다.

SQL Server 에서 시스템 데이터베이스에는 다음과 같은 데이터베이스가 있다.
1. master 데이터베이스
master 데이터베이스는 , 로그온 계정, 끝점
연결된 서버 및 시스템 구성 설정(sp_configure) 등의 정보가 담겨져 있는 데이터베이스이다.
시스템 객체는 resource 데이터베이스에 저장된다.

2. model 데이터베이스
설명은  SQL Server를 시작할 때마다 tempdb가 생성되기 때문에 model 데이터베이스는
항상 SQL Server 시스템에 있어야 합니다. <-- 이렇게 적혀있는데 확실히 어떤건지 이해는 안간다..

3. msdb 데이터베이스
SQL Server 에이전트에서 사용되는 경고 및 작업에 대한 시스템 테이블과
데이터베이스 백업 및 복원 작업에서 사용하는 정보를 저장하는 시스템 테이블이
포함되어 있는 데이터베이스이다.
 
4. tempdb 데이터베이스
tempdb는 말 그대로 전역/로컬 임시테이블, 테이블 변수, 커서,
스풀 또는 정렬의 중간 결과를 저장하기 위해 사용되는 SQL Server 에서 일종의 버퍼나 캐싱역활을
하는 데이터베이스다.

좀 더 자세한 사항은 아래 링크를 참조한다.
http://technet.microsoft.com/ko-kr/library/ms178028.aspx

정리할려다 보니 완전히 이해하지 못한 시스템 데이터베이스 얘기까지 나와버렸다..
좀더 내공이 쌓이고 완전히 이해가 되면 다시 포스트에 등록하기로 하겠다..

그럼 이제 master 데이터베이스를 복원하는 방법을 알아보자.
SQL Server 에서는 특별한 작업을 수행하거나 실행할때 단일 사용자 모드로 변경해야 할 때가 있다.
그 중에 하나가 master 데이터베이스 복원 시다.
말 그대로 서버에 사용자 한 명만 연결할 수 있다.

우선 단일 사용자 모드로 SQL Server 인스턴스를 재 시작한다.
1) SQL Server 인스턴스 설치 경로\Binn\sqlservr.exe -m
2) net start [SQL Server  서비스명] /m

단일 사용자 모드인 경우에는 sqlcmd 를 사용하는 것이 좋다.
-- 시스템 로컬계정으로 인증하여 SQL Server에 접속
sqlcmd -S<ComputerName>\<InstanceName>
ex)sqlcmd -S Test-02-x86
1> RESTORE DATABASE model FROM DISK = N'E:\Backup\master_101012.bak' WITH REPLACE
REPLACE 옵션으로 기존 DB에 강제 복원시킴

실행이 완료되면 SQL Server 인스턴스와 sqlcmd 프로세스가 종료된다.
그럼 반드시 다시 단일 사용 시작 매개 변수 [-m] 을 제거한 후 SQL Server 인스턴스를 재 시작한다.

나머지 msdb, model 등의 데이터베이스는 다중 사용자 모드에서 복원해도 상관없다.
RESTORE DATABASE msdb FROM DISK = N'E:\msdb_133123.bak' WITH REPLACE

댓글2