백업 개요(SQL Server)
모든 복구 모델에서 전체 또는 부분 SQL Server 데이터베이스를 백업하거나 데이터베이스의 개별 파일 또는 파일 그룹을 백업할 수 있습니다. 테이블 수준 백업은 만들 수 없습니다.
[!참고]
SQL Server 백업 및 복원은 지원되는 모든 운영 체제(64비트 또는 32비트 시스템)에서 작동합니다. 지원되는 운영 체제에 대한 자세한 내용은 SQL Server 2008 R2 설치를 위한 하드웨어 및 소프트웨어 요구 사항을 참조하십시오.
데이터 백업
데이터 백업의 범위는 전체 데이터베이스, 부분 데이터베이스 또는 파일 집합이나 파일 그룹이 될 수 있습니다. 이들 각각에 대해 SQL Server에서는 전체 백업과 차등 백업을 지원합니다.
전체 백업
전체 백업은 특정 데이터베이스나 파일 그룹 또는 파일 집합에 있는 모든 데이터와 그러한 데이터를 복구할 수 있을 만큼의 로그를 포함합니다.
차등 백업
차등 백업은 최근의 전체 데이터 백업을 기반으로 합니다. 이를 차등 백업의 기반 또는 차등 기반이라고 합니다. 차등 기반은 읽기/쓰기 데이터의 전체 백업입니다. 차등 백업은 차등 기반 이후에 변경된 데이터만 포함합니다. 일반적으로 기본 백업을 수행한 후 얼마 지나지 않아 백업을 수행하면 전체 백업의 기반보다 더 작고 빠르게 차등 백업을 만들 수 있습니다. 따라서 차등 백업을 사용하면 데이터 손실 위험을 줄이기 위한 잦은 백업 생성 과정을 신속하게 진행할 수 있습니다. 일반적으로 차등 기반은 여러 개의 연속 차등 백업에 의해 사용됩니다. 복원할 때는 먼저 전체 백업이 복원된 다음 가장 최근의 차등 백업이 복원됩니다.
시간이 지나면서 데이터베이스가 업데이트됨에 따라 차등 백업에 포함되는 데이터의 양은 증가합니다. 따라서 백업을 만들고 복원하는 속도가 느려집니다. 결국 다른 일련의 차등 백업에 새 차등 기반을 제공하기 위해서는 다른 전체 백업을 만들어야 합니다.
[!참고]
일반적으로 차등 백업은 단일 차등 기반에 포함된 파일과 동일한 데이터 파일을 포함합니다. 단순 복구 모델에서 차등 백업의 차등 기반은 하나뿐입니다. 여러 기반을 사용하려고 하면 오류가 발생하고 백업 작업이 실패합니다. 전체 복구 모델에서는 차등 파일 백업이 여러 개의 기반을 사용할 수 있으나 관리에 어려움이 따를 수 있습니다. 자세한 내용은 다중 차등 기반 백업 작업을 참조하십시오.
각 데이터 백업은 백업이 해당 백업의 끝에 복구될 수 있도록 트랜잭션 로그의 일부를 포함합니다.
전체 복구 모델이나 대량 로그 복구 모델에서는 첫 번째 데이터 백업 후에 정기적인 트랜잭션 로그 백업이나 로그 백업이 필요합니다. 각 로그 백업은 백업이 생성된 당시 활성 상태였던 트랜잭션 로그의 일부를 포함하며 이전 로그 백업에서 백업되지 않은 모든 로그 레코드를 포함합니다.
데이터베이스 백업
데이터베이스 백업은 쉽게 사용할 수 있으며 크기가 적합한 모든 데이터베이스에 대해 권장됩니다. SQL Server에서는 다음과 같은 유형의 데이터베이스 백업을 지원합니다.
백업 유형 |
설명 |
---|---|
전체 데이터베이스의 전체 백업입니다. 데이터베이스 백업은 백업이 완료된 시점의 전체 데이터베이스를 나타냅니다. |
|
데이터베이스에 있는 모든 파일의 백업입니다. 이 백업에는 각 파일에 대한 가장 최근의 데이터베이스 백업 이후 수정된 데이터 익스텐트만 포함됩니다. |
부분 백업
부분 백업 및 차등 부분 백업은 SQL Server 2005에서 도입되었습니다. 이러한 백업은 단순 복구 모델에서 일부 읽기 전용 파일 그룹을 포함하는 데이터베이스 백업에 융통성을 제공하도록 디자인되었습니다. 하지만 이러한 백업은 모든 복구 모델에서 지원됩니다.
SQL Server 2008에서는 다음과 같은 유형의 파일 백업을 지원합니다.
파일 백업
데이터베이스의 파일을 개별적으로 백업하고 복원할 수 있습니다. 파일 백업을 사용하면 데이터베이스의 나머지 부분을 복원하지 않고 손상된 파일만 복원할 수 있으므로 복구 속도를 높일 수 있습니다. 예를 들어 데이터베이스가 서로 다른 디스크에 저장된 여러 개의 파일로 구성되어 있고 한 디스크에 오류가 있으면 오류가 있는 디스크의 파일만 복원하면 됩니다. 그러나 파일 백업을 계획하고 복원하는 작업은 복잡할 수 있으므로 복원 계획에 분명히 중요한 경우에만 파일 백업을 사용해야 합니다.
SQL Server에서는 다음과 같은 유형의 파일 백업을 지원합니다.
백업 유형 |
설명 |
---|---|
하나 이상의 파일 또는 파일 그룹에 있는 모든 데이터의 전체 백업입니다.
중요
단순 복구 모델에서 파일 백업은 기본적으로 읽기 전용 보조 파일 그룹으로 제한됩니다. 읽기/쓰기 파일 그룹의 파일 백업을 만들 수 있지만 읽기/쓰기 파일 백업을 복원하려면 먼저 파일 그룹을 읽기 전용으로 설정하고 차등 읽기 전용 파일 백업을 사용해야 합니다.
|
|
각 파일에 대한 가장 최근의 전체 백업 이후 변경된 데이터 익스텐트를 포함하는 하나 이상의 파일에 대한 백업입니다.
참고
단순 복구 모델에서 이 백업 유형은 전체 백업 이후 데이터가 읽기 전용으로 변경되었다고 가정합니다.
|
[!참고]
전체 텍스트 카탈로그를 백업 및 복원할 수 있습니다. 자세한 내용은 SQL Server 2008 전체 텍스트 카탈로그 백업 및 복원 및 증분 복원 및 전체 텍스트 인덱스를 참조하십시오.
트랜잭션 로그 백업(전체 및 대량 로그 복구 모델만 해당)
전체 복구 모델이나 대량 로그 복구 모델에서는 정기적인 트랜잭션 로그 백업이나 로그 백업이 필요합니다. 각 로그 백업은 백업이 생성되었을 당시 활성 상태인 트랜잭션 로그의 일부를 포함하며, 이전 로그 백업에서 백업되지 않은 모든 로그 레코드를 포함합니다. 연속 로그 백업은 데이터베이스의 손상되지 않은 완전한 로그 체인을 포함합니다. 전체 복구 모델에서, 때로는 대량 로그 복구 모델에서 손상되지 않은 로그 체인을 통해 데이터베이스를 임의의 시점으로 복원할 수 있습니다.
첫 번째 로그 백업을 만들려면 먼저 데이터베이스 백업과 같은 전체 백업을 만들어야 합니다. 그런 다음 트랜잭션 로그를 정기적으로 백업하여 작업 손실 가능성을 최소화할 뿐 아니라 트랜잭션 로그가 잘릴 수 있도록 해야 합니다. 자세한 내용은 트랜잭션 로그 백업 작업을 참조하십시오.
중요 |
---|
복원해야 하는 로그 백업의 수를 제한하려면 데이터를 정기적으로 백업해야 합니다. 예를 들어 주별 전체 데이터베이스 백업과 일별 차등 데이터베이스 백업을 예약할 수 있습니다. |
복사 전용 백업
일반적으로 백업을 수행하면 데이터베이스가 변경되므로 이후 백업이 복원되는 방식에 영향을 주게 됩니다. 그러나 백업 전체에 영향을 주지 않고 특별한 용도로 백업을 수행한 다음 데이터베이스에 대한 프로시저를 복원하는 것이 유용할 수도 있습니다. SQL Server 2005에서는 이러한 용도로 복사 전용 백업을 제공합니다. 이러한 백업은 정기적인 SQL Server 백업 시퀀스에 독립적입니다. 자세한 내용은 복사 전용 백업을 참조하십시오.
백업 장치
SQL Server 백업은 디스크 파일이나 테이프 미디어와 같은 백업 장치에서 생성됩니다. 새 백업을 장치에 있는 기존 백업에 추가하거나 기존 백업을 덮어쓸 수 있습니다. 자세한 내용은 SQL Server에서 백업 미디어 작업을 참조하십시오.
백업 예약
백업 작업을 수행해도 실행 중인 트랜잭션에는 큰 영향을 미치지 않으므로 일반 작업을 수행할 때도 백업 작업을 실행할 수 있습니다. SQL Server는 백업 작업 중에 데이터베이스 파일에서 백업 장치로 직접 데이터를 복사합니다. 데이터는 변경되지 않으며 백업 작업 중 실행 중인 트랜잭션은 지연되지 않습니다. 따라서 프로덕션 작업에 거의 영향을 주지 않고 SQL Server 백업을 수행할 수 있습니다. 백업을 수행하는 동시에 실행할 수 없는 작업에 대한 자세한 내용은 이 항목의 뒷부분에 나오는 "SQL Server에서의 백업 작업에 대한 제한 사항"을 참조하십시오.
백업 작업이 설정된 간격으로 자동 실행되도록 예약할 수 있습니다. 데이터베이스 백업과 로그 백업에 대한 백업 작업을 예약하는 방법은 유지 관리 계획 마법사를 참조하십시오.
백업 압축
SQL Server 2008 Enterprise 이상 버전에서 압축 백업을 지원하며, 모든 SQL Server 2008 이상 버전에서 압축된 백업을 복원할 수 있습니다. 자세한 내용은 백업 압축(SQL Server)을 참조하십시오.
SQL Server에서의 백업 작업에 대한 제한 사항
SQL Server 2005 이상 버전에서 백업은 데이터베이스가 온라인 상태이며 사용 중인 경우 발생할 수 있습니다. 그러나 다음과 같은 제한 사항이 있습니다.
오프라인 데이터는 백업할 수 없음
오프라인 데이터를 암시적으로 또는 명시적으로 참조하는 백업 작업은 실패합니다. 그러한 경우를 몇 가지 예로 들면 다음과 같습니다.
전체 데이터베이스 백업을 요청하지만 데이터베이스의 파일 그룹 한 개가 오프라인입니다. 모든 파일 그룹이 암시적으로 전체 데이터베이스 백업에 포함되므로 이 작업은 실패합니다.
이 데이터베이스를 백업하려면 파일 백업을 사용하고 온라인 파일 그룹만 지정합니다.
부분 백업을 요청하지만 읽기/쓰기 파일 그룹이 오프라인입니다. 부분 백업에는 모든 읽기/쓰기 파일 그룹이 필요하므로 작업은 실패합니다.
특정 파일의 파일 백업을 요청하지만 파일 중 하나가 온라인이 아닙니다. 작업은 실패합니다. 온라인 파일을 백업하려면 파일 목록에서 오프라인 파일을 생략하고 작업을 반복합니다.
일반적으로 로그 백업은 하나 이상의 데이터 파일을 사용할 수 없더라도 성공적으로 수행됩니다. 그러나 일부 파일에 대량 로그 복구 모델에서 수행된 대량 로그 변경 내용이 포함되어 있는 경우 모든 파일이 온라인 상태에 있어야 백업이 성공합니다.
백업 중 동시성 제한 사항
SQL Server에서는 온라인 백업 프로세스를 사용하여 데이터베이스가 사용 중일 때도 데이터베이스 백업을 수행할 수 있습니다. 백업 시 대부분의 작업을 수행할 수 있습니다. 예를 들어 INSERT, UPDATE 또는 DELETE 문은 백업 작업 시에도 사용할 수 있습니다. 그러나 데이터베이스 파일을 만들거나 삭제하는 동안 백업 작업을 시작하려고 하면 만들기 또는 삭제 작업이 완료되거나 백업 시간 제한이 초과될 때까지 백업 작업이 대기합니다.
데이터베이스 백업 또는 트랜잭션 로그 백업 시에 실행할 수 없는 작업은 다음과 같습니다.
ADD FILE이나 REMOVE FILE 옵션과 함께 사용되는 ALTER DATABASE 문 등의 파일 관리 작업
데이터베이스 축소 또는 파일 축소 작업. 자동 축소 작업도 포함됩니다.
백업 작업이 진행 중일 때는 데이터베이스 파일을 만들거나 삭제하려고 해도 해당 작업이 실패합니다.
백업 작업이 파일 관리 작업 또는 축소 작업과 겹치면 충돌이 발생합니다. 충돌하는 작업 중 어떤 작업이 먼저 시작되었는지에 관계없이 두 번째 작업은 첫 번째 작업에서 설정한 잠금 제한 시간이 초과될 때까지 대기합니다. 제한 시간은 세션 제한 시간 설정에서 제어합니다. 제한 시간 동안에 잠금이 해제되면 두 번째 작업이 계속됩니다. 잠금 제한 시간이 초과되면 두 번째 작업이 실패합니다.
[!참고]
백업을 만드는 방법은 SQL Server 데이터베이스의 전체 및 차등 백업 만들기 및 트랜잭션 로그 백업 작업을 참조하십시오.