Dela via


Å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 arcanvä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-waitinnehå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 kubectlskapar 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ör az 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 via kubectl 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.