백업 및 복원: 시스템 데이터베이스(SQL Server)
적용 대상: SQL Server
SQL Server는 서버 인스턴스의 작업에 필수적인 시스템 데이터베이스라는 시스템 수준 데이터베이스의 집합을 유지 관리합니다. 중요한 업데이트가 있을 때마다 여러 시스템 데이터베이스를 백업해야 합니다. 항상 백업해야 하는 시스템 데이터베이스에는 msdb
, master
, model
이 포함됩니다. 데이터베이스가 서버 인스턴스에서 복제를 사용하는 경우 시스템 데이터베이스도 백업 distribution
해야 합니다. 이러한 시스템 데이터베이스의 백업을 사용하면 스토리지 디바이스 손실과 같은 시스템 오류 후 SQL Server 시스템을 복원하고 복구할 수 있습니다.
다음 표에서는 모든 시스템 데이터베이스를 요약합니다.
시스템 데이터베이스 | 설명 | 백업이 필요합니까? | 복구 모델 | 설명 |
---|---|---|---|---|
master | SQL Server 인스턴스에 대한 모든 시스템 수준 정보를 기록하는 시스템 데이터베이스입니다. | 예 | 단순 | 비즈니스 요구 사항에 맞게 데이터를 충분히 보호하기 위해 필요한 만큼 자주 백업 master 합니다. 정기 백업 일정을 사용하고 중요한 업데이트 후에는 추가 백업으로 보완하는 것이 좋습니다. master 시스템 데이터베이스의 트랜잭션 로그 백업은 지원되지 않습니다. |
model | model 데이터베이스는 SQL Server 인스턴스에 생성된 모든 데이터베이스에 대한 템플릿으로 사용됩니다. | 예 | 구성 가능1 | 해당 데이터베이스 옵션을 사용자 지정한 후 즉시 백업하는 경우와 같이 업무상 필요한 경우에만 model 을 백업합니다.모범 사례: 필요에 따라 model 의 전체 데이터베이스 백업만 만드는 것이 좋습니다. model 은 작고 거의 변경되지 않으므로 로그를 백업할 필요가 없습니다. |
msdb | 경고 및 작업 예약 및 기록 연산자를 위해 SQL Server 에이전트 사용하는 데이터베이스입니다. msdb 는 백업 및 복원 기록 테이블과 같은 기록 테이블도 포함합니다. |
예 | 단순(기본값) | msdb 가 업데이트될 때마다 백업하십시오. |
리소스 데이터터베이스(RDB) | SQL Server와 함께 제공되는 모든 시스템 개체의 복사본이 포함된 읽기 전용 데이터베이스입니다. | 아니요 | None | 리소스 데이터베이스는 코드만 포함하는 mssqlsystemresource.mdf 파일에 있습니다. 따라서 SQL Server는 리소스 데이터베이스를 백업할 수 없습니다.참고: 파일을 데이터베이스 파일 대신 이진( .exe ) 파일인 것처럼 처리하여 파일 기반 또는 디스크 기반 백업 mssqlsystemresource.mdf 을 수행할 수 있습니다. 하지만 백업에서는 SQL Server 복원을 사용할 수 없습니다. 수동으로만 mssqlsystemresource.mdf 백업 복사본을 복원할 수 있으며 현재 Resource 데이터베이스를 오래된 버전이나 안전하지 않은 버전으로 덮어쓰지 않도록 주의해야 합니다. |
tempdb | 임시 개체나 중간 결과 집합을 보관하기 위한 작업 영역입니다. 이 데이터베이스는 SQL Server 인스턴스가 시작될 때마다 다시 만들어집니다. 서버 인스턴스가 종료될 때 tempdb 에 있는 모든 데이터는 영구적으로 삭제됩니다. |
아니요 | 단순 | tempdb 시스템 데이터베이스는 백업할 수 없습니다. |
배포 구성 | 서버가 복제 배포자로 구성된 경우에만 존재하는 데이터베이스입니다. 이 데이터베이스는 모든 유형의 복제 및 트랜잭션(트랜잭션 복제의 경우)에 대한 메타데이터 및 기록 데이터를 저장합니다. | 예 | 단순 | distribution 데이터베이스를 백업하는 방법에 대한 자세한 내용은 VMM 데이터베이스 백업 및 복원을 참조하십시오. |
1 데이터베이스의 현재 복구 모델을 확인하려면 복구 모델 보기 또는 변경하기(SQL Server) 또는 sys.databases (Transact-SQL)를 참조하세요.
시스템 데이터베이스 복원의 제한 사항
시스템 데이터베이스는 서버 인스턴스가 현재 실행 중인 SQL Server 버전에서 만든 백업에서만 복원할 수 있습니다. 예를 들어 서비스 팩 1을 사용하여 SQL Server 2016(13.x)을 실행하는 서버 인스턴스에서 시스템 데이터베이스를 복원하려면 서버 인스턴스가 SQL Server 2016(13.x) SP 1로 업그레이드된 후 생성된 데이터베이스 백업을 사용해야 합니다.
데이터베이스를 복원하려면 SQL Server 인스턴스가 실행 중이어야 합니다. SQL Server 인스턴스를 시작하려면 데이터베이스에 master
액세스할 수 있고 적어도 부분적으로 사용할 수 있어야 합니다. master
사용할 수 없게 되면 다음 방법 중 하나를 사용하여 데이터베이스를 사용 가능한 상태로 반환할 수 있습니다.
현재 데이터베이스 백업에서
master
를 복원합니다.서버 인스턴스를 시작할 수 있는 경우 전체 데이터베이스 백업에서 복원
master
할 수 있어야 합니다. 자세한 내용은 RESTORE SERVICE MASTER KEY(Transact-SQL)를 참조하세요.완전히 다시 빌드
master
합니다.심각한 손상으로
master
인해 SQL Server를 시작할 수 없는 경우 다시master
빌드해야 합니다. 자세한 내용은 시스템 데이터베이스 다시 작성을 참조하세요.Important
다시 빌드하면
master
모든 시스템 데이터베이스가 다시 빌드됩니다.
경우에 따라 데이터베이스를 복구하는 데 model
문제가 발생하면 시스템 데이터베이스를 다시 빌드하거나 데이터베이스의 mdf
파일과 ldf
파일을 model
교체해야 할 수 있습니다. 자세한 내용은 시스템 데이터베이스 다시 작성을 참조하세요.
관련 작업
- 전체 데이터베이스 백업 만들기
- 전체 데이터베이스 복원(단순 복구 모델)
- master 데이터베이스 복원(Transact-SQL)
- 데이터베이스 복구 모델 보기 또는 변경(SQL Server)
- 시스템 데이터베이스 이동