본문 바로가기
Database/MS-SQL

[MSSQL]_master 디비 복구 - mdf,ldf / restore 복원

by KanoKim 2020. 5. 9.

 

master db 복구

 

 

 

master 복구시 고려해야할 사항

 

-. mssql 버전 / 서비스팩 / 패치 버전 확인

-. DATA 경로, LOG 경로 확인

-. 컴퓨터 이름

-. 설치되어있는 mssql service 확인

 

※ 작업 전 초기 data 디렉토리 백업 후 작업 진행.

 

 

+. 시스템 디비

 

master

SQL Server 시스템의 모든 시스템 수준 정보를 기록하는 데이터베이스

-> 로그온 계정, 엔드포인트, 연결된 서버및 시스템 구성 설정등 인스턴스 차원의 메타데이터 포함.

-> 데이터베이스의 존재 여부, 해당 데이터베이스의 파일의 위치 기록

 

model

SQL Server 인스턴스 에서 생성되는 모든 데이터베이스용 템플릿.

 

msdb

경고및 작업을 예약하고 운영자를 기록하기 위해 SQL Server 에이전트가 사용하는 데이터 베이스.

-> 백업및 복원 기록, 작업 관리자.

 

tempdb

임시 또는 중간 결과 집합을 유지하기 위한 작업 영역

이 데이터베이스는 SQL Server 인스턴스가 시작될 때마다 다시 생성된다.

서버 인스턴스가 종료될때 tempdb에 있는 모든 데이터는 영구적으로 삭제 된다.

 

참고 url : 

https://docs.microsoft.com/ko-kr/sql/relational-databases/backup-restore/back-up-and-restore-of-system-databases-sql-server?view=sql-server-ver15

 

 

 

1. mssql 버전 / 서비스 팩 / 패치 버전 확인및 적용

  -. 신규 서버의 mssql

    Microsoft SQL Server 2012 (SP4) (KB4018073) - 11.0.7001.0 (X64)

    Aug 15 2017 10:23:29

    Copyright (c) Microsoft Corporation

    Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: )

 

-. 원본 서버의 mssql

    Microsoft SQL Server 2012 (SP4-GDR) (KB4532098) - 11.0.7493.4 (X64)

    Dec 24 2019 19:33:24

    Copyright (c) Microsoft Corporation

    Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

 

Microsoft SQL Server 2012 () (KB4532098) - 11.0.7493.4 (X64)

Microsoft SQL Server 2012 : 제품 이름

SP4-GDR : 서비스팩

KB4532098 : Microsoft 기술 자료 문서의 ID

11.0.7493.4 : 주/부/ 패치 버전

 

=> 구글에 KB4532098 Download 검색하면 나옮.

 

만약 원본 mssql 보다 신규 mssql의 패치 버전이 더 높을 경우 에러가 발생하니 mssql 재설치 후 이어서 진행.

 

 

 

2. mssql 데이터 베이스 기본 위치 확인및 변경

[서버 속성] > [데이터 베이스 기본 위치 변경]

 

 

 

 

3. master DB 위치 변경

[서버 속성] > [데이터 베이스 기본 위치 변경]

 

원하는 master 경로로 변경 진행.

 

 

 

 

 

 

4. 복원

 

4-1). .mdf / .ldf 이용하여 복원

 

 

 

4-2). RESTORE 복원

 

C:\Users\min> net stop mssqlserver
C:\Users\min> net start mssqlserver /m => 단일 사용자 모드로 실행
 
C:\Users\min> cd "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn"
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn> sqlcmd
1>
2>
3> RESTORE DATABASE master FROM DISK = 'E:\master_20200507.bak' WITH REPLACE;
4> GO
파일 1에서 데이터베이스 'master', 파일 'master'에 대해 440개의 페이지를 처리했습니다 .
파일 1에서 데이터베이스 'master', 파일 'mastlog'에 대해 3개의 페이지를 처리했습니다 .
master 데이터베이스가 복원되었습니다. SQL Server를 종료합니다.

 

SQL Server가 이 프로세스를 종료합니다.

 

=> 나머지 msdb, model db 복원 하자.

5> RESTORE DATABASE msdb FROM DISK = 'E:\msdb_20200507.bak' WITH REPLACE;
6> GO

 

7> RESTORE DATABASE model FROM DISK = 'E:\model_20200507.bak' WITH REPLACE;
8> GO
 
 
 

5. 컴퓨터 이름 변경으로 인한 인스턴스 이름 변경 <- [클릭]

 

6. master 복구 관련 에러 확인  <- [클릭]

 
 

 

댓글