SQL Server 시스템 데이터베이스(모델, 마스터 등) 복원의 중요성은 무엇입니까?

SQL Server 시스템 데이터베이스(모델, 마스터 등) 복원의 중요성은 무엇입니까?

일부 프로덕션 데이터베이스를 동일한 Microsoft SQL Server 2005 시스템의 다른 드라이브로 복원해야 했습니다. 제대로 작동했고 데이터베이스를 사용하는 애플리케이션이 다시 온라인 상태가 되었습니다.

그러나 SQL Server가 자체적으로 생성하는 시스템(또는 기본?) 데이터베이스(모델, 마스터 등)를 복원하지 않았습니다. 내 질문은, 이러한 데이터베이스의 역할은 무엇입니까? 내가 그것들을 복원하는 것이 얼마나 중요한가요?

답변1

master 및 msdb 저장소에는 전체 시스템을 정의하는 프로시저, 함수, 테이블, 보기 및 기타 개체가 포함되어 있습니다. 예를 들어, master에는 로그인에 대한 정보, 데이터베이스 파일이 있는 위치, 시스템 저장 프로시저 및 기타 많은 정보가 포함되어 있습니다. msdb는 원래 주로 작업, 경고에 관한 것이었습니다. dbmail 구성 정보 및 기타 많은 것들이 수년에 걸쳐 추가되었습니다.

모델은 새 데이터베이스를 생성할 때 시작 위치 역할을 하는 일종의 샘플 데이터베이스입니다. 모델에 있는 개체는 새 데이터베이스에 복사됩니다. 사람들은 이 동작을 더 자주(예: 10년 또는 15년 전) 활용하여 자신이 만든 모든 데이터베이스에 특정 프로시저나 테이블을 포함할 수 있었지만 여기에는 문제가 있어 사용되지 않았습니다. 그러나 일종의 부록과 같은 모델은 그다지 좋지는 않지만 여전히 필요합니다.

tempdb는 임시 테이블(#sometablename 및 ##someothertablename), 테이블 변수(충분히 큰 경우), 정렬 작업 및 그룹화 작업(예: GROUP BY 또는 DISTINCT) 및 기타 더 난해한 작업을 위한 임시 저장소를 제공하는 데이터베이스입니다. . 일반적으로 tempdb는 복원하지 않습니다. 서버를 다시 시작할 때마다 처음부터 다시 빌드됩니다.

최신 버전의 SQL Server에는 "리소스 데이터베이스"라는 또 다른 숨겨진 시스템 데이터베이스가 있습니다. 당신은 그것을 만질 이유가 전혀 없어야합니다.

궁금한 점이 있으시면 "pubs", Adventurworks 및 AdventureworksDW는 시스템 데이터베이스가 아니며 예제로 작동하는 일반 사용자 데이터베이스일 뿐이며 서버 동작에 영향을 주지 않고 제거될 수 있습니다.

시스템 데이터베이스는 일반적으로 디스크 충돌이나 데이터 센터 전소와 같은 일종의 치명적인 오류가 발생한 경우에만 복원됩니다. 한 서버에서 다른 서버로 마이그레이션하고 로그인, 작업, dbmail 및 기타 구성을 보존해야 하는 경우 시스템 데이터베이스를 복원할 수도 있습니다(다른 더 나은 방법이 있을 수 있음).

마스터, 모델, msdb를 백업하고 싶습니다. 리소스 데이터베이스나 tempdb를 백업할 필요가 없습니다. 업무 기능 중 하나가 "dba"인 경우 시스템 데이터베이스 복원이 사용자 데이터베이스 복원보다 더 복잡하므로 이러한 데이터베이스를 복원하기 위해 수행해야 할 작업을 검토하는 것이 좋습니다(MSKB 문서에 설명되어 있음). . 실제로 긴급 상황에 처했을 때 처음으로 KB 문서를 읽고 싶지는 않을 것입니다.

사용자 데이터베이스를 복원할 때 시스템 데이터베이스를 복원할 필요가 없습니다. 사용자 데이터베이스를 복원할 때 주의할 점은 데이터베이스에 설명된 사용자가 서버에 대한 로그인(master 데이터베이스에 저장됨)과 일치하는지 확인해야 한다는 것입니다. 이것이 sp_change_users_login 시스템 프로시저의 목적입니다.

관련 정보