SQL Server/SQL Server Tip

model Database 손상시 발생하는 영향 및 복구 방법

SungWookKang 2018. 3. 31. 14:00
반응형

model Database 손상시 발생하는 영향 복구 방법

 

·         Version : SQL Server

 

SQL Server에서 사용되는 system database에는 master, model, msdb, temp 4가지가 있다. master 경우 SQL Server 대한 속성 정보를 가지고 있기 때문에 중요성에 대해서 많은 사람들이 인지하고 있다. 이번 시간에는 model 데이터베이스의 중요성에 대해서 알아보고 model 데이터베이스가 손상되었을때 어떤 영향이 있는지, 그리고 복구 방법에 대해서 알아본다.

 

model 데이터베이스는 SQL Server 인스턴스에서 생성된 모든 사용자 데이터베이스의 템플릿으로 사용된다. 새로운 데이터베이스를 생성하면 데이터베이스 옵션을 포함하여 model 데이터베이스 전체 내용이 새로운 데이터베이스로 복사된다. tempdb 또한 SQL Server 재시작 될때 model 데이터베이스로부터 일부 속성을 상속 받아 생성된다. 일반적으로 사용자 데이터베이스의 손상은 빠르게 감지 되지만 (사용자 데이터베이스는 서비스에서 계속 사용중이므로) model 데이터베이스의 경우 시스템이 재시작되거나 새로운 데이터베이스가 만들어질때 까지 손상을 발견하기가 쉽지 않다.

 

만약 model 데이터베이스가 손상된 채로 시스템이 재시작 되면 어떻게 될까? 위에서 설명하였듯이 SQL Server 재시작될때 temp 새로 생성하게 되는데 이때 model 데이터베이스를 참조하는데 model 데이터베이스 손상되었으므로 tempdb 또한 생성이 실패된다. 파일 시스템에서 오류 로그를 확인해 보면 tempdb 손상되어 SQL Server 시작하지 못했다는 오류를 발견할 있는데, 근본적인 원인은 model 데이터베이스가 손상되어 발생한것으로 오류 로그로는 명확하게 원인을 파악하지 못할 있다.

 

model 데이터베이스 손상으로 SQL Server 시작되지 않을 시에는 아래  플래그를 적용하여 SQL Server 시작할 있다.

·         -T3608 :  마스터 데이터베이스만 복구, tedbmp 필요한 작업이 시작되면 model 복구되고 tempdb 생성된다.

·         -T3609 : 모든 데이터베이스 복구, tempdb 지우지 않음.

 

만약 방법으로 복구되지 않고, model 데이터베이스에 대한 백업본이 없다면 동일한 SQL Server 버전 데이터 정렬(collation) 사용하는 다른 데이터베이스로 데이터 파일과 로그 파일을 복사하여 복원할 있다.

 

2017-09-13 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

 

 

SQL Server, MS SQL, model, System database, suspect page, dbcc checkdb, system database curruption


반응형