Sdílet prostřednictvím


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 kubectlrozhraní 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ů arcpouž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, kubectlvytvoř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íte az 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řed kubectl 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 SqlManagedInstanceReprovisionReplicaTaskvý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.531035dokud se neodebere dokončená sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132 položka.