전체 백업과 복사 전용 전체 백업의 차이점


17

SQL Server Central 스레드에서 보았습니다 . 전체 백업이 로그를 자르나요? 해당 전체 백업은 로그를 자르지 않습니다.

아니요. 전체 또는 차등 백업은 트랜잭션 로그를 자르지 않습니다. - 린 페티
아니오 - 전체 백업은 로그를 절단하지 않습니다. - 채드 크로포드

전체 백업과 복사 전용 전체 백업의 차이점은 무엇입니까?

로그 백업에는 로그를 자르지 않고 로그 체인이 손상되는 것을 방지하는 복사 전용 백업이 있습니다. 그렇다면 복사 전용 전체 백업이란 무엇입니까?

답변:


14

최소한 차등 백업을 고려해야합니다. 전체 복사 전용을 사용하지 않으면 다음 diff 백업이 해제됩니다. 복사 전용 백업 :

복사 전용 전체 백업 (모든 복구 모델) 복사 전용 백업은 차등 기반 또는 차등 백업으로 사용할 수 없으며 차등 기반에 영향을 미치지 않습니다.

전체 복사와 전체 복사의 유일한 차이점은 전체 복사가 차동 체인을 중단하지 않는다는 것입니다. 둘 다 로그 파일을 자르지 않으므로 로그 체인을 끊지 않습니다.


24

전체 백업과 복사 전용 백업의 주요 차이점은 LSN (Log Sequence Number), 특히 DatabaseBackupLSN업데이트 여부입니다.

전체 백업을 수행 DatabaseBackupLSN하면가 업데이트됩니다. 전체 백업을 수행 한 후, 차등 백업을 수행하는 경우 해당 백업 DatabaseBackupLSN에 전체 백업의 백업과 일치 하는 백업이 있으므로 SQL은 두 백업을 서로 연결할 수 있습니다 (예를 들어, LSN에서 diff가 전체를 따랐다는 것을 알 수 있습니다).

백업 실행을 예약했을 때 문제가 발생하므로 초기 전체 백업과 차등 순차가 있습니다. 전체 백업을 수동으로 수행하는 경우 LSN을 업데이트 한 다음 그 시점부터 예약 된 백업을 통해 수행하는 각 차등 백업은 원래 백업이 아닌 새 LSN을 참조합니다. 복원이 필요한 경우 예약 된 전체 백업을 복원 할 수 있지만 수동 작업 후에 수행 된 차등 백업을 복원하려고하면 LSN이 더 이상 일치하지 않으므로 실패합니다.

복사 전용 백업에서는을 건드리지 않으므로 해당 백업 DatabaseBackupLSN체인을 손상시키지 않습니다.

Michael K. Campbell 의 백업 체인 깨기 – REDUX (또는 먹는 까마귀) 에서 많은 사람들 이이 문제를 잘못 이해하는 이유 는 다음과 같습니다.

SQLmag 이미지-전체 백업 v Copy_Only 백업

서로 다른 4 개의 LSN과 사용 방법에 대한 자세한 설명은 Simon Liew의 백업용 SQL Server 로그 시퀀스 번호 이해를 참조하십시오 .

이 문제를 피하는 방법은 데이터베이스의 표준 백업을 수행하는 작업이 두 개 이상 없도록하는 것입니다. 모든 임시 또는 보조 백업은 복사 전용 옵션으로 수행해야합니다. 자세한 내용은 복사 전용 백업 (SQL Server) 을 참조하십시오. 그러나 기본적으로 WITH COPY_ONLY명령에 지정된 T-SQL을 통해 SSMS의 "백업 전용 백업"옵션을 사용 합니다 또는 PowerShell과 함께 -CopyOnly매개 변수를 사용하십시오 .


1
추가 : 실질적으로 사본 만 백업 이외의 목적으로 백업 할 수 있습니다. 고객의 경우 백업은 엔터프라이즈 백업 시스템에 자동으로 수행됩니다. 복원은 PAINFULL, 특히 다른 환경 (종이, 하루 중 수행)으로 복구하는 것입니다. COPY ON으로 만 엔터프라이즈 백업에서 관리하는 백업을 방해하지 않고 사본을 만든 다음 테스트 환경으로 복원 할 수 있습니다.
TomTom

12

예약 된 백업이있는 데이터베이스가 있다고 가정하십시오. 전체 백업은 24 시간에 00:00에 한 번 실행되며 6 시간마다 실행되는 차등 백업과 1 시간마다 실행되는 트랜잭션 로그 백업도 있습니다. 따라서 다른 서버를 복원하기 위해 하루 중 여분의 전체 백업을해야하는 경우 어떻게해야합니까? 이 경우 어떻게해야합니까? 물론 전체 백업을 만들 수 있습니다.

BACKUP DATABASE Test TO DISK = 'C:/Test.bak'

그러나 데이터베이스를 백업 할 때 다음 백업의 복원 방법에 영향을 미치는 일부 변경 사항이 있습니다 (차등 백업 및 트랜잭션 로그 백업은 모두 복원 작업 방법에 영향을 미침). 이 경우 다음의 모든 차등 백업은 마지막 전체 백업에 의존합니다. 마지막 전체 백업이 유실되면 데이터베이스 복원이 불가능합니다.여기에 이미지 설명을 입력하십시오

그러나 해당 데이터베이스의 다음 백업 또는 복원 프로세스에 영향을 미치지 않는 백업을 어떻게 만들 수 있습니까? 여기에서 복사 전용 백업이 이루어집니다.

BACKUP DATABASE Test TO DISK = 'C:\Test.bak' WITH COPY_ONLY

여기에 이미지 설명을 입력하십시오


2

전체 백업과 일련의 로그 파일 백업이있는 경우 LSN (Log Sequence Number)을 사용하여 로그 체인이 유지됩니다. 로그 체인을 중단하지 않고 백업을 수행하려면 복사 전용 백업을 수행하십시오.

복사 전용 백업을 수행하지 않으면 로그 체인이 손상되고 수행 한 백업이 최신 전체 백업이됩니다. 이는 이전 로그 백업을 새로 가져온 전체 백업에 적용 할 수 없음을 의미합니다. 로그 체인은 대부분 특정 시점 복구 또는 로그 전달 시나리오를 위해 유지 보수됩니다.

예를 들어, 6 시간 (자정, 오전 6시, 정오, 오후 6시)마다 전체 백업을 수행하고 15 분마다 로그 백업을 수행하는 백업 시나리오가 있다고 가정하십시오. 오전 9시에 DB 사본을 테스트 서버에 배치하도록 요청합니다. 로그 체인을 중단하거나 백업 작업을 방해하지 않고 백업을 수행하려고합니다. 이것은 복사 전용 백업을 수행 할 때입니다. 사본 전용 백업은 일반 백업 세트를 방해하지 않습니다.


1
복사 전용 백업 효과 로그 체인을 생각하지 않습니다. 복사 전용 전체 백업은 차등 기반을 재설정하지 않습니다. 이것이 유일한 차이점입니다. 다음 링크 참조 : sqlservercentral.com/Forums/Topic1471058-391-1.aspx?Update=1sqlinthewild.co.za/index.php/2011/03/08/…
IT 연구원

1
나는 당신의 대답에 동의하지 않았습니다. 전체 백업과 복사 전용 전체 백업은 모두 로그 체인을 손상시키지 않습니다. '차등 기반을 재설정하지 않음'외에 사본 전용 전체 백업은 모든면에서 일반 전체 백업과 정확히 동일합니다. 이전 의견에서 언급 한 포럼 링크를 참조하십시오.
IT 연구원

전체 백업 : FB1 및 3 개의 로그 백업 : LB1, LB2, LB3이 있다고 가정합니다. 이제 수동 전체 백업 : FB2 (copy_only없이)를 수행하십시오. 3 개의 추가 로그 백업 (LB4, LB5, LB6)을 기다립니다. 이제 FB2를 삭제하십시오. FB1 + LB1 + LB2 + LB3 + LB4 + LB5 + LB6을 복원 할 수 있습니까?
StanleyJohns

예, 복원 할 수 있습니다. 나는 전체 백업 (복사 전용 아님) FB1, 로그 백업 (LB1), 전체 백업 (복사 전용 아님) FB2를 취한 다음 다시 백업 (LB2)을 기록했습니다. 그런 다음이 시퀀스 FB1 + LB1 + LB2에서 복원했습니다. 올바르게 복원되었으며 모든 행이 올바르게 입력되었습니다.
IT 연구원

2
전체 백업이있는 복사 전용 옵션은 LSN 체인과 관련이 없으므로 -1입니다. Itresearcher가 지적했지만 답변을 업데이트 / 삭제하지 않았습니다.
Edward Dortland

0

전체 백업 및 복사 전용 백업은 로그 체인을 손상시키지 않습니다. tlog 백업을 수행하는 경우에만 LSN 불일치가 발생합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.