복제본 다시 프로비전 - Azure Arc 지원 SQL Managed Instance
이 문서에서는 Azure Arc 지원 SQL Managed Instance에서 기존 복제본을 대체하기 위해 새 복제본을 프로비전하는 방법을 설명합니다.
복제본을 다시 프로비전하는 경우 Azure Arc 지원 SQL Managed Instance 배포를 위해 새 관리되는 인스턴스 복제본을 다시 빌드합니다. 예를 들어 해당 인스턴스에 대한 PV(영구 볼륨)의 데이터가 손상되거나 일부 반복되는 SQL 문제로 인해 동기화에 실패하는 복제본을 바꾸려면 이 작업을 사용합니다.
az
CLI를 통해 또는 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
상태를 유지합니다.