Microsoft Azure에 대한 SQL Server 관리 백업
적용 대상: SQL Server - Windows만 해당
Microsoft Azure에 대한 SQL Server 관리 백업은 Microsoft Azure Blob Storage에 대한 SQL Server 백업을 관리하고 자동화합니다. SQL Server가 데이터베이스의 트랜잭션 워크로드에 따라 백업 일정을 결정하도록 허용하거나 고급 옵션을 사용하여 일정을 정의하도록 선택할 수 있습니다. 보존 설정은 백업이 Azure Blob Storage에 저장되는 기간을 결정합니다. Microsoft Azure에 대한 SQL Server 관리 백업은 지정된 보존 기간 동안 특정 시점 복원을 지원합니다.
참고 항목
SQL Server 2016(13.x)에서는 Microsoft Azure에 대한 SQL Server 관리 백업의 절차와 기본 동작이 변경되었습니다. 자세한 내용은 관리 백업 설정 마이그레이션을 참조하세요.
Microsoft Azure에 대한 SQL Server 관리 백업은 Microsoft Azure Virtual Machines에서 실행되는 SQL Server 인스턴스에 사용하는 것이 좋습니다.
이점
현재 여러 데이터베이스의 백업을 자동화하려면 백업 전략을 개발하고, 사용자 지정 코드를 작성하고, 백업을 예약해야 합니다. Microsoft Azure에 대한 SQL Server 관리 백업을 사용하면 보존 기간과 스토리지 위치만 지정하여 백업 계획을 만들 수 있습니다. 고급 설정을 사용할 수 있지만 필수는 아닙니다. Microsoft Azure에 대한 SQL Server 관리 백업은 백업을 예약, 수행 및 유지 관리합니다.
Microsoft Azure에 대한 SQL Server 관리 백업은 데이터베이스 수준 또는 SQL Server 인스턴스 수준에서 구성할 수 있습니다. 인스턴스 수준에서 구성된 경우 새 데이터베이스도 자동으로 백업됩니다. 데이터베이스 수준의 설정을 사용하여 개별 사례의 인스턴스 수준 기본값을 재정의할 수 있습니다.
또한 백업을 암호화하여 보안을 강화할 수 있으며, 사용자 지정 일정을 설정하여 백업 실행 시점을 제어할 수도 있습니다. SQL Server 백업에 Microsoft Azure Blob 스토리지를 사용할 때의 이점에 대한 자세한 내용은 Azure Blob Storage를 사용하여 SQL Server 백업 및 복원을 참조하세요.
필수 구성 요소
Microsoft Azure Storage는 MICROSOFT Azure에 대한 SQL Server 관리 백업에서 백업 파일을 저장하기 위한 용도로 사용됩니다. 필요한 필수 구성 요소는 다음과 같습니다.
필수 요소 | 설명 |
---|---|
Microsoft Azure 계정 | 무료 평가판으로 Azure를 시작한 후에 구매 옵션을 살펴볼 수 있습니다. |
Azure Storage 계정 | 백업은 Azure Storage 계정과 연결된 Azure Blob Storage에 저장됩니다. 스토리지 계정을 만드는 방법에 대한 단계별 지침은 스토리지 계정 만들기를 참조하세요. |
미확인 개체 컨테이너 | 미확인 개체는 컨테이너로 구성됩니다. 백업 파일의 대상 컨테이너를 지정합니다. Azure 관리 포털에서 컨테이너를 만들거나 New-AzureStorageContainer Azure PowerShell 명령을 사용할 수 있습니다. |
SAS(공유 액세스 서명) | 대상 컨테이너에 대한 액세스는 공유 액세스 서명(SAS)으로 제어됩니다. SAS에 대한 개요는 SAS(공유 액세스 서명)를 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여를 참조하세요. 코드를 작성하거나 New-AzureStorageContainerSASToken PowerShell 명령을 사용하여 SAS 토큰을 만들 수 있습니다. 이 프로세스를 간소화하는 PowerShell 스크립트에 대해서는 PowerShell을 사용하여 Azure Storage에서 SAS(공유 액세스 서명) 토큰을 사용한 SQL 자격 증명 만들기 간소화를 참조하세요. SAS 토큰은 SQL 자격 증명에 저장하여 Microsoft Azure에 대한 SQL Server 관리 백업에 사용할 수 있습니다. |
SQL Server 에이전트 | Microsoft Azure에 대한 SQL Server 관리 백업이 작동하려면 SQL Server 에이전트가 실행 중이어야 합니다. 시작 옵션을 자동으로 설정하는 것이 좋습니다. |
읽을 수 있는 AG 복제본 | 관리형 백업을 Always On 가용성 그룹의 보조 복제본으로 오프로드하는 경우 관리형 백업이 성공하려면 보조 복제본을 읽기 가능으로 설정해야 합니다. |
구성 요소
Transact-SQL은 Microsoft Azure에 대한 SQL Server 관리 백업과 상호 작용하는 기본 인터페이스입니다. 시스템 저장 프로시저는 Microsoft Azure에 대한 SQL Server 관리 백업을 사용하도록 설정, 구성 및 모니터링하는 데 사용됩니다. 시스템 함수는 기존 구성 설정, 매개 변수 값 및 백업 파일 정보를 검색하는 데 사용됩니다. 확장 이벤트는 오류 및 경고를 표시하는 데 사용됩니다. 경고 메커니즘은 SQL 에이전트 작업 및 SQL Server 정책 기반 관리를 통해 활성화됩니다. 다음 개체 목록에는 Microsoft Azure에 대한 SQL Server 관리 백업과 관련된 개체의 기능에 대한 설명이 포함되어 있습니다.
PowerShell cmdlet을 사용하여 Microsoft Azure에 SQL Server 관리 백업을 구성할 수도 있습니다. SQL Server Management Studio는 데이터베이스 복원 작업을 사용하여 Microsoft Azure에 대한 SQL Server 관리 백업으로 만든 백업을 복원할 수 있도록 지원합니다.
시스템 개체 | 설명 |
---|---|
msdb |
Microsoft Azure에 대한 SQL Server 관리 백업으로 만든 모든 백업에 대한 메타데이터, 백업 기록을 저장합니다. |
managed_backup.sp_backup_config_basic | Microsoft Azure에 대한 SQL Server 관리 백업을 사용으로 설정합니다. |
managed_backup.sp_backup_config_advanced | 암호화와 같은 Microsoft Azure에 대한 SQL Server 관리 백업에 대한 고급 설정을 구성합니다. |
managed_backup.sp_backup_config_schedule | Microsoft Azure에 대한 SQL Server 관리 백업에 대한 사용자 지정 일정을 만듭니다. |
managed_backup.sp_ backup_master_switch | Microsoft Azure에 대한 SQL Server 관리 백업을 일시 중지한 후 다시 시작합니다. |
managed_backup.sp_set_parameter | Microsoft Azure에 대한 SQL Server 관리 백업에 대한 모니터링을 사용하도록 설정하고 구성합니다. 예: 확장 이벤트, 알림에 대한 메일 설정 사용 |
managed_backup.sp_backup_on_demand | 로그 체인을 중단하지 않고 Microsoft Azure에 대한 SQL Server 관리 백업을 사용할 수 있도록 설정된 데이터베이스에 대한 임시 백업을 수행합니다. |
managed_backup.fn_backup_db_config | 데이터베이스 또는 인스턴스의 모든 데이터베이스와 관련하여 Microsoft Azure에 대한 현재 SQL Server 관리 백업 상태 및 구성 값을 반환합니다. |
managed_backup.fn_is_master_switch_on | 마스터 스위치의 상태를 반환합니다. |
managed_backup.sp_get_backup_diagnostics | 확장 이벤트에 기록된 이벤트를 반환합니다. |
managed_backup.fn_get_parameter | 알림에 대한 모니터링 및 메일 설정과 같은 백업 시스템 설정의 현재 값을 반환합니다. |
managed_backup.fn_available_backups | 지정된 데이터베이스 또는 인스턴스의 모든 데이터베이스에 대해 사용 가능한 백업을 검색합니다. |
managed_backup.fn_get_current_xevent_settings | 현재 확장 이벤트 설정을 반환합니다. |
managed_backup.fn_get_health_status | 지정된 기간 동안 확장 이벤트에서 기록된 오류의 집계된 수를 반환합니다. |
Backup 전략
다음 섹션에서는 Microsoft Azure에 대한 SQL Server 관리 백업의 백업 전략에 대해 설명합니다.
백업 일정 예약
managed_backup.sp_backup_config_schedule 시스템 저장 프로시저를 사용하여 사용자 지정 백업 일정을 지정할 수 있습니다. 사용자 지정 일정을 지정하지 않으면 예약된 백업 유형과 백업 빈도는 데이터베이스의 워크로드에 따라 결정됩니다. 보존 기간 설정은 백업 파일을 스토리지에 보존해야 하는 기간과 보존 기간 내의 특정 시점으로 데이터베이스를 복구할 수 있는 기능을 결정하는 데 사용됩니다.
백업 파일 명명 규칙
Microsoft Azure에 대한 SQL Server 관리 백업은 사용자가 지정한 컨테이너를 사용하므로 사용자가 컨테이너 이름을 제어할 수 있습니다. 백업 파일의 경우, 비가용성 데이터베이스의 이름은 다음 규칙에 따라 지정됩니다. 이름은 데이터베이스 이름의 처음 40자, -
를 제외한 데이터베이스 GUID, 타임스탬프를 사용하여 만들어집니다. 밑줄 문자는 구분 기호로 세그먼트 사이에 삽입됩니다. .bak
파일 확장명은 전체 백업에 사용되고 .log
파일 확장명은 로그 백업에 사용됩니다. 가용성 그룹(AG)에 있는 데이터베이스의 경우 앞서 설명한 파일 명명 규칙 외에도 데이터베이스 이름 40자 뒤에 AG 데이터베이스 GUID가 추가됩니다. AG 데이터베이스 GUID 값은 sys.databases
의 group_database_id 값입니다.
전체 데이터베이스 백업
다음 조건 중 하나라도 해당하는 경우 Microsoft Azure에 대한 SQL Server 관리 백업 에이전트가 전체 데이터베이스 백업을 예약합니다.
데이터베이스를 처음으로 사용하도록 설정하거나 인스턴스 수준에서 기본 설정으로 Microsoft Azure에 대한 SQL Server 관리 백업을 사용하도록 설정한 경우입니다.
마지막 전체 데이터베이스 백업 이후 로그의 증가량이 1GB 이상입니다.
마지막 전체 데이터베이스 백업 이후 최대 1주일의 시간 간격이 경과했습니다.
로그 체인이 손상되었습니다. Microsoft Azure에 대한 SQL Server 관리 백업은 백업 파일의 첫 번째와 마지막 LSN을 비교하여 로그 체인이 손상되지 않았는지 주기적으로 확인합니다. 어떤 이유로든 로그 체인에 중단이 발생하면 Microsoft Azure에 대한 SQL Server 관리 백업이 전체 데이터베이스 백업을 예약합니다. 로그 체인이 중단되는 가장 일반적인 이유는 Transact-SQL을 사용하거나 SQL Server Management Studio의 백업 작업을 통해 실행된 백업 명령 때문일 수 있습니다. 그 외에 실수로 백업 로그 파일을 삭제하거나 백업을 덮어쓰는 경우가 있을 수 있습니다.
트랜잭션 로그 백업
다음 조건 중 하나라도 해당하는 경우 Microsoft Azure에 대한 SQL Server 관리 백업은 로그 백업을 예약합니다.
로그 백업 기록을 찾을 수 없습니다. 이는 일반적으로 Microsoft Azure에 대한 SQL Server 관리 백업을 처음 사용하도록 설정한 경우에 해당합니다.
사용된 트랜잭션 로그 공간이 5MB 이상인 경우
마지막 로그 백업에 도달한 후 2시간의 최대 시간 간격.
모든 트랜잭션 로그 백업이 전체 데이터베이스 백업보다 지연 중입니다. 목표는 전체 백업보다 먼저 로그 체인을 유지하는 것입니다.
보존 기간 설정
백업을 사용하도록 설정한 경우 보존 기간을 일 단위로 설정해야 하며, 최소는 1일이고 최대는 90일입니다.
보존 기간 설정에 따라 Microsoft Azure에 대한 SQL Server 관리 백업은 지정된 시간의 특정 시점으로 복구할 수 있는지 평가하여 보관할 백업 파일을 결정하고 삭제할 백업 파일을 식별합니다. 백업의 backup_finish_date는 보존 기간 설정에 지정된 시간을 결정하고 해당 시간과 일치시키는 데 사용됩니다.
고려 사항
데이터베이스의 경우 기존 전체 데이터베이스 백업 작업이 실행 중인 경우 Microsoft Azure에 대한 SQL Server 관리 백업은 현재 작업이 완료될 때까지 기다렸다가 동일한 데이터베이스에 대한 다른 전체 데이터베이스 백업을 수행합니다. 마찬가지로 한 번에 하나의 트랜잭션 로그 백업만 실행할 수 있습니다. 그러나 전체 데이터베이스 백업 및 트랜잭션 로그 백업은 동시에 실행할 수 있습니다. 실패는 확장 이벤트로 기록됩니다.
동시에 10개 이상의 전체 데이터베이스 백업이 예약된 경우 확장 이벤트의 디버그 채널을 통해 경고가 표시됩니다. 그런 다음 Microsoft Azure에 대한 SQL Server 관리 백업은 모든 백업이 예약되고 완료될 때까지 백업이 필요한 나머지 데이터베이스에 대한 우선 순위 큐를 유지합니다.
참고 항목
프록시 서버에서는 SQL Server 관리 백업이 지원되지 않습니다.
지원 가능성
다음 지원 제한 사항 및 고려 사항은 SQL Server에만 해당됩니다.
master
,model
및msdb
시스템 데이터베이스의 백업이 지원됩니다.tempdb
의 백업은 지원되지 않습니다.모든 복구 모델이 지원됩니다(전체, 일괄 기록, 단순).
Microsoft Azure에 대한 SQL Server 관리 백업은 데이터베이스 전체 및 로그 백업만 지원합니다. 파일 백업 자동화는 지원되지 않습니다.
Microsoft Azure Blob Storage가 유일하게 지원되는 백업 스토리지 옵션입니다. 디스크 또는 테이프 백업은 지원되지 않습니다.
Microsoft Azure에 대한 SQL Server 관리 백업은 블록 Blob에 백업 기능을 사용합니다. 블록 Blob의 최대 크기는 200GB입니다. 하지만 스트라이핑을 활용하면 개별 백업의 최대 크기를 최대 12TB까지 늘릴 수 있습니다. 백업 요구 사항이 이 제한을 초과하는 경우 압축을 사용하는 것이 좋으며, Microsoft Azure에 대한 SQL Server 관리 백업을 설정하기 전에 백업 파일 크기를 테스트합니다. 로컬 디스크에 백업하거나
BACKUP TO URL
Transact-SQL 문을 사용하여 Microsoft Azure Storage에 수동으로 백업하여 테스트할 수 있습니다. 자세한 내용은 Microsoft Azure Blob Storage용 URL에 SQL Server 백업을 참조하세요.백업, 고가용성 및 재해 복구를 지원하는 다른 기술과 함께 구성한 경우 Microsoft Azure에 대한 SQL Server 관리 백업에 몇 가지 제한이 있을 수 있습니다.
가용성 그룹에 있는 데이터베이스의 백업은 복사 전용 백업입니다.
관리형 백업을 Always On 가용성 그룹의 보조 복제본으로 오프로드하는 경우 관리형 백업이 여러 파일을 스트라이프하려면 보조 복제본을 읽기 가능으로 설정해야 합니다.