본문 바로가기
SQL SERVER 도서 완독 후 내용 정리/SQL Server 디비로 누리는 특별한 세상 나의 첫 번째 데이터베이스

시스템 데이터베이스

by 예비건물주 2023. 6. 5.

※ 이 글은 'SQL Server 디비로 누리는 특별한 세상 나의 첫 번째 데이터베이스 개발하기 (개발편)' 책을 1회 완독 후 다시 훑어 보면서 몰랐었던 부분, 계속 잊혀지는 부분(또 잊혀질테니 다시보기 위해), 알고 있었지만 정리하면 좋을거 같은 내용 등 을 정리한 글 입니다.
제가 향후에 다시보기 위해 정리한 내용이라서 설명이 부족할 수 있으니 자세한 내용은 해당 도서를 참고 부탁드리겠습니다.
또, 제가 이해를 잘못해서 정리를 잘못한 부분이 있다면 말씀부탁드립니다. (확인 후 수정하겠습니다)

 

P60 - 62

 

시스템 데이터베이스란?

SQL Server를 설치하는 과정에서 SQL Server가 자체적으로 사용할 목적으로 자동으로 만드는 몇몇 테이터베이스. master, model, msdb, tempdb 데이터베이스가 기존으로 포함됨.

 

개체 탐색기의 [데이터베이스] 폴더에 [시스템 데이터베이스]가 별도로 분류되어 표시됨

복제(Replication) 기능을 사용하면 'distribution' 데이터베이스가 [시스템 데이터베이스]에 추가로 포함됨

 

master 데이터베이스

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

 

master 데이터베이스에 SQL Server의 여러 가지 환경 정보와 로그인 정보, 관리되는 모든 데이터베이스에 대한 정보들을 저장함. SQL Server는 서비스가 시작될 때 master 데이터베이스를 찾아서 연다. 이어서 자신에 대한 존재를 확인하고, 다른 데이터베이스와 관련된 파일의 폴더를 확인한 후, 해당 폴더로 가서 그 파일들을 사용할 수 있도록 연다. 

 

model 데이터베이스

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

 

tempdb 데이터베이스

SQL Server가 운영될 때 자동으로, 또는 사용자에 의해 만들어지는 임시 테이블들이 저장되는 곳. 임시 테이블 저장 외에도 여러 가지 역할을 담당. 때에 따라서 초당 수백, 수천 개의 임시 테이블이 생성되었다 삭제될 수 있음. tempdb 데이터베이스를 많이 사용하는 환경에서는 tempdb 데이터베이스에 대한 적절한 구성과 모니터링이 필요. 그렇지 않으면 SQL Server의 성능저하가 발생 할 수 있다.

tempdb 데이터베이스는 SQL Server 서비스가 시작될 때 초기화 됨. SQL Server가 다시 시작될 때 model 데이터베이스가 복사되어 tempdb가 다시 만들어진다. 따라서 model 데이터베이스가 손상되면 tempdb 데이터베이스를 만들 수 없어서 SQL Server 서비스를 시작할 수 없음.

 

msdb 데이터베이스

주로 자동화와 관련된 정보를 저장할 때 msdb 데이터베이스를 사용. 이런 이유로 msdb 데이터베이스를 'SQL Server 에이전트 서비스가 사용하는 데이터베이스'라고도 한다. 데이터 전송을 위한 SSIS(SQL Server Integration Services) 패키지를 파일로 저장하지 않고 SQL Server에 저장하면 이역시 msdb 데이터베이스에 저장됨. 이 외에도 백업과 복원 내용을 포함한 각종 정보를 msdb 데이터베이스에 저장한다. 또한, 다른 시스템 데이터베이스와는 달리 msdb 데이터베이스에 저장된 정보는 쿼리문을 사용해 시스템 테이블을 직접 조회함으로써 확인할 수 있다.

 

resource 데이터베이스

SQL Server 운영과 관련된 시스템 개체를 모두 포함하고 있는 데이터베이스. 읽기 전요으이 숨겨진 데이터베이스여서 개체 탐색기에서는 보이지 않는다. resource 데이터베이스를 구성하는 물리적인 파일은 mssqlsystemresource.mdf와 mssqlsystemresource.ldf다. 이 파일들은 SQL Server가 설치된 폴더에 포함되어 있는 binn 폴더에 존재함. resource 데이터베이스에 대해서는 특별한 관심을 두지 않아도 된다.

 

기타

이외에도 ReportServer, ReportServerTempDB 데이터베이스가 존재할 수 있는데, 이 데이터베이스들은 SSRS(SQL Server Reporting Services) 와 연관된 데이터베이스이다.