Ç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
kubectl
yeniden 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-wait
gö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 kubectl
yeniden 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 tutulur
Creating
. Tamamlanmış bir görevin otomatik olarak temizlenmesi olmadığından, komutu zaman uyumlu bir şekilde çalıştırıpaz 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örevikubectl
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.531035
tamamlanan sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132
kaldırılana kadar durumunda Creating
kalır.