Aracılığıyla paylaş


Çoğaltmayı yeniden sağlama - Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği

Bu makalede, Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği'da var olan bir çoğaltmayı değiştirmek için yeni bir çoğaltmanın nasıl sağlandığı açıklanmaktadır.

Bir çoğaltmayı yeniden sağladığınızda, Azure Arc dağıtımı tarafından etkinleştirilen bir SQL Yönetilen Örneği için yeni bir yönetilen örnek çoğaltmasını yeniden oluşturursunuz. Bu görevi, örneğin söz konusu örnekteki kalıcı birimlerdeki (PV) verilerin bozulması veya yinelenen bir SQL sorunu nedeniyle eşitlenemeyen bir çoğaltmayı değiştirmek için kullanın.

Çoğaltmayı CLI veya aracılığıyla az kubectlyeniden sağlayabilirsiniz. Azure portalından bir çoğaltmayı yeniden sağlayamazsınız.

Önkoşullar

Bir çoğaltmayı yalnızca çok çoğaltmalı bir örnekte yeniden sağlayabilirsiniz.

CLI aracılığıyla az

Azure CLI az sql mi-arc komut grubu içerir reprovision-replica. Çoğaltmayı yeniden sağlamak için aşağıdaki örneği güncelleştirin. değerini <instance_name-replica_number> , değiştirmek istediğiniz çoğaltmanın örnek adı ve çoğaltma numarasıyla değiştirin. değerini değiştirin <namespace>.

az sql mi-arc reprovision-replica -n <instance_name-replica_number> -k <namespace> --use-k8s

Örneğin, ad alanında arcörneğin mySqlInstance 2. çoğaltmasını yeniden sağlamak için şunu kullanın:

az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s

Komut tamamlanıncaya kadar çalışır; bu noktada konsol Kubernetes görevinin adını döndürür:

sql-reprov-replica-mySqlInstance-2-1664217002.376132 is Ready

Bu noktada, görevi inceleyebilir veya silebilirsiniz.

Görevi inceleme

Aşağıdaki örnek, Kubernetes görevinin durumu hakkında bilgi döndürür:

kubectl describe SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc

Önemli

Çoğaltma yeniden sağlandıktan sonra, başka bir yeniden sağlamanın aynı örnekte çalışabilmesi için önce görevi silmeniz gerekir. Daha fazla bilgi için bkz . Sınırlamalar.

Görevi silin

Aşağıdaki örnek Kubernetes görevini siler:

kubectl delete SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc

Seçenek parametresi: --no-wait

Komutu için isteğe bağlı --no-wait bir parametre vardır. İsteği ile --no-waitgönderirseniz, çıktı izlenecek görevin adını içerir. Örneğin:

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 yoluyla

ile kubectlyeniden sağlama yapmak için özel bir kaynak oluşturun. Yeniden sağlama için özel bir kaynak oluşturmak için şu yapıya sahip bir .yaml dosyası oluşturabilirsiniz:

apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
  name: <task name you make up>
  namespace: <namespace>
spec:
  replicaName: instance_name-replica_number

Yukarıdaki mySqlinstance çoğaltma 2 ile aynı örneği kullanmak için yük şu şekildedir:

apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
  name: my-reprovision-task-mySqlInstance-2
  namespace: arc
spec:
  replicaName: mySqlInstance-2

Görevi izleme veya silme

Yaml, kubectl apply aracılığıyla uygulandıktan sonra kubectl aracılığıyla görevi izleyebilir veya silebilirsiniz:

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

Önemli

Çoğaltma yeniden sağlandıktan sonra, başka bir yeniden sağlamanın aynı örnekte çalışabilmesi için önce görevi silmeniz gerekir. Daha fazla bilgi için bkz . Sınırlamalar.

Sınırlamalar

  • Görev, geçerli birincil çoğaltmayı yeniden sağlama girişimlerini reddeder. Geçerli birincil çoğaltma bozuksa ve yeniden sağlama gerekiyorsa, farklı bir çoğaltmaya yük devredip yeniden sağlama isteğinde bulunun.

  • Aynı örnekte birden çok çoğaltmanın yeniden sağlanması seri olarak çalıştırılır. Görev kuyruğu ve şu anda etkin olan görev bitene ve silinene kadar durumunda tutulurCreating. Tamamlanmış bir görevin otomatik olarak temizlenmesi olmadığından, komutu zaman uyumlu bir şekilde çalıştırıp az sql mi-arc reprovision-replica başka bir yeniden sağlama istemeden önce tamamlanmasını bekleseniz bile bu serileştirme sizi etkiler. Her durumda, aynı örnekte başka bir yeniden sağlamanın çalışabilmesi için önce aracılığıyla görevi kubectl kaldırmanız gerekir.

Yeniden sağlama görevlerinin seri hale getirilmesi hakkında daha fazla ayrıntı: Bir çoğaltmayı tek bir örnekte yeniden sağlamak için birden çok isteğiniz varsa, çıkışında şuna benzer bir kubectl get SqlManagedInstanceReprovisionReplicaTaskşey görebilirsiniz:

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 çoğaltması için son girdi, sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035tamamlanan sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132 kaldırılana kadar durumunda Creating kalır.