다시 프로비전 복제본(replica) - Azure Arc에서 사용하도록 설정된 SQL Managed Instance

이 문서에서는 Azure Arc에서 사용하도록 설정된 SQL Managed Instance의 기존 복제본(replica) 대체하기 위해 새 복제본(replica) 프로비전하는 방법을 설명합니다.

복제본(replica) 다시 프로비전할 때 Azure Arc 배포에서 사용하도록 설정된 SQL Managed Instance에 대한 새 관리형 인스턴스 복제본(replica) 다시 빌드합니다. 예를 들어 해당 인스턴스에 대한 PV(영구 볼륨)의 데이터가 손상되거나 일부 반복되는 SQL 문제로 인해 동기화에 실패하는 복제본을 바꾸려면 이 작업을 사용합니다.

azCLI를 통해 또는 kubectl를 통해 복제본을 다시 프로비전할 수 있습니다. Azure Portal에서 복제본을 다시 프로비전할 수 없습니다.

필수 조건

다중 복제본 인스턴스에서만 복제본을 다시 프로비전할 수 있습니다.

az CLI를 통해

Azure CLI az sql mi-arc명령 그룹에는 reprovision-replica가 포함됩니다. 복제본을 다시 프로비전하려면 다음 예제를 업데이트합니다. <instance_name-replica_number>를 바꿀 복제본의 인스턴스 이름 및 복제본 번호로 바꿉니다. 을 대체합니다 <namespace>.

az sql mi-arc reprovision-replica -n <instance_name-replica_number> -k <namespace> --use-k8s

예를 들어 네임스페이스 arc에서 인스턴스 mySqlInstance의 복제본 2를 다시 프로비전하려면 다음을 사용합니다.

az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s

명령은 완료될 때까지 실행되며, 이때 콘솔은 Kubernetes 작업의 이름을 반환합니다.

sql-reprov-replica-mySqlInstance-2-1664217002.376132 is Ready

이 시점에서 작업을 검사하거나 삭제할 수 있습니다.

작업 검사

다음 예제에서는 Kubernetes 작업 상태에 대한 정보를 반환합니다.

kubectl describe SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc

Important

복제본을 다시 프로비전한 후 동일한 인스턴스에서 다른 재프로비전을 실행하려면 먼저 작업을 삭제해야 합니다. 자세한 내용은 제한 사항을 참조하세요.

작업 삭제

다음 예제에서는 Kubernetes 작업을 삭제합니다.

kubectl delete SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc

옵션 매개 변수: --no-wait

명령에 대한 선택적 --no-wait 매개 변수가 있습니다. --no-wait를 통해 요청을 보내는 경우 출력에는 모니터링할 작업의 이름이 포함됩니다. 예시:

az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s --no-wait
Reprovisioning replica mySqlInstance-2 in namespace `arc`. Please use
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217434.531035`
to check its status or
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask`
to view all reprovision tasks.

kubectl을 통해

kubectl을 사용하여 다시 프로비전하려면 사용자 지정 리소스를 만듭니다. 다시 프로비전할 사용자 지정 리소스를 만들려면 다음 구조를 사용하여 .yaml 파일을 만들면 됩니다.

apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
  name: <task name you make up>
  namespace: <namespace>
spec:
  replicaName: instance_name-replica_number

위와 동일한 예인 mySqlinstance 복제본 2를 사용하기 위해 페이로드는 다음과 같습니다.

apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
  name: my-reprovision-task-mySqlInstance-2
  namespace: arc
spec:
  replicaName: mySqlInstance-2

작업 모니터링 또는 삭제

yaml이 kubectl apply를 통해 적용되면 kubectl을 통해 작업을 모니터링하거나 삭제할 수 있습니다.

kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
kubectl describe -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
kubectl delete -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2

Important

복제본을 다시 프로비전한 후 동일한 인스턴스에서 다른 재프로비전을 실행하려면 먼저 작업을 삭제해야 합니다. 자세한 내용은 제한 사항을 참조하세요.

제한 사항

  • 작업은 현재 주 복제본을 다시 프로비전하려는 시도를 거부합니다. 현재 기본 복제본이 손상되어 다시 프로비전이 필요한 경우 다른 복제본으로 장애 조치(failover)한 다음, 다시 프로비전을 요청합니다.

  • 동일한 인스턴스에서 여러 복제본의 다시 프로비전은 순차적으로 실행됩니다. 작업 큐는 현재 활성 작업이 완료되고 삭제될 때까지 Creating 상태로 유지됩니다. 완료된 작업의 자동 정리가 없으므로 이 직렬화는 az sql mi-arc reprovision-replica 명령을 동기적으로 실행하고 다른 다시 프로비전을 요청하기 전에 완료될 때까지 기다리는 경우에도 영향을 줍니다. 모든 경우에 동일한 인스턴스에서 다른 다시 프로비전을 실행하려면 먼저 kubectl을 통해 작업을 제거해야 합니다.

다시 프로비전 작업의 직렬화에 대한 자세한 정보: 한 인스턴스에서 복제본을 다시 프로비전하라는 여러 요청이 있는 경우 kubectl get SqlManagedInstanceReprovisionReplicaTask의 출력에 다음과 같은 내용이 표시될 수 있습니다.

kubectl get SqlManagedInstanceReprovisionReplicaTask -n arc
NAME                                                     STATUS      AGE
sql-reprov-replica-c-sql-djlexlmty-1-1664217344.304601   Completed   13m
sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132   Completed   19m
sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035   Creating    12m

복제본 c-sql-kkncursza-1의 마지막 항목인 sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035는 완료된 sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132 항목이 제거될 때까지 Creating 상태를 유지합니다.