Azure SQL Database의 백업에서 데이터베이스 복원
적용 대상: Azure SQL Database
이 문서에서는 하이퍼스케일 데이터베이스를 포함하여 Azure SQL Database의 백업에서 데이터베이스를 복구하는 단계를 제공합니다.
개요
자동 데이터베이스 백업은 사용자 및 애플리케이션 오류, 우발적인 데이터베이스 삭제, 장시간의 가동 중단으로부터 데이터베이스를 보호합니다. 이 기본 제공 기능은 모든 서비스 계층 및 컴퓨팅 크기에 사용할 수 있습니다. 다음 옵션은 자동화된 백업을 통한 데이터베이스 복구에 사용할 수 있습니다.
- 특정 시점 복원을 사용하여 보존 기간 내에 지정된 시점으로 복구된 새 데이터베이스를 동일한 서버에 생성합니다.
- 동일한 서버에 삭제된 데이터베이스의 삭제 시간으로 복구된 데이터베이스를 만듭니다.
- 장기 보존 복원 또는 지역 복원을 통해 최근 백업 시점으로 복구된 동일한 지역의 모든 서버에 새 데이터베이스를 만듭니다.
- 다른 지역의 모든 서버에 새 데이터베이스를 만들고, 지역 복원을 통해 가장 최근에 복제된 백업 시점으로 복구합니다.
LTR(장기 보존)을 구성한 경우 모든 서버의 장기 보존 백업에서 새 데이터베이스를 만들 수도 있습니다.
중요
- 복원하는 동안 기존 데이터베이스를 덮어쓸 수는 없습니다.
- 데이터베이스 복원 작업은 원래 데이터베이스의 태그를 복원하지 않습니다.
DTU 구매 모델에서 표준 또는 프리미엄 서비스 계층을 사용하는 경우 데이터베이스 복원에 추가 스토리지 비용이 발생할 수 있습니다. 복원된 데이터베이스의 최대 크기가 대상 데이터베이스의 서비스 계층 및 서비스 목표에 포함된 스토리지 용량보다 큰 경우 추가 비용이 발생합니다.
추가 스토리지에 대한 가격 책정 정보는 SQL Database 가격 책정 페이지를 참조하세요. 실제 사용된 공간의 크기가 포함된 스토리지의 크기보다 작은 경우 데이터베이스 최대 크기를 포함된 크기로 설정하면 이러한 추가 비용을 방지할 수 있습니다.
복구 시간
자동화된 데이터베이스 백업을 통해 데이터베이스를 복원하는 복구 시간에 영향을 미치는 요인은 다음과 같습니다.
- 데이터베이스의 크기
- 데이터베이스의 컴퓨팅 크기
- 관련된 트랜잭션 로그의 수
- 복원 지점으로 복구하기 위해 재생해야 하는 작업의 양
- 다른 지역으로 복원되는 경우의 네트워크 대역폭
- 대상 지역에서 처리되는 동시 복원 요청 개수
규모가 크거나 처리량이 매우 많은 데이터베이스의 경우 복원에 몇 시간이 걸릴 수 있습니다. 한 지역에서 장시간 가동 중단이 발생한 경우 재해 복구를 위해 많은 수의 지역 복원 요청이 발생할 수 있습니다. 많은 요청이 있는 경우 개별 데이터베이스에 대한 복구 시간이 늘어날 수 있습니다. 대부분의 데이터베이스 복원은 12시간 이내에 완료됩니다.
단일 구독의 경우 동시 복원 요청 수가 다음과 같이 제한됩니다. 이러한 제한은 지정 시간 복원, 지리적 복원, 장기 보존 백업에서의 복원 등 모든 조합에 적용됩니다.
배포 옵션 | 처리되는 최대 동시 요청 수 | 제출되는 최대 동시 요청 수 |
---|---|---|
단일 데이터베이스(구독당) | 30 | 100 |
탄력적 풀(풀당) | 4 | 2,000 |
사용 권한
자동화된 백업을 사용하여 복구하려면 다음 중 하나여야 합니다.
- 논리 서버가 포함된 구독 또는 리소스 그룹의 기여자 역할 또는 SQL Server 기여자 역할의 구성원
- 구독 또는 리소스 그룹 소유자
자세한 내용은 Azure RBAC: 기본 제공 역할을 참조하세요.
Azure Portal, PowerShell 또는 REST API를 사용하여 복구할 수 있습니다. Transact-SQL은 사용할 수 없습니다.
지정 시간 복원
모든 데이터베이스를 보존 기간 내의 이전 시점으로 복원할 수 있습니다. 복원 요청에서 복원된 데이터베이스의 서비스 계층 또는 컴퓨팅 크기를 지정할 수 있습니다. 데이터베이스를 탄력적 풀로 복원하는 경우 풀에 데이터베이스를 수용할 수 있는 충분한 리소스가 있어야 합니다.
복원이 완료되면 원래 데이터베이스와 동일한 서버에 새 데이터베이스가 만들어집니다. 복원된 데이터베이스는 서비스 계층 및 컴퓨팅 크기에 따라 정상 요금이 청구됩니다. 데이터베이스 복원이 완료될 때까지 요금이 발생하지 않습니다.
일반적으로 복구를 위해 이전 지점까지 데이터베이스를 복원합니다. 원본 데이터베이스에 대한 대체로 복원된 데이터베이스를 처리하거나 원래 데이터베이스를 업데이트하기 위한 데이터 원본으로 사용할 수 있습니다.
중요
- 같은 서버로 특정 시점 복원을 수행할 수 있습니다. 서버 간, 지역 간 및 구독 간 특정 시점 복원은 현재 지원되지 않습니다. 지역에서 복제 백업을 사용하여 다른 리전에 데이터베이스를 복원하려면 지역 복원을 참조하세요.
- 지역 보조 데이터베이스에서는 지정 시간 복원을 수행할 수 없습니다. 주 데이터베이스에서만 수행할 수 있습니다.
- 하이퍼스케일 데이터베이스에는
BackupFrequency
매개 변수가 지원되지 않습니다. - 데이터베이스 복원 작업은 리소스를 많이 사용하며 복원(대상) 데이터베이스에 대해 S3 이상의 서비스 계층이 필요할 수 있습니다. 복원이 완료되면 필요한 경우 데이터베이스 또는 탄력적 풀을 축소할 수 있습니다.
데이터베이스 교체
복원된 데이터베이스를 원래 데이터베이스에 대한 대체로 만들려면 원래 데이터베이스의 컴퓨팅 크기와 서비스 계층을 지정해야 합니다. 그런 다음, 원본 데이터베이스의 이름을 바꿀 수 있으며 T-SQL에서 ALTER DATABASE 명령을 사용하여 복원된 데이터베이스에 원래 이름을 제공할 수 있습니다.
데이터 복구
복원된 데이터베이스에서 데이터를 가져와 사용자 또는 애플리케이션 오류로부터 복구하려면 복원된 데이터베이스에서 데이터를 추출하는 데이터 복구 스크립트를 작성하여 실행하고 원본 데이터베이스에 적용해야 합니다. 복원 작업을 완료하는 데 긴 시간이 걸리지만 복원 중인 데이터베이스가 복원 과정 내내 데이터베이스 목록에 표시됩니다.
복원 중에 데이터베이스를 삭제하면 복원 작업이 취소됩니다. 복원을 완료하지 않은 데이터베이스에는 요금이 청구되지 않습니다.
Azure 포털을 사용하여 데이터베이스를 특정 시점으로 복구하려면 데이터베이스 개요 페이지를 열고 도구 모음에서 복원을 선택하여 SQL 데이터베이스 만들기 - 데이터베이스 복원 페이지를 엽니다:
SQL Database 만들기 - 데이터베이스 복원 페이지에서 백업 원본을 지정한 다음 새 데이터베이스를 만들 지정 시간 백업 지점을 선택합니다. 선택한 데이터베이스를 현재 서버로 복원해야 하므로 원본 데이터베이스와 대상 서버가 회색으로 표시됩니다.
장기 백업 복원
장기 백업에서 복원 작업을 수행하려면 Azure Portal, Azure CLI, Azure PowerShell 또는 REST API를 사용하면 됩니다. 자세한 내용은 장기 백업 복원을 참조하세요.
Azure Portal을 사용하여 장기 백업을 복구하려면 논리 서버로 이동합니다. 데이터 관리에서 백업을 선택한 다음, 복원하려는 데이터베이스의 사용 가능한 LTR 백업에서 관리를 선택합니다.
삭제된 데이터베이스 복원
Azure Portal, Azure CLI, Azure PowerShell 및 REST API를 사용하여 삭제된 데이터베이스를 동일한 서버에서 삭제 시점 또는 이전 시점으로 복원할 수 있습니다.
중요
서버를 삭제하면 모든 해당 데이터베이스와 PITR 백업도 삭제됩니다. 삭제된 서버를 복원할 수 없으며 PITR 백업에서 삭제된 데이터베이스를 복원할 수 없습니다. 해당 데이터베이스에 대해 LTR 백업을 구성한 경우 해당 백업을 사용하여 데이터베이스를 다른 서버로 복원할 수 있습니다.
Azure Portal을 사용하여 삭제된 데이터베이스를 삭제 시점으로 복구하려면 서버의 개요 페이지를 열고 삭제된 데이터베이스를 선택합니다. 복원할 삭제된 데이터베이스를 선택한 다음, 백업에서 복원된 데이터로 만들어질 새 데이터베이스의 이름을 입력합니다.
팁
최근에 삭제된 데이터베이스가 Azure Portal의 삭제된 데이터베이스 페이지에 나타날 때까지 또는 삭제된 데이터베이스가 프로그래밍 방식으로 표시될 때까지 몇 분 정도 걸릴 수 있습니다.
지역 복원
지역 복원을 사용하여 Azure Portal, Azure CLI, Azure PowerShell 및 REST API를 통해 삭제된 데이터베이스를 복원할 수 있습니다.
중요
- 지역 복원은 지역 중복 백업 스토리지가 구성된 데이터베이스에만 사용할 수 있습니다. 현재 데이터베이스에 대해 지역 복제 백업을 사용하지 않는 경우 백업 스토리지 중복 구성을 통해 이를 변경할 수 있습니다.
- 동일한 구독에 있는 데이터베이스에서만 지역 복원을 수행할 수 있습니다.
지역 복원은 지역 복제된 백업을 원본으로 사용합니다. 가장 최근에 지역 복제된 백업의 Azure 지역에 있는 논리 서버에 데이터베이스를 복원할 수 있습니다. 지리적 복원은 가동 중단으로 인해 데이터베이스 또는 전체 지역에 액세스할 수 없는 경우에도 요청할 수 있습니다.
지리적 복원은 호스팅 지역에 인시던트가 발생하여 데이터베이스를 사용할 수 없게 되었을 때를 위한 기본 복구 옵션입니다. 다른 지역의 서버에 데이터베이스를 복원할 수 있습니다.
백업을 만들 때와 다른 지역에 있는 Azure Blob으로 지역 복제하는 사이에 지연이 있습니다. 따라서 복원된 데이터베이스는 원본 데이터베이스보다 최대 1시간 늦을 수 있습니다. 다음 일러스트레이션에서는 다른 지역에서 마지막으로 사용할 수 있는 백업에서의 데이터베이스 복원을 보여줍니다.
Azure Portal에서 새로운 단일 데이터베이스를 만들고 사용 가능한 지역 복원 백업을 선택합니다. 새로 만든 데이터베이스는 지리적 복원 백업 데이터를 포함합니다.
선택한 지역 및 서버의 Azure Portal에서 단일 데이터베이스를 지리적 복원하려면 다음 단계를 수행합니다.
- Azure Portal에서 SQL 데이터베이스 만들기 창을 엽니다. 기본 탭에서 필수 정보를 입력합니다.
- 추가 설정을 선택합니다.
- 기존 데이터 사용의 경우 백업을 선택합니다.
- 사용 가능한 지리적 복원 백업 목록에서 백업을 선택합니다.
백업에서 데이터베이스를 만드는 프로세스를 완료합니다. Azure SQL 데이터베이스를 만들면 복원된 지리적 복원 백업이 포함됩니다.
지리적 복원 고려 사항
지역 복원 사용에 대한 자세한 내용은 지역 복원을 사용한 복구를 참조하세요.
참고 항목
중단 복구에 대한 자세한 내용은 재해 복구 지침과 고가용성 및 재해 복구 체크리스트를 참조하세요.
지역 복원은 SQL Database에서 사용할 수 있는 가장 기본적인 재해 복구 솔루션입니다. RPO(복구 지점 목표)가 최대 1시간이고 예상 RTO(복구 시간 목표)가 최대 12시간인 지역에서 복제된 자동 생성 백업을 사용합니다. 지역 가동 중단 후에는 수요가 갑작스럽게 증가할 가능성이 있으므로 대상 지역에서 데이터베이스를 복원할 수 있는 용량이 보장되지 않습니다. 지역 복원은 애플리케이션에서 비교적 작은 데이터베이스를 사용하고 비즈니스에 중요하지 않은 경우 적절한 재해 복구 솔루션입니다.
대규모 데이터베이스가 필요하고 비즈니스 연속성을 보장해야 하는 업무상 중요한 애플리케이션의 경우 장애 조치(failover) 그룹을 사용합니다. 이 기능은 훨씬 낮은 RPO 및 RTO를 제공하며 용량이 항상 보장됩니다.
비즈니스 연속성 선택에 대한 자세한 내용은 비즈니스 연속성 개요를 참조하세요.
참고
지역 복원을 재해 복구 솔루션으로 사용할 계획이면 주기적으로 훈련을 수행하여 복구 절차의 모든 운영 측면과 함께 최근 데이터 수정 손실에 대한 애플리케이션의 허용 범위를 확인하는 것이 좋습니다.
데이터베이스를 다른 서버로 복원
다음 방법을 사용하여 데이터베이스를 다른 서버로 복원할 수 있습니다.