본문 바로가기

DBMS/MS-SQL

[MS-SQL] 데이터베이스 복원 - 로그 파일 복원

반응형

개요

 

구성환경

SQL Server 2019 / Windows Server 2016

 

오류

예) 파일 삭제, 분실시 데이터베이스 로그 메시지

[그림] 로그 파일 분실,삭제

예) 파일 손상 데이터베이스 로그 메시지

[그림] 로그 파일 손상(Currupt)

 

로그 파일 복구

1. 로그 파일이 손상(Currupt)된 상태에서는 기존 로그 파일을 삭제후 진행

 1.1 기존 로그 파일이 존재 할 경우 삭제 또는 리네임

 - 로그 파일이 존재할 경우 아래와 같은 오류 발생

1> alter database hoyadb rebuild log
2> go
Msg 5025, Level 16, State 1, Server SQLCL-01, Line 1
파일 'G:\MSSQL15.MSSQLSERVER\MSSQL\DATA\hoyadb_log.ldf'이(가) 이미 있습니다. 새 로그 파일을 만들려면 이 파일의 이름을 바꾸거나 삭제해야 합니다.
Msg 5028, Level 16, State 2, Server SQLCL-01, Line 1
시스템에서 로그를 다시 작성할 수 있을 만큼 충분히 데이터베이스를 활성화할 수 없습니다.
1>

 1.2 로그 파일 리빌드(rebuild) 진행

1> ALTER DATABASE hoyadb REBUILD LOG 
2> go 
경고: 데이터베이스 'hoyadb'의 로그가 다시 작성되었습니다. 트랜잭션에 일관성이 없습니다. RESTORE 체인이 끊어져 서버에 이 전 로그 파일에 대한 컨텍스트가 더 이상 없으므로 해당 로그 파일이 어떤 파일인지 알아야 합니다. DBCC CHECKDB를 실행하여 물리적 일관성을 확인해야 합니다. 데이터베이스가 dbo 전용 모드로 전환되었습니다. 데이터베이스를 사용할 수 있는 준비가 되면 데이터베이스 옵션을 다시 설정하고 모든 추가 로그 파일을 삭제하십시오. 
1>

 1.3 데이터베이스 멀티유저 모드로 변경

- 로그 파일을 리빌드 된후에는 관련 데이터베이스가 제한된 사용자 모드로 변경됨

[그림] 데이터베이스 제한된 사용자 모드

- 데이터베이스 멀티유저 모드로 변경

1> ALTER DATABASE hoyadb SET MULTI_USER
2> go 
1>

 1.4 데이터베이스 복구 모드 변경

 - 로그 파일을 리빌드 된후에는 데이터베이스의 복구모드가 단순(Simple)으로 변경되기 때문에 복구 모드를 변경해 주도록 한다.

 - T-SQL을 이용한 복구 모드 변경

1> ALTER DATABASE hoyadb SET RECOVERY FULL 
2> go
1>

- SQL Server Management Studio를 이용한 복구 모델 변경

[그림] SQL Server Management Studio

 

 

반응형