다음을 통해 공유


특정 시점 복원 수행

PITR(지정 시간 복원)을 사용하여 데이터베이스를 보존 기간 내에 있는 과거 특정 시점의 다른 데이터베이스 복사본으로 만듭니다. 이 문서에서는 Azure Arc 지원 SQL Managed Instance에서 데이터베이스의 특정 시점 복원을 수행하는 방법을 설명합니다.

특정 시점 복원은 다음과 같이 데이터베이스를 복원할 수 있습니다.

  • 기존 데이터베이스에서
  • 동일한 Azure Arc 지원 SQL Managed Instance의 새 데이터베이스로

데이터베이스를 미리 구성된 보존 설정 내의 특정 시점으로 복원할 수 있습니다. 다음과 같이 Azure Arc 지원 SQL Managed Instance에 대한 보존 설정을 확인할 수 있습니다.

직접 연결 모드의 경우:

az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup

간접 연결 모드의 경우:

az sql mi-arc show --name <SQL instance name> --k8s-namespace <SQL MI namespace> --use-k8s
#Example
az sql mi-arc show --name sqlmi --k8s-namespace arc --use-k8s

현재 특정 시점 복원은 다음과 같이 데이터베이스를 복원할 수 있습니다.

  • 인스턴스의 기존 데이터베이스에서
  • 동일한 인스턴스의 새 데이터베이스로

자동 백업

Azure Arc 지원 SQL Managed Instance에는 기본 제공 자동 백업 기능이 사용하도록 설정되어 있습니다. 새 데이터베이스를 만들거나 복원할 때마다 Azure Arc 지원 SQL Managed Instance에서 전체 백업을 즉시 시작하고 차등 및 트랜잭션 로그 백업을 자동으로 예약합니다. SQL 관리되는 인스턴스는 배포 중에 이러한 백업을 지정된 스토리지 클래스에 저장합니다.

특정 시점 복원을 사용하면 데이터베이스를 보존 기간 내의 특정 시점으로 복원할 수 있습니다. 데이터베이스를 특정 시점으로 복원하기 위해 Azure Arc 사용 데이터 서비스는 백업 파일을 특정 순서로 적용합니다. 예시:

  1. 전체 백업
  2. 차등 백업
  3. 하나 이상의 트랜잭션 로그 백업

지정 시간 복원

현재 전체 백업은 일주일에 한 번, 차등 백업은 12시간마다, 트랜잭션 로그 백업은 5분마다 수행됩니다.

보존 기간

새 Azure Arc 지원 SQL Managed Instance에 대한 기본 보존 기간은 7일이며, 0 또는 1~35일 값으로 조정할 수 있습니다. 보관 기간은 SQL 관리되는 인스턴스 배포 중에 --retention-days 속성을 지정하여 설정할 수 있습니다. 구성된 보존 기간보다 오래된 백업 파일은 자동으로 삭제됩니다.

az CLI를 사용하여 특정 시점의 데이터베이스 만들기

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s

또한 --dry-run 옵션을 사용하여 실제로 데이터베이스를 복원하지 않고도 복원 작업의 유효성을 검사할 수도 있습니다.

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s --dry-run
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s --dry-run

kubectl을 사용하여 특정 시점의 데이터베이스 만들기

  1. Kubernetes 네이티브 도구를 사용하여 특정 시점 복원을 수행하려면 kubectl을 사용할 수 있습니다. 작업 사양 yaml 파일을 만듭니다. 예시:

    apiVersion: tasks.sql.arcdata.microsoft.com/v1
    kind: SqlManagedInstanceRestoreTask                 
    metadata:                                       
      name: myrestoretask20220304
      namespace: test                              
    spec:                                           
      source:                                       
        name: miarc1                                
        database: testdb                            
      restorePoint: "2021-10-12T18:35:33Z"          
      destination:                                  
        name: miarc1                           
        database: testdb-pitr
      dryRun: false  
    
  2. 속성을 다음과 같이 편집합니다.

    1. name: 각 CR(사용자 지정 리소스)에 대한 고유 문자열입니다. Kubernetes에 필요합니다.
    2. 인스턴스가 있는 namespace: Kubernetes 네임스페이스
    3. source: ... name: 원본 인스턴스의 이름입니다.
    4. source: ... database: 복원이 적용될 원본 데이터베이스의 이름입니다.
    5. restorePoint: 복원 작업에 대한 특정 시점(UTC 날짜/시간)입니다.
    6. destination: ... name: 대상 Arc 사용 SQL 관리되는 인스턴스의 이름입니다. 현재 특정 시점 복원은 Arc SQL 관리되는 인스턴스 내에서만 지원됩니다. 이 속성은 원본 SQL 관리되는 인스턴스와 동일해야 합니다.
    7. destination: ... database: 복원이 적용될 새 데이터베이스의 이름입니다.
  3. 특정 시점 복원을 시작하는 작업을 만듭니다. 다음 예제에서는 myrestoretask20220304.yaml에 정의된 작업을 시작합니다.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. 복원 작업 상태를 다음과 같이 확인합니다.

    kubectl get sqlmirestoretask -n <namespace>
    

복원 작업 상태가 PITR 진행률에 따라 약 10초마다 업데이트됩니다. 상태는 Waiting에서 Restoring, Completed 또는 Failed로 진행됩니다.

Azure Data Studio를 사용하여 특정 시점의 데이터베이스 만들기

다음과 같이 Azure Data Studio에서 데이터베이스를 특정 시점으로 복원할 수도 있습니다.

  1. Azure Data Studio 시작
  2. 도구에서 설명한 대로 필요한 Arc 확장이 있는지 확인합니다.
  3. Azure Arc 데이터 컨트롤러에 연결
  4. 데이터 컨트롤러 노드를 펼치고 마우스 오른쪽 단추로 인스턴스를 클릭하고 관리를 선택합니다. Azure Data Studio에서 SQL 관리되는 인스턴스 대시보드를 시작합니다.
  5. 대시보드에서 백업 탭을 클릭합니다.
  6. SQL 관리되는 인스턴스의 데이터베이스 목록, 가장 빠른 복원 시간 및 최신 복원 시간 범위, 복원을 시작하는 아이콘이 표시됩니다.
  7. 복원하려는 데이터베이스의 아이콘을 클릭합니다. Azure Data Studio에서 오른쪽을 향해 블레이드를 시작합니다.
  8. 블레이드에서 필요한 입력을 제공하고, 복원을 클릭합니다.

진행 상황 모니터링

복원이 시작되면 전체, 차등 및 로그 백업의 실제 복원 작업을 실행하는 작업이 Kubernetes 클러스터에 만들어집니다. 이 작업의 ​​진행률은 다음과 같이 Kubernetes 클러스터에서 모니터링할 수 있습니다.

kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc

작업에서 kubectl describe를 실행하여 작업에 대한 자세한 정보를 확인할 수 있습니다. 예시:

kubectl describe sqlmirestoretask <nameoftask> -n <namespace>

보존 기간 구성

Azure Arc 지원 SQL Managed Instance에 대한 보존 기간은 다음과 같이 원래 설정에서 다시 구성할 수 있습니다.

Warning

현재 보존 기간을 줄이면 새 보존 기간보다 오래된 시점으로 복원할 수 없게 됩니다. 새 보존 기간 내에 PITR을 제공하는 데 더 이상 필요 없는 백업은 삭제됩니다. 현재 보존 기간을 늘려도 새 보존 기간의 더 오래된 시점으로 복원하는 기능이 즉시 제공되지는 않습니다. 시간이 지나 시스템이 백업을 장기간 보존하기 시작하면 이 기능을 사용할 수 있습니다.

다음과 같이 SQL Managed Instance-Azure Arc에 대해 --retention-period를 변경할 수 있습니다. 아래 명령은 directindirect 연결 모드 모두에 적용됩니다.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days <retentiondays>

예시:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 10

자동 백업 사용 안 함

다음과 같이 --retention-days 속성을 0으로 설정하여 기본 제공 자동화된 백업을 Azure Arc 지원 SQL Managed Instance의 특정 인스턴스에 사용하지 않도록 설정할 수 있습니다. 아래 명령은 directindirect 모드 모두에 적용됩니다.

Warning

자동 백업을 Azure Arc 지원 SQL Managed Instance에 사용하지 않도록 설정하면 구성된 자동 백업이 모두 삭제되고 특정 시점 복원을 수행할 수 있는 기능이 손실됩니다. 필요한 경우 자동 백업을 다시 시작하도록 retention-days 속성을 변경할 수 있습니다.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days 0

예시:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 0

백업 모니터링

백업은 /var/opt/mssql/backups/archived/<dbname>/<datetime> 폴더에 저장됩니다. 여기서 <dbname>은 데이터베이스 이름이고 <datetime>은 각 전체 백업 시작에 대한 UTC 형식의 타임스탬프입니다. 전체 백업이 시작될 때마다 해당 폴더 내에 전체 백업과 모든 후속 차등 및 트랜잭션 로그 백업이 포함된 새 폴더가 생성됩니다. 최신 전체 백업과 후속 차등 및 트랜잭션 로그 백업은 /var/opt/mssql/backups/current/<dbname><datetime> 폴더에 저장됩니다.

제한 사항

Azure Arc 지원 SQL Managed Instance에 대한 특정 시점 복원에는 다음과 같은 제한 사항이 있습니다.

  • 특정 시점 복원은 인스턴스 수준 기능이 아닌 데이터베이스 수준 기능입니다. 특정 시점 복원으로 전체 인스턴스를 복원할 수 없습니다.
  • 백업이 수행된 동일한 Azure Arc 지원 SQL Managed Instance로만 복원할 수 있습니다.

Azure Arc 지원 SQL Managed Instance의 특징 및 기능에 대해 자세히 알아보기

데이터 컨트롤러를 생성하여 시작

Azure Arc 지원 SQL Managed Instance 만들기