Återskapa replik – SQL Managed Instance aktiverat av Azure Arc
Den här artikeln beskriver hur du etablerar en ny replik för att ersätta en befintlig replik i SQL Managed Instance som aktiveras av Azure Arc.
När du återskapar en replik återskapar du en ny hanterad instansreplik för en SQL Managed Instance som är aktiverad av Azure Arc-distributionen. Använd den här uppgiften för att ersätta en replik som inte kan synkroniseras, till exempel på grund av skadade data på de beständiga volymerna (PV) för den instansen, eller på grund av ett återkommande SQL-problem.
Du kan återskapa en replik via az
CLI eller via kubectl
. Du kan inte återskapa en replik från Azure Portal.
Förutsättningar
Du kan bara återskapa en replik på en instans med flera repliker.
Via az
CLI
Azure CLI-kommandogruppen az sql mi-arc
innehåller reprovision-replica
. Uppdatera följande exempel om du vill återskapa en replik. Ersätt <instance_name-replica_number>
med instansnamnet och repliknumret för den replik som du vill ersätta. Ersätt <namespace>
.
az sql mi-arc reprovision-replica -n <instance_name-replica_number> -k <namespace> --use-k8s
Om du till exempel vill återskapa replik 2 av instansen mySqlInstance
i namnområdet arc
använder du:
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s
Kommandot körs tills det är klart. Då returnerar konsolen namnet på Kubernetes-aktiviteten:
sql-reprov-replica-mySqlInstance-2-1664217002.376132 is Ready
Nu kan du antingen undersöka uppgiften eller ta bort den.
Granska uppgiften
I följande exempel returneras information om kubernetes-aktivitetens tillstånd:
kubectl describe SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
Viktigt!
När en replik har återskapats måste du ta bort uppgiften innan en annan ometablering kan köras på samma instans. Mer information finns i Begränsningar.
Ta bort uppgiften
I följande exempel tas Kubernetes-uppgiften bort:
kubectl delete SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
Alternativparameter: --no-wait
Det finns en valfri --no-wait
parameter för kommandot. Om du skickar begäran med --no-wait
innehåller utdata namnet på den uppgift som ska övervakas. Till exempel:
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.
Via kubectl
Om du vill återskapa med kubectl
skapar du en anpassad resurs. Om du vill skapa en anpassad resurs för att återskapa den kan du skapa en .yaml-fil med den här strukturen:
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
name: <task name you make up>
namespace: <namespace>
spec:
replicaName: instance_name-replica_number
Om du vill använda samma exempel som ovan, mySqlinstance
replik 2, är nyttolasten:
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
name: my-reprovision-task-mySqlInstance-2
namespace: arc
spec:
replicaName: mySqlInstance-2
Övervaka eller ta bort uppgiften
När yaml tillämpas via kubectl apply kan du övervaka eller ta bort uppgiften via 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
Viktigt!
När en replik har återskapats måste du ta bort uppgiften innan en annan ometablering kan köras på samma instans. Mer information finns i Begränsningar.
Begränsningar
Uppgiften avvisar försök att återskapa den aktuella primära repliken. Om den aktuella primära repliken är skadad och behöver återskapas redundansväxlar du till en annan replik och begär sedan ometablering.
Ometablering av flera repliker i samma instans körs seriellt. Uppgiftskö och hålls i
Creating
tillstånd tills den aktiva aktiviteten har slutförts och tagits bort. Det finns ingen automatisk rensning av en slutförd uppgift, så den här serialiseringen påverkar dig även om du köraz sql mi-arc reprovision-replica
kommandot synkront och väntar tills det har slutförts innan du begär en ny ometablering. I samtliga fall måste du ta bort uppgiften viakubectl
innan en annan ometablering på samma instans kan köras.
Mer information om serialisering av ometableringsuppgifter: Om du har flera begäranden om att återskapa en replik i en instans kan du se något liknande i utdata från en 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
Den sista posten för repliken c-sql-kkncursza-1, sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035
, förblir i status Creating
tills den slutförda har tagits sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132
bort.