Replika opětovného zřízení – Spravovaná instance SQL povolená službou Azure Arc
Tento článek popisuje, jak zřídit novou repliku, která nahradí existující repliku ve službě SQL Managed Instance povolenou službou Azure Arc.
Při opětovném zřízení repliky znovu sestavíte novou repliku spravované instance pro spravovanou instanci SQL povolenou nasazením Azure Arc. Tuto úlohu použijte k nahrazení repliky, která se nedaří synchronizovat, například kvůli poškození dat na trvalých svazcích (PV) pro danou instanci nebo kvůli nějakému opakovanému problému s SQL.
Repliku můžete znovu vytvořit prostřednictvím az
rozhraní příkazového řádku nebo prostřednictvím kubectl
rozhraní příkazového řádku . Repliku nemůžete znovu vytvořit z webu Azure Portal.
Požadavky
Repliku můžete znovu vytvořit pouze v instanci s více repliky.
Přes az
rozhraní příkazového řádku
Skupina příkazů Azure CLI az sql mi-arc
zahrnuje reprovision-replica
. Pokud chcete repliku znovu vytvořit, aktualizujte následující příklad. Nahraďte <instance_name-replica_number>
názvem instance a číslem repliky repliky, kterou chcete nahradit. Nahradit <namespace>
.
az sql mi-arc reprovision-replica -n <instance_name-replica_number> -k <namespace> --use-k8s
Například k opětovnému zřízení repliky 2 instance mySqlInstance
v oboru názvů arc
použijte:
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s
Příkaz se spustí až do dokončení, v jakém okamžiku konzola vrátí název úlohy Kubernetes:
sql-reprov-replica-mySqlInstance-2-1664217002.376132 is Ready
V tuto chvíli můžete úkol prozkoumat nebo ho odstranit.
Prozkoumání úkolu
Následující příklad vrátí informace o stavu úlohy Kubernetes:
kubectl describe SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
Důležité
Po opětovném zřízení repliky musíte úlohu odstranit, aby se na stejné instanci spustila jiná reprovision. Další informace najdete v tématu Omezení.
Odstraňte úlohu.
Následující příklad odstraní úlohu Kubernetes:
kubectl delete SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
Parametr možnosti: --no-wait
Pro příkaz je volitelný --no-wait
parametr. Pokud odešlete požadavek s --no-wait
, výstup obsahuje název úkolu, který se má monitorovat. Příklad:
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.
Přes kubectl
Pokud chcete znovu zřídit, kubectl
vytvořte vlastní prostředek. Pokud chcete vytvořit vlastní prostředek pro opětovné zřízení, můžete vytvořit soubor .yaml s touto strukturou:
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
name: <task name you make up>
namespace: <namespace>
spec:
replicaName: instance_name-replica_number
Pokud chcete použít stejný příklad jako výše, mySqlinstance
replika 2, datová část je:
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
name: my-reprovision-task-mySqlInstance-2
namespace: arc
spec:
replicaName: mySqlInstance-2
Monitorování nebo odstranění úlohy
Jakmile se yaml použije prostřednictvím kubectl apply, můžete úlohu monitorovat nebo odstranit pomocí 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
Důležité
Po opětovném zřízení repliky musíte úlohu odstranit, aby se na stejné instanci spustila jiná reprovision. Další informace najdete v tématu Omezení.
Omezení
Úloha odmítne pokusy o opětovné zřízení aktuální primární repliky. Pokud je aktuální primární replika poškozená a potřebujete opětovné zřízení, převeďte služby při selhání na jinou repliku a pak požádejte o opětovné zřízení.
Opětovné zřízení více replik ve stejné instanci se spouští sériově. Úkoly jsou ve frontě a jsou ve
Creating
stavu, dokud se aktuálně aktivní úkol nedokončí a odstraní. Neexistuje žádné automatické vyčištění dokončené úlohy, takže tato serializace vás ovlivní i v případě, že příkaz spustíteaz sql mi-arc reprovision-replica
synchronně a před vyžádáním dalšího opětovného zřízení počkáte na dokončení příkazu. Ve všech případech musíte úlohu odebrat předkubectl
spuštěním jiného opětovného zřízení ve stejné instanci.
Další podrobnosti o serializaci úloh opětovného zřízení: Pokud máte více požadavků na opětovné zřízení repliky v jedné instanci, může se ve výstupu kubectl get SqlManagedInstanceReprovisionReplicaTask
výstupu zobrazit něco podobného:
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
Poslední položka repliky c-sql-kkncursza-1 zůstane ve stavuCreating
, sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035
dokud se neodebere dokončená sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132
položka.