SQL Server 데이터베이스 백업 및 복원
이 항목에서는 SQL Server 데이터베이스 백업의 이점과 기본 백업 및 복원 용어에 대해 설명하고 SQL Server에 대한 백업 및 복원 전략과 SQL Server 백업 및 복원을 위한 보안 고려 사항에 대해 소개합니다.
SQL Server 백업 및 복원 구성 요소는 SQL Server 데이터베이스에 저장된 중요한 데이터를 보호하기 위한 필수 보호 방법을 제공합니다. 치명적인 데이터 손실 위험을 최소화하기 위해서는 데이터베이스를 정기적으로 백업하여 수정된 데이터를 유지해야 합니다. 백업 및 복원 전략을 적절하게 계획하면 다양한 오류로 인해 데이터베이스의 데이터가 손실되는 것을 방지할 수 있습니다. 일련의 백업 복원과 데이터베이스 복구를 통해 전략을 테스트하여 재해에 효과적으로 대처할 수 있습니다.
[!참고]
SQL Server 2012 SP1 누적 업데이트 2부터 Windows Azure Blob 저장소 서비스로 SQL Server 백업이 지원됩니다. 자세한 내용은 백업 및 복원 향상 및 Windows Azure Blob 저장소 서비스로 SQL Server 백업 및 복원을 참조하십시오.
Windows Azure SQL 데이터베이스, SQL Server Data Tools 및 SQL Server Management Studio 관련 일반적인 고객 문제에 대한 해결 방법은 데이터베이스 수명 주기 관리를 참조하십시오.
항목 내용:
이점
구성 요소 및 개념
백업 및 복원 전략 소개
관련 태스크
이점
SQL Server 데이터베이스를 백업하고 백업에 대한 테스트 복원 절차를 실행한 다음 안전한 오프 사이트 위치에 백업을 저장하여 치명적인 데이터 손실을 방지할 수 있습니다.
중요 이렇게 하는 것이 SQL Server 데이터를 안정적으로 보호하는 유일한 방법입니다.
유효한 데이터베이스 백업을 사용하여 다음의 여러 오류로부터 데이터를 복구할 수 있습니다.
미디어 오류
사용자 오류(예: 실수로 테이블 삭제)
하드웨어 오류(예: 손상된 디스크 드라이브 또는 서버의 영구적 손실)
자연 재해
또한 데이터베이스 백업은 서버 간 데이터베이스 복사, AlwaysOn 가용성 그룹 또는 데이터베이스 미러링 설정, 보관 등의 일상적인 관리 용도로 유용하게 사용할 수 있습니다.
[맨 위로]
구성 요소 및 개념
백업[동사]
데이터 또는 로그 레코드를 SQL Server 데이터베이스 또는 해당 트랜잭션 로그에서 백업 장치(예: 디스크)로 복사하여 데이터 백업 또는 로그 백업을 만들 수 있습니다.백업[명사]
오류가 발생한 이후에 데이터를 복원 및 복구하는 데 사용할 수 있는 데이터 복사본입니다. 데이터베이스 백업을 사용하여 데이터베이스 복사본을 새 위치에 복원할 수도 있습니다.백업 장치(backup device)
SQL Server 백업이 기록되는 대상이자 백업을 복원하는 원본이 되는 디스크 또는 테이프 장치입니다.백업 미디어
하나 이상의 백업이 기록된 하나 이상의 테이프 또는 디스크 파일입니다.데이터 백업(data backup)
전체 데이터베이스(데이터베이스 백업), 부분 데이터베이스(부분 백업) 또는 파일 집합이나 파일 그룹(파일 백업)의 데이터 백업입니다.데이터베이스 백업(database backup)
데이터베이스 백업입니다. 전체 데이터베이스 백업은 백업이 완료된 시점의 전체 데이터베이스를 나타냅니다. 차등 데이터베이스 백업은 가장 최근의 전체 데이터베이스 백업 이후에 데이터베이스에 수행된 변경 내용만 포함합니다.차등 백업(differential backup)
전체 또는 부분 데이터베이스, 데이터 파일 집합 또는 파일 그룹(차등 기반)에 대한 최신 전체 백업을 기반으로 하고, 해당 기준 이후에 변경된 데이터만 포함하는 데이터 백업입니다.전체 백업(full backup)
특정 데이터베이스나 파일 그룹 또는 파일 집합에 있는 모든 데이터와 그러한 데이터를 복구할 수 있을 만큼의 로그를 포함하는 데이터 백업입니다.로그 백업(log backup)
이전 로그 백업에서 백업되지 않은 모든 로그 레코드를 포함하는 트랜잭션 로그 백업입니다. (전체 복구 모델)복구
데이터베이스를 안정적이고 일관된 상태로 되돌립니다.복구(recovery)
데이터베이스를 일관된 트랜잭션 상태로 가져오는 데이터베이스 시작 단계 또는 restore with recovery 단계입니다.복구 모델
데이터베이스에서 트랜잭션 로그 유지 관리를 제어하는 데이터베이스 속성입니다. 사용할 수 있는 복구 모델은 3가지로 단순, 전체 및 대량 로그 복구 모델입니다. 데이터베이스의 복구 모델에 따라 백업 및 복원 요구 사항이 결정됩니다.복원(restore)
지정된 SQL Server 백업에서 지정된 데이터베이스로 모든 데이터 및 로그 페이지를 복사하고 기록된 변경 사항을 적용하여 데이터를 최신 상태로 전환함으로써 백업에 기록된 모든 트랜잭션을 롤포워드하는 다단계 프로세스입니다.
[맨 위로]
백업 및 복원 전략 소개
데이터 백업 및 복원은 특정 환경에 맞게 사용자 지정되어야 하며 적절한 리소스도 마련되어야 합니다. 따라서 복구를 위해 백업 및 복원을 안정적으로 사용하려면 백업 및 복원 전략이 필요합니다. 잘 디자인된 백업 및 복원 전략은 사용자의 특정 비즈니스 요구 사항을 감안해 데이터 가용성을 극대화하고 데이터 손실을 최소화합니다.
중요 |
---|
데이터베이스와 백업을 서로 다른 장치에 배치하십시오. 그렇지 않으면 데이터베이스가 들어 있는 장치가 실패할 경우 백업을 사용할 수 없습니다. 데이터와 백업을 서로 다른 장치에 배치하면 백업 작성 및 데이터베이스의 프로덕션 사용에 대한 I/O 성능도 향상됩니다. |
백업 및 복원 전략은 백업에 관련된 부분과 복원에 관련된 부분으로 이루어집니다. 전략의 백업 관련 부분에서는 백업 유형 및 빈도, 백업에 필요한 하드웨어의 특성 및 속도, 백업 테스트 방법 및 백업 미디어 보관 위치 및 보관 방법(보안 고려 사항 포함)을 정의합니다. 전략의 복원 관련 부분에서는 누가 복원을 담당할 것이며 어떻게 데이터베이스 가용성 목표를 충족시키고 데이터 손실을 최소화할 것인가를 정의합니다. 백업 및 복원 절차를 문서화하고 실행 문서에 사본을 보관하는 것이 좋습니다.
효과적인 백업 및 복원 전략 설계를 위해서는 신중한 계획, 구현 및 테스트가 필요합니다. 테스트는 반드시 필요합니다. 복원 전략에 포함된 모든 조합의 백업을 성공적으로 복원해야만 백업 전략을 갖추게 됩니다. 다음과 같은 다양한 요소를 고려해야 합니다.
데이터베이스에 대한 사용자 조직의 생산성 목표(특히 가용성 및 데이터 손실 방지 요구 사항)
크기, 사용 패턴, 내용의 특성, 데이터 요구 사항 등과 같은 각 데이터베이스의 특성
하드웨어, 인력, 백업 미디어 저장 공간, 저장된 미디어의 물리적 보안 등과 같은 리소스의 제약 요건
[!참고]
SQL Server 디스크상 저장소 형식은 64비트 및 32비트 환경에서 동일합니다. 따라서 32비트 및 64비트 환경에서 백업 및 복원 작업을 수행할 수 있습니다. 한 환경에서 실행 중인 서버 인스턴스에서 만든 백업을 다른 환경에서 실행하는 서버 인스턴스에서 복원할 수 있습니다.
[맨 위로]
백업 및 복원에 대한 복구 모델의 영향
백업 및 복원 작업은 복구 모델의 컨텍스트에서 수행됩니다. 복구 모델은 트랜잭션 로그의 관리 방법을 제어하는 데이터베이스 속성입니다. 또한 데이터베이스의 복구 모델은 데이터베이스에 지원되는 복원 시나리오 및 백업 유형을 결정합니다. 일반적으로 데이터베이스는 단순 복구 모델 또는 전체 복구 모델 모두 사용합니다. 전체 복구 모델은 대량 작업 이전에 대량 로그 복구 모델로 전환하여 보완될 수 있습니다. 이러한 복구 모델 및 이러한 복구 모델이 트랜잭션 로그 관리에 미치는 영향에 대한 자세한 내용은 트랜잭션 로그(SQL Server)를 참조하십시오.
데이터베이스에 가장 적합한 복구 모델은 비즈니스 요구 사항에 따라 달라집니다. 트랜잭션 로그 관리를 방지하고 백업 및 복원을 단순화하려면 단순 복구 모델을 사용하십시오. 관리 오버헤드가 증가하더라도 작업 손실 가능성을 최소화하려면 전체 복구 모델을 사용하십시오. 백업 및 복원에 미치는 복구 모델의 영향에 대한 자세한 내용은 백업 개요(SQL Server)를 참조하십시오.
백업 전략 디자인
지정한 데이터베이스에 대해 비즈니스 요구 사항에 맞는 복구 모델을 선택한 후에는 해당 백업 전략을 계획 및 구현해야 합니다. 백업 전략을 최적화하는 요소는 다양합니다. 그 중에서도 특히 다음과 같은 요소에 의해 주로 영향을 받습니다.
응용 프로그램이 하루에 몇 시간 데이터베이스에 액세스해야 합니까?
사용량이 적은 기간을 예측할 수 있는 경우 해당 기간에 전체 데이터베이스 백업을 예약하는 것이 좋습니다.
얼마나 자주 변경과 업데이트가 발생합니까?
자주 변경하는 경우 다음을 고려하십시오.
단순 복구 모델에서는 전체 데이터베이스 백업 사이에 차등 백업을 예약하십시오. 차등 백업은 마지막 전체 데이터베이스 백업 이후의 변경 내용만 캡처합니다.
전체 복구 모델에서는 자주 로그 백업을 예약해야 합니다. 전체 백업 사이에 차등 백업을 예약하면 데이터를 복원한 후 복원해야 하는 로그 백업 수가 감소하므로 복원 시간이 줄어들 수 있습니다.
변경이 데이터베이스의 일부분에서만 발생합니까? 아니면 데이터베이스의 대부분에서 발생합니까?
변경 내용이 파일 또는 파일 그룹의 일부분에만 집중되어 있는 큰 데이터베이스의 경우 부분 백업이나 파일 백업이 유용할 수 있습니다. 자세한 내용은 부분 백업(SQL Server) 및 전체 파일 백업(SQL Server)을 참조하십시오.
전체 데이터베이스 백업에 필요한 디스크 공간은 어느 정도입니까?
자세한 내용은 이 항목의 뒷부분에 나오는 전체 데이터베이스 백업의 크기 예측을 참조하십시오.
전체 데이터베이스 백업의 크기 예측
백업 및 복원을 구현하기 전에 전체 데이터베이스 백업에 어느 정도의 디스크 공간이 필요한지 예측해야 합니다. 백업 작업은 데이터베이스의 데이터를 백업 파일로 복사합니다. 백업에는 데이터베이스의 실제 데이터만 포함되고 사용하지 않은 공간은 포함되지 않습니다. 따라서 백업은 일반적으로 데이터베이스 자체의 크기보다 작습니다. sp_spaceused 시스템 저장 프로시저를 사용하여 전체 데이터베이스 백업의 크기를 예측할 수 있습니다. 자세한 내용은 sp_spaceused(Transact-SQL)를 참조하십시오.
백업 예약
백업 작업을 수행해도 실행 중인 트랜잭션에는 큰 영향을 미치지 않으므로 일반 작업을 수행할 때도 백업 작업을 실행할 수 있습니다. 프로덕션 작업에 거의 영향을 주지 않고 SQL Server 백업을 수행할 수 있습니다.
[!참고]
백업 중 동시성 제한 사항에 대한 자세한 내용은 백업 개요(SQL Server)를 참조하십시오.
각 경우에 필요한 백업 유형과 수행 빈도를 결정한 후 데이터베이스 유지 관리 계획의 일부로 데이터베이스에 대한 정기 백업을 예약하는 것이 좋습니다. 유지 관리 계획에 대한 정보와 데이터베이스 백업 및 로그 백업에 대한 유지 관리 계획을 만드는 방법은 유지 관리 계획 마법사 사용를 참조하십시오.
백업 테스트
백업을 테스트해야만 복원 전략을 갖추게 됩니다. 데이터베이스 복사본을 테스트 시스템으로 복원하여 각 데이터베이스에 대한 백업 전략을 철저히 테스트하는 것이 중요합니다. 사용할 모든 유형의 백업 복원을 테스트해야 합니다.
각 데이터베이스에 대한 작업 매뉴얼을 작성하여 관리하는 것이 좋습니다. 이 작업 매뉴얼에는 백업 위치, 백업 장치 이름(있는 경우) 및 테스트 백업을 복원하는 데 필요한 시간 등이 수록되어야 합니다.
관련 태스크
백업 작업 예약
백업 장치 및 백업 미디어 사용
백업 만들기
[!참고]
부분 또는 복사 전용 백업의 경우 각각 PARTIAL 또는 COPY_ONLY 옵션과 함께 Transact-SQL BACKUP 문을 사용해야 합니다.
SQL Server Management Studio 사용
Transact-SQL 사용
[맨 위로]
데이터 백업 복원
SQL Server Management Studio 사용
Transact-SQL 사용
[맨 위로]
트랜잭션 로그 복원(전체 복구 모델)
SQL Server Management Studio 사용
Transact-SQL 사용
[맨 위로]
추가 복원 태스크
Transact-SQL 사용
[맨 위로]