전체 데이터베이스 백업

전체 데이터베이스 백업은 전체 데이터베이스를 백업합니다. 여기에는 전체 데이터베이스 백업을 복구할 수 있도록 트랜잭션 로그의 부분이 포함됩니다. 전체 데이터베이스 백업은 백업 완료 시점의 데이터베이스를 나타냅니다.

[!참고]

여러 유형의 백업에 대한 개요는 단순 복구 모델에서의 백업 또는 전체 복구 모델에서의 백업을 참조하십시오.

데이터베이스 백업은 사용하기 쉽습니다. 전체 데이터베이스 백업에는 데이터베이스의 모든 데이터가 포함됩니다. 신속하게 백업할 수 있는 작은 데이터베이스의 경우 최상의 방법으로 전체 데이터베이스 백업을 사용하는 것입니다. 그러나 데이터베이스가 커짐에 따라 전체 백업은 완료하는 데 시간이 오래 걸리고 저장 공간도 더 많이 필요하게 됩니다. 따라서 큰 데이터베이스의 경우 차등 백업으로 전체 데이터베이스 백업을 보완할 수 있습니다. 자세한 내용은 차등 데이터베이스 백업을 참조하십시오.

[!참고]

데이터베이스 백업에서 TRUSTWORTHY는 OFF로 설정되어 있습니다. TRUSTWORTHY를 ON으로 설정하는 방법은 ALTER DATABASE(Transact-SQL)를 참조하십시오.

단순 복구 모델에서 데이터베이스 백업 사용

단순 복구 모델에서는 각 백업 후 재해가 발생할 경우 데이터베이스가 잠재적 작업 손실 위험에 노출될 수 있습니다. 다음 전체 백업이 시작되어 작업 손실 가능성이 다시 0이 되고 새 작업 손실 가능성 주기가 시작될 때까지 작업 손실 가능성은 업데이트를 수행할 때마다 커집니다.

단순 복구 모델에서는 시간 경과에 따라 백업 사이의 작업 손실 가능성이 증가합니다. 다음 그림에서는 전체 데이터베이스 백업만 사용하는 백업 전략의 작업 손실 가능성을 보여 줍니다.

데이터베이스 백업 간의 작업 손실 가능성 표시

다음 예에서는 기존 백업을 덮어쓰고 새 미디어 세트를 만들기 위해 WITH FORMAT을 사용하여 전체 데이터베이스 백업을 만드는 방법을 보여 줍니다.

-- Back up the AdventureWorks2008R2 database to new media set.
BACKUP DATABASE AdventureWorks2008R2
    TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2SimpleRM.bak' 
    WITH FORMAT;
GO

전체 복구 모델에서 데이터베이스 백업 사용

전체 및 대량 로그 복구를 사용하는 데이터베이스의 경우 트랜잭션 로그 백업이 필요합니다. 다음 그림에서는 전체 복구 모델에서 사용 가능한 가장 단순한 백업 전략을 보여 줍니다.

일련의 전체 데이터베이스 백업 및 로그 백업

[!참고]

논리적으로 일치해야 하는 전체 복구 모델 데이터베이스가 둘 이상이면 이 데이터베이스의 복구 가능성을 확인하는 특수 절차를 구현해야 합니다. 자세한 내용은 표시된 트랜잭션 사용(전체 복구 모델)을 참조하십시오.

로그 백업을 만드는 방법은 트랜잭션 로그 백업 작업을 참조하십시오.

다음 예에서는 기존 백업을 덮어쓰고 새 미디어 세트를 만들기 위해 WITH FORMAT을 사용하여 전체 데이터베이스 백업을 만드는 방법을 보여 줍니다. 그런 다음 트랜잭션 로그를 백업합니다. 실제 상황에서는 일련의 정기적인 로그 백업을 수행해야 합니다. 이 예의 경우 AdventureWorks2008R2 예제 데이터베이스는 전체 복구 모델을 사용하도록 설정됩니다.

USE master;
ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL;
GO
-- Back up the AdventureWorks2008R2 database to new media set (backup set 1).
BACKUP DATABASE AdventureWorks2008R2
  TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak' 
  WITH FORMAT;
GO
--Create a routine log backup (backup set 2).
BACKUP LOG AdventureWorks2008R2 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak';
GO

전체 데이터베이스 백업 만들기

전체 데이터베이스 백업은 한 번의 작업으로 생성되며 일반적으로 지정된 간격으로 발생하도록 예약되어 있습니다.

전체 데이터베이스 백업을 만드는 데 필요한 BACKUP 구문은 다음과 같습니다.

BACKUP DATABASE database_name TO backup_device

전체 데이터베이스 백업을 만들려면

백업 작업을 예약하려면

차등 데이터베이스 백업 사용

데이터베이스 백업은 차등 데이터베이스 백업의 차등 기반으로 사용될 수 있습니다. 이렇게 하면 데이터베이스 백업을 소수의 차등 데이터베이스 백업으로 보충할 수 있습니다. 자세한 내용은 차등 백업 사용차등 데이터베이스 백업을 참조하십시오.

전체 데이터베이스 백업을 사용하여 데이터베이스 복원

전체 데이터베이스 백업에서 임의 위치로 데이터베이스를 복원하여 전체 데이터베이스를 한 번에 다시 만들 수 있습니다. 충분한 트랜잭션 로그가 백업에 포함되어 있으므로 백업 완료 시점에 데이터베이스를 복구할 수 있습니다. 데이터베이스가 복구되면 커밋되지 않은 트랜잭션이 롤백됩니다. 복원된 데이터베이스는 커밋되지 않은 트랜잭션을 제외하면 복원된 백업이 완료된 당시의 원래 데이터베이스 상태와 일치합니다.

복원 작업은 지정된 대상에 데이터베이스를 만듭니다. 데이터베이스가 지정된 위치에 이미 있으면 복원 작업은 기존 데이터베이스를 덮어씁니다. 기존 데이터베이스를 덮어쓰지 않으려면 복원된 데이터베이스에 대해 다른 이름을 지정합니다.

자세한 내용은 전체 데이터베이스 복원 수행(단순 복구 모델) 또는 전체 데이터베이스 복원 수행(전체 복구 모델)을 참조하십시오.