본문 바로가기
DB 기본 개념 다지기

시스템 데이터베이스 - master, model, tempdb,msdb, resource

by 양블로그 2023. 6. 25.
반응형

SQL Server를 설치하는 과정에서 자동으로 생성되는 몇몇 데이터베이스를 "시스템 데이터베이스"라고 합니다. 시스템 데이터베이스에는 master, model, msdb, tempdb 데이터베이스가 기본으로 포함됩니다. 그리고 복제(Replication) 기능을 사용하면 distribution 데이터베이스가 추가로 포함됩니다. 그렇다면 기본으로 포함되는 데이터베이스를 각각 정리해 보겠습니다.

 

master 데이터베이스

SQL Server가 수많은 데이터베이스를 관리하기 위해서 이들의 정보를 저장할 특별한 데이터베이스가 필요합니다. 즉, 데이터베이스의 이름과 데이터 파일, 로그 파일은 어느 폴더에 있는지 저장하며 데이터베이스에 접근하기 위해 서버에 로그인할 수 있는 계정은 무엇인지 등의 정보를 저장하는 데 사용하는 데이터베이스가 "master" 데이터베이스 입니다. 

 

SQL Server는 서비스가 시작될 때 우선 master 데이터베이스를 찾아서 엽니다. 이어서 자신의 존재를 확인하고, 다른 데이터베이스와 관련된 파일들을 확인한 후 그 폴더로 가서 그 파일들을 사용할 수 있도록 엽니다. 만일 master 데이터베이스가 손상된 상태라면 SQL Server 서비스는 시작될 수 없습니다. 이러한 점들로 master 데이터베이스가 시스템 데이터베이스 중에서도 가장 핵심이라고 할 수 있습니다.

 

model 데이터베이스

이 데이터베이스는 새로 만들어지는 데이터베이스의 원형으로 사용됩니다. 즉, model 데이터베이스를 복사하여 새로운 데이터베이스를 만듭니다. model 데이터베이스 설정을 변경하면 이후에 만들어지는 새로운 데이터베이스에 그대로 반영됩니다. 예를 들어서 새로운 데이터베이스에 특정 사용자 계정을 만들고 싶을 때 그 사용자 계정을 model 데이터베이스에 만들어두면, 별도의 작업 없이도 새로운 데이터베이스에 그 사용자 계정이 존재하게 됩니다. 하지만 대부분 model 데이터베이스는 처음의 형태로 유지하며, 관리적인 측면에서도 특별히 관심을 두지 않는 경우가 많습니다.

 

tempdb 데이터베이스

SQL Server가 운영될 때 자동으로 만들어지거나 사용자에 의해 만들어지는 임시 테이블들이 저장되는 곳입니다. 임시 테이블을 저장하는 것 외에도 여러 가지 역할을 담당합니다. 때와 상황에 따라 초당 수백 수천 개의 임시 테이블이 만들어지고 삭제되는 데이터베이스가 tempdb 데이터베이스 입니다. tempdb 데이터베이스는 SQL Server 서비스가 시작될 때 초기화되므로, 영구적으로 보관할 사용자 테이블을 tempdb 데이터베이스에 만들면 안됩니다. 위에서 model 데이터베이스는 새로운 데이터베이스를 만들 때 사용되는 템플릿 데이터베이스라고 설명 드렸는데, tempdb 데이터베이스 역시 SQL Server 서비스가 다시 시작될 때 model 데이터베이스가 복사되어 다시 만들어집니다. model 데이터베이스가 손상되면 tempdb 데이터베이스를 만들 수 없어서 마찬가지로 SQL Server 서비스를 시작할 수 없습니다. "임시" 라는 뜻을 가져 중요하지 않을 것 같은 느낌이지만, 정말 중요한 시스템 데이터베이스 입니다.

 

msdb 데이터베이스

SQL Server 에이전트 서비스가 제공하는 작업, 경고, 운영자 기능으로 유지관리 업무를 자동화 할 수 있는데, 이런 정보들을 msdb 데이터베이스에 저장합니다. 해서 msdb 데이터베이스를 "SQL Server 에이전트 서비스가 사용하는 데이터베이스" 라고 말할 수 잇습니다. 데이터 전송을 위한 SSIS(SQL Server Integration Services) 패키지를 파일로 저장하지 않고 SQL Server에 저장하면 msdb 데이터베이스에 저장됩니다. 그리고 백업과 복원 내용을 포함, 각종 정보를 msdb 데이터베이스에 저장합니다. 다른 시스템 데이터베이스와 달리 msdb 데이터베이스에 저장된 정보는 쿼리문을 사용해 시스템 데이블을 직접 조회하여 확인할 수 있습니다.

 

resource 데이터베이스

시스템 데이터베이스 중에는 SQL Server 운영과 관련된 시스템 개체를 모두 포함하고 있는 resource 데이터베이스가 있습니다. 읽기 전용의 숨겨진 데이터베이스여서 개체 탐색기에서는 조회할 수 없습니다. resource 데이터베이스를 구성하는 물리적인 파일은 mssqlsystemresource.mdf와 mssqlsystemresource.ldf인데, 이 파일들은 SQL Server가 설치된 폴더에 binn 폴더에 존재합니다. 개체 탐색기에서 조회되지 않는 것은 resource 데이터베이스에 대해서는 특별히 관심을 두지 않아도 된다는 뜻으로 받아들이면 됩니다.

반응형