트랜잭션 백업 실패와 전체 백업 성공 그리고 대처 방안

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server에서 트랜잭션 로그는 SQL Server에서 발생하는 모든 행동을 기록 한다. 다음 사례는 트랜잭션 백업이 실패하지만 전체 백업은 성공하는 경우에 대해서 알아 본다.

 

다음과 같이 트랜잭션 로그가 손상되어 백업이 실패하였다.

 

하지만 전체 백업은 성공하였으며 DBCC CHECKDB 도 성공하였다. 트랜잭션 백업이 실패하였지만 전체 백업이 성공한 이유는 트랜잭션 로그의 아키텍처를 살펴보면 이해 할 수 있다.

 

트랜잭션 로그 백업은 마지막 트랜잭션 로그 백업 이후에 생성된 트랜잭션에 대해서만 백업한다. 그래서 손상된 부분의 백업을 시도하고 실패한다.

 

전체 데이터베이스 백업은 데이터베이스가 복원 및 복구할 때 일관성 있는 지점으로 복구 할 수 있도록 트랜잭션 로그를 가지고 있다. 즉 전체 백업 완료 이후 시점에서 가장 오래된 활성 트랜잭션의 시작 트랜잭션 로그를 확인하고 필요로 한다.

 

DBCC CHECK 작업은 일관성 검사를 위해 트랜잭션의 일관성 있는 뷰를 얻을 수 있는 데이터베이스 스냅숏을 사용한다. 이러한 데이터베이스 스냅샷 생성은 응급복구시 일관성을 유지를 위해 사용 할 수 있다. 즉 전체 백업이 실행 된 것처럼 전체 백업 이후 가장 오래된 활성 트랜잭션을 필요로 한다. 그래서 트랜잭션 백업이 실패하더라도 전체 백업은 가능하다.

 

그렇다면 트랜잭션 로그 파일이 손상되었을 때는 어떻게 해야 할까? 응급 상황의 경우 다음과 같은 방법으로 대처할 수 있다.

  1. 데이터베이스의 모든 사용자들의 활동을 중지 한다. (single user mode)
  2. 데이터베이스 모델을 심플로 변경 한다. (recovery mode simple)
  3. 데이터베이스 모델을 전체로 변경 한다. (recovery mode full)
  4. 전체 데이터베이스 백업을 수행 한다. (새로운 로그 백업 체인 시작)
  5. 로그 백업을 한다.

 

가장 중요한 것은 손상이 발생 된 근본적인 이유를 찾아서 해결하는 것이며 다시 발생하지 않도록 예방하는 것이다.

 

 

[참고자료]

http://www.sqlskills.com/blogs/paul/how-can-a-log-backup-fail-but-a-full-backup-succeed/

 




강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 22126
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12259
1934 확장이벤트를 사용하여 데드락 정보 확인 jevida(강성욱) 2016.10.15 1644
1933 확장 이벤트를 사용한 CPU 고부하 쿼리 추적 [1] jevida(강성욱) 2016.10.15 2207
1932 데이터에 대한 이해와 spill in tempdb jevida(강성욱) 2016.10.13 1805
1931 로그 파일이 많으면 왜 안 좋은가 jevida(강성욱) 2016.10.13 2109
» 트랜잭션 백업 실패와 전체 백업 성공 그리고 대처 방안 jevida(강성욱) 2016.10.13 1608
1929 Fast recovery 와 로그 잠금 jevida(강성욱) 2016.10.13 2056
1928 고스트 클린업 jevida(강성욱) 2016.10.13 2326
1927 페이지 분할이 발생 하였을 때 롤백을 하면 어떻게 될까? jevida(강성욱) 2016.10.13 1701
1926 DBCC WRITEPAGE - DBCC 명령을 사용한 데이터 파괴하기 jevida(강성욱) 2016.10.13 1675
1925 SQL Server Backup Error 3023 jevida(강성욱) 2016.10.13 2425
1924 Delete 작업과 페이지 offset 변화 jevida(강성욱) 2016.10.13 1525
1923 트랜잭션 로그 및 LSN을 이용한 삭제된 데이터 복구 jevida(강성욱) 2016.10.13 5787
1922 PFX 형식의 인증서를 SQL Server에서 사용하기 jevida(강성욱) 2016.10.13 1196
1921 SQL Server NUMA 메모리 노드와 Operating System 접근 jevida(강성욱) 2016.10.13 1362
1920 SQL Server 에러 핸들링 비용 비교 jevida(강성욱) 2016.10.13 1352
1919 압축 백업 시 Checksum 옵션으로 손상 확인하기 jevida(강성욱) 2016.10.13 1738
1918 SQL Server 2012 Memory Manager 구성 jevida(강성욱) 2016.10.13 1292
1917 SQL Server Memory Manager 변화 jevida(강성욱) 2016.10.13 1554
1916 Ring_Buffer_Resource_Monitor jevida(강성욱) 2016.10.13 1070
1915 SQL Server 프로파일러 템플릿 만들기 jevida(강성욱) 2016.10.13 1404





XE Login