Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği Kubernetes'te kapsayıcılı uygulama olarak dağıtılır. Yerleşik sağlamak için durum bilgisi olan kümeler ve kalıcı depolama gibi Kubernetes yapılarını kullanır:
- Sağlık izleme
- Hata algılama
- Hizmet sağlığını korumak için otomatik hizmet devretme.
Daha fazla güvenilirlik için Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneğini, yüksek kullanılabilirlik yapılandırmasında ek çoğaltmalarla dağıtacak şekilde de yapılandırabilirsiniz. Arc veri hizmetleri veri denetleyicisi aşağıdakileri yönetir:
- İzleme
- Hata algılama
- Otomatik devre değişikliği
Arc özellikli veri hizmeti, kullanıcı müdahalesi olmadan bu hizmeti sağlar. Hizmet:
- Kullanılabilirlik grubunu ayarlar
- Veritabanı yansıtma uç noktalarını yapılandırıyor
- Kullanılabilirlik grubuna veritabanları ekler
- Yük devretme ve yükseltmeyi koordine eder.
Bu belgede her iki yüksek kullanılabilirlik türü de incelenmiştir.
Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği, SQL yönetilen örneğin Genel Amaçlı hizmet katmanı olarak mı yoksa İş Açısından Kritik hizmet katmanı olarak mı dağıtıldığına bağlı olarak farklı yüksek kullanılabilirlik düzeyleri sağlar.
Genel Amaçlı hizmet katmanında yüksek kullanılabilirlik
Genel Amaçlı hizmet katmanında yalnızca bir çoğaltma kullanılabilir ve yüksek kullanılabilirlik Kubernetes düzenlemesi aracılığıyla sağlanır. Örneğin, yönetilen örnek kapsayıcı görüntüsünü içeren bir pod veya düğüm kilitlenirse, Kubernetes başka bir pod veya düğüm oluşturur ve aynı kalıcı depolama alanına bağlanmaya çalışır. Bu süre boyunca SQL yönetilen örneği uygulamalar tarafından kullanılamaz. Yeni pod çalışırken uygulamaların yeniden bağlanması ve işlemi yeniden denemesi gerekir. Kullanılan hizmet türü ise load balancer uygulamalar aynı birincil uç noktaya yeniden bağlanabilir ve Kubernetes bağlantıyı yeni birincil sunucuya yönlendirir. Hizmet türü ise nodeport uygulamaların yeni IP adresine yeniden bağlanması gerekir.
Yerleşik yüksek kullanılabilirliği doğrulayın
Kubernetes tarafından sağlanan yerleşik yüksek kullanılabilirliği doğrulamak için şunları yapabilirsiniz:
- Mevcut yönetilen örneğin podunu silme
- Kubernetes'in bu eylemden kurtarıldığını doğrulayın
Kurtarma sırasında Kubernetes başka bir podu önyükler ve kalıcı depolamayı ekler.
Önkoşullar
- Kubernetes kümesi paylaşılan, uzak depolama gerektirir
- Azure Arc tarafından etkinleştirilen ve varsayılan olarak tek bir çoğaltmayla dağıtılan bir SQL Yönetilen Örneği
Podları görüntüleyin.
kubectl get pods -n <namespace of data controller>Yönetilen örnek podunu silin.
kubectl delete pod <name of managed instance>-0 -n <namespace of data controller>Örneğin:
user@pc:/# kubectl delete pod sql1-0 -n arc pod "sql1-0" deletedYönetilen örneğin kurtarıldığını doğrulamak için podları görüntüleyin.
kubectl get pods -n <namespace of data controller>Örneğin:
user@pc:/# kubectl get pods -n arc NAME READY STATUS RESTARTS AGE sql1-0 2/3 Running 0 22s
Pod içindeki tüm kapsayıcılar kurtarıldıktan sonra yönetilen örneğe bağlanabilirsiniz.
İş Açısından Kritik hizmet katmanında yüksek kullanılabilirlik
İş Açısından Kritik hizmet katmanında, Kubernetes düzenlemesi tarafından yerel olarak sağlananlara ek olarak, Azure Arc için SQL Yönetilen Örneği, kapsanan bir kullanılabilirlik grubu sağlar. İçerilen kullanılabilirlik grubu SQL Server Always On teknolojisi üzerine kurulmuştur. Daha yüksek kullanılabilirlik düzeyleri sağlar. İş Açısından Kritik hizmet katmanıyla dağıtılan Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği, 2 veya 3 çoğaltma ile dağıtılabilir. Bu çoğaltmalar her zaman birbiriyle uyumlu olarak tutulur.
Sınırlı kullanılabilirlik gruplarında, pod çöküşleri veya düğüm hataları uygulama için görünmez hale gelir. Kapsanan kullanılabilirlik grubu, birincil verilerden tüm verileri içeren ve bağlantıları almaya hazır olan en az bir pod daha sağlar.
Sınırlı kullanılabilirlik grupları
Kullanılabilirlik grubu, bir veya daha fazla kullanıcı veritabanını mantıksal bir grup oluşturacak şekilde bağlar, böylece yük devretme olduğunda veritabanları grubunun tamamı tek bir birim olarak ikincil çoğaltmaya aktarılır. Kullanılabilirlik grubu yalnızca kullanıcı veritabanlarındaki verileri çoğaltır, ancak oturum açma bilgileri, izinler veya aracı işleri gibi sistem veritabanlarındaki verileri çoğaltmaz. Yalıtılmış kullanılabilirlik grubu, msdb ve master gibi sistem veritabanlarından meta veriler içerir. Birincil çoğaltmada oturum açma bilgileri oluşturulduğunda veya değiştirildiğinde, bunlar ikincil çoğaltmalarda da otomatik olarak oluşturulur. Benzer şekilde, birincil çoğaltmada bir temsilci işi oluşturulduğunda veya değiştirildiğinde, ikincil çoğaltmalar da bu değişiklikleri alır.
Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği, kapsamlı kullanılabilirlik grubu kavramını alır ve Kubernetes operatörünü ekleyerek, bunların büyük ölçekte dağıtılmasını ve yönetilmesini sağlar.
Kullanılabilirlik gruplarını içeren özellikler aşağıdakileri etkinleştirir:
Birden çok çoğaltmayla dağıtıldığında, Arc özellikli SQL yönetilen örneğiyle aynı ada sahip tek bir kullanılabilirlik grubu oluşturulur. Varsayılan olarak, kapsanan AG'nin birincil de dahil olmak üzere üç çoğaltması vardır. Kullanılabilirlik grubu için tüm CRUD işlemleri, kullanılabilirlik grubu oluşturma veya çoğaltmaları oluşturulan kullanılabilirlik grubuna birleştirme dahil olmak üzere dahili olarak yönetilir. Bir örnekte daha fazla kullanılabilirlik grubu oluşturamazsınız.
ve gibi
mastermsdbtüm kullanıcı ve sistem veritabanları dahil olmak üzere tüm veritabanları otomatik olarak kullanılabilirlik grubuna eklenir. Bu özellik, kullanılabilirlik grubu çoğaltmaları genelinde tek bir sistem görünümü sağlar. Doğrudan örneğe bağlanıyorsanız hemcontainedag_masterhem decontainedag_msdbveritabanlarına dikkat edin.containedag_*veritabanları, kullanılabilirlik grubu içindekimastervemsdbdeğerlerini temsil eder.Kullanılabilirlik grubundaki veritabanlarına bağlanmak için otomatik olarak bir dış uç nokta sağlanır. Bu uç nokta
<managed_instance_name>-external-svc, kullanılabilirlik grubu dinleyicisinin rolünü oynar.
Azure portalını kullanarak Azure Arc ile etkinleştirilen SQL Yönetilen Örneği'ni birden çok replika ile dağıtma
Azure portalında, Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği oluşturma sayfasından:
- İşlem + Depolama altında İşlem + Depolamayı Yapılandır'ı seçin. Portalda gelişmiş ayarlar gösterilir.
- Hizmet katmanı'nın altında İş Açısından Kritik'i seçin.
- Geliştirme amacıyla kullanılıyorsa "Yalnızca geliştirme amaçlı kullanım için" seçeneğini işaretleyin.
- Yüksek kullanılabilirlik'in altında 2 çoğaltma veya 3 çoğaltma seçin.
Azure CLI kullanarak birden çok kopya ile dağıtım yapmak
Azure Arc tarafından etkinleştirilen bir SQL Yönetilen Örneği İş Açısından Kritik hizmet katmanında dağıtıldığında, dağıtım birden çok çoğaltma oluşturur. Bu örnekler arasında kapsanan kullanılabilirlik gruplarının kurulumu ve yapılandırması sağlama sırasında otomatik olarak gerçekleştirilir.
Örneğin, aşağıdaki komut 3 çoğaltmalı bir yönetilen örnek oluşturur.
Dolaylı Bağlantı Modu
az sql mi-arc create -n <instanceName> --k8s-namespace <namespace> --use-k8s --tier <tier> --replicas <number of replicas>
Örnek:
az sql mi-arc create -n sqldemo --k8s-namespace my-namespace --use-k8s --tier BusinessCritical --replicas 3
Doğrudan bağlı mod:
az sql mi-arc create --name <name> --resource-group <group> --location <Azure location> –subscription <subscription> --custom-location <custom-location> --tier <tier> --replicas <number of replicas>
Örnek:
az sql mi-arc create --name sqldemo --resource-group rg --location uswest2 –subscription xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --custom-location private-location --tier BusinessCritical --replcias 3
Varsayılan olarak, tüm çoğaltmalar zaman uyumlu modda yapılandırılır. Bu, birincil örnekteki tüm güncelleştirmelerin ikincil örneklerin her birine zaman uyumlu olarak çoğaltıldığı anlamına gelir.
Yüksek kullanılabilirlik durumunu görüntüleme ve izleme
Dağıtım tamamlandıktan sonra SQL Server Management Studio'dan birincil uç noktaya bağlanın.
Birincil çoğaltmanın uç noktasını doğrulayın ve alın ve SQL Server Management Studio'dan buna bağlanın.
Örneğin, SQL örneği kullanılarak service-type=loadbalancerdağıtıldıysa, bağlanılacak uç noktayı almak için aşağıdaki komutu çalıştırın:
az sql mi-arc list --k8s-namespace my-namespace --use-k8s
veya
kubectl get sqlmi -A
Birincil ve ikincil uç noktaları ve AG durumunu alma
kubectl describe sqlmi Birincil ve ikincil uç noktaları ve yüksek kullanılabilirlik durumunu görüntülemek için veya az sql mi-arc show komutlarını kullanın.
Örnek:
kubectl describe sqlmi sqldemo -n my-namespace
veya
az sql mi-arc show --name sqldemo --k8s-namespace my-namespace --use-k8s
Örnek çıkış, çıkışınız farklı olacaktır:
"status": {
"endpoints": {...
"mirroring": "10.15.100.150:5022",
"primary": "10.15.100.150,1433",
"secondary": "10.15.100.156,1433"
},
"highAvailability": {
"healthState": "OK",
"mirroringCertificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
},
"observedGeneration": 1,
"readyReplicas": "2/2",
"state": "Ready"
}
SQL Server Management Studio ile birincil uç noktaya bağlanabilir ve DMV'leri şu şekilde doğrulayabilirsiniz:
SELECT * FROM sys.dm_hadr_availability_replica_states
Ve Kapsanan Kullanılabilirlik Panosu:
Yük devretme senaryoları
SQL Server Always On kullanılabilirlik gruplarının aksine, kapsanan kullanılabilirlik grubu yönetilen bir yüksek kullanılabilirlik çözümüdür. Bu nedenle, yük devretme modları SQL Server Always On kullanılabilirlik gruplarında kullanılabilen tipik modlarla karşılaştırıldığında sınırlıdır.
İki çoğaltmalı yapılandırmada veya üç çoğaltma yapılandırmasında İş Açısından Kritik hizmet katmanı SQL yönetilen örneklerini dağıtın. Hataların etkileri ve sonraki kurtarılabilirlik her yapılandırmada farklıdır. Üç çoğaltma örneği, iki çoğaltma örneğinden daha yüksek düzeyde kullanılabilirlik ve kurtarma sağlar.
İki çoğaltma yapılandırmasında, her iki düğüm durumu SYNCHRONIZEDda olduğunda, birincil çoğaltma kullanılamaz duruma gelirse, ikincil çoğaltma otomatik olarak birincil çoğaltmaya yükseltilir. Başarısız replika kullanılabilir olduğunda, bekleyen tüm değişikliklerle güncellenir. Çoğaltmalar arasında bağlantı sorunları varsa, her işlemin her iki çoğaltmada da kaydedilmesi gerektiğinden, birincil çoğaltma, başarı sağlanmadan herhangi bir işlem kaydedemeyebilir.
Üç çoğaltma yapılandırmasında, bir işlemin uygulamaya bir başarı iletisi döndürmeden önce 3 çoğaltmadan en az 2'sinde işlemesi gerekir. Hata durumunda, Kubernetes başarısız olan çoğaltmayı kurtarmaya çalışırken ikincillerden biri otomatik olarak birincil konumuna yükseltilir. Kopya kullanılabilir hale geldiğinde, otomatik olarak içinde bulunduğu kullanılabilirlik grubuna yeniden katılır ve bekleyen değişiklikler eşitlenir. Çoğaltmalar arasında bağlantı sorunları varsa ve 2'den fazla çoğaltma eşzamanlı değilse, birincil çoğaltma hiçbir işlemi taahhüt etmez.
Uyarı
Neredeyse sıfıra yakın veri kaybı elde etmek için bir İş Açısından Kritik SQL Yönetilen Örneğinin iki çoğaltma yapılandırmasından daha üç çoğaltma yapılandırmasında dağıtılması önerilir.
Birincil replika üzerinden ikincil replikalardan birine yük devretme işlemi için, planlı bir olay için aşağıdaki komutu çalıştırın.
Birincil sunucuya bağlanırsanız, SQL örneğinin yükünü ikincillerden birine devretmek için aşağıdaki T-SQL'i kullanabilirsiniz:
ALTER AVAILABILITY GROUP current SET (ROLE = SECONDARY);
İkincil sunucuya bağlanırsanız, istenen ikincil çoğaltmayı birincil çoğaltmaya yükseltmek için aşağıdaki T-SQL'i kullanabilirsiniz.
ALTER AVAILABILITY GROUP current SET (ROLE = PRIMARY);
Tercih edilen birincil kopya
Belirli bir replikayı birincil kopya olarak ayarlamak için AZ CLI'yi aşağıdaki gibi kullanabilirsiniz:
az sql mi-arc update --name <sqlinstance name> --k8s-namespace <namespace> --use-k8s --preferred-primary-replica <replica>
Örnek:
az sql mi-arc update --name sqldemo --k8s-namespace my-namespace --use-k8s --preferred-primary-replica sqldemo-3
Uyarı
Kubernetes tercih edilen replikayı ayarlamaya çalışır, ancak bunun garantisi yoktur.
Veritabanını çok çoğaltmalı örneğe geri yükleme
Veritabanını kullanılabilirlik grubuna geri yüklemek için ek adımlar gerekir. Aşağıdaki adımlarda bir veritabanının yönetilen örneğe nasıl geri yükleneceği ve kullanılabilirlik grubuna nasıl ekleneceği gösterilmektedir.
Yeni bir Kubernetes hizmeti oluşturarak birincil örnek dış uç noktasını erişime açın.
Birincil kopyayı barındıran podu belirleyin. Yönetilen örneğe bağlanın ve şu komutu çalıştırın:
SELECT @@SERVERNAMESorgu, birincil replikayı barındıran podu döndürür.
Kubernetes kümeniz
NodePorthizmetlerini kullanıyorsa, aşağıdaki komutu çalıştırarak Birincil örnek için Kubernetes hizmetini oluşturun.<podName>değerini, önceki adımda döndürülen sunucunun adıyla;<serviceName>değerini ise oluşturulan Kubernetes hizmeti için tercih edilen adla değiştirin.kubectl -n <namespaceName> expose pod <podName> --port=1533 --name=<serviceName> --type=NodePortBir LoadBalancer hizmeti için,
LoadBalancertüründe oluşturulan hizmet dışında aynı komutu çalıştırın. Örneğin:kubectl -n <namespaceName> expose pod <podName> --port=1533 --name=<serviceName> --type=LoadBalancerAzure Kubernetes Service'e karşı çalıştırılacak bu komutun bir örneği aşağıda verilmiştir ve burada birincili barındıran pod şöyledir
sql2-0:kubectl -n arc-cluster expose pod sql2-0 --port=1533 --name=sql2-0-p --type=LoadBalancerKubernetes hizmetinin IP'sini oluşturun:
kubectl get services -n <namespaceName>Veritabanını birincil örnek uç noktasına geri yükleyin.
Veritabanı yedekleme dosyasını birincil örnek kapsayıcısına ekleyin.
kubectl cp <source file location> <pod name>:var/opt/mssql/data/<file name> -c <serviceName> -n <namespaceName>Örnek
kubectl cp /home/WideWorldImporters-Full.bak sql2-1:var/opt/mssql/data/WideWorldImporters-Full.bak -c arc-sqlmi -n arcAşağıdaki komutu çalıştırarak veritabanı yedekleme dosyasını geri yükleyin.
RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/<file name>.bak' WITH MOVE '<database name>' to '/var/opt/mssql/data/<file name>.mdf' ,MOVE '<database name>' to '/var/opt/mssql/data/<file name>_log.ldf' ,RECOVERY, REPLACE, STATS = 5; GOÖrnek
RESTORE Database WideWorldImporters FROM DISK = '/var/opt/mssql/data/WideWorldImporters-Full.BAK' WITH MOVE 'WWI_Primary' TO '/var/opt/mssql/data/WideWorldImporters.mdf', MOVE 'WWI_UserData' TO '/var/opt/mssql/data/WideWorldImporters_UserData.ndf', MOVE 'WWI_Log' TO '/var/opt/mssql/data/WideWorldImporters.ldf', MOVE 'WWI_InMemory_Data_1' TO '/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1', RECOVERY, REPLACE, STATS = 5; GOVeritabanını kullanılabilirlik grubuna ekleyin.
Veritabanının AG'ye eklenmesi için tam kurtarma modunda çalışması ve günlük yedeklemesinin alınması gerekir. Geri yüklenen veritabanını kullanılabilirlik grubuna eklemek için aşağıdaki TSQL deyimlerini çalıştırın.
ALTER DATABASE <databaseName> SET RECOVERY FULL; BACKUP DATABASE <databaseName> TO DISK='<filePath>' ALTER AVAILABILITY GROUP containedag ADD DATABASE <databaseName>Aşağıdaki örnek, örneğe geri yüklenen adlı
WideWorldImportersbir veritabanı ekler:ALTER DATABASE WideWorldImporters SET RECOVERY FULL; BACKUP DATABASE WideWorldImporters TO DISK='/var/opt/mssql/data/WideWorldImporters.bak' ALTER AVAILABILITY GROUP containedag ADD DATABASE WideWorldImporters
Önemli
En iyi yöntem olarak, şu komutu çalıştırarak yukarıda oluşturulan Kubernetes hizmetini silmeniz gerekir:
kubectl delete svc sql2-0-p -n arc
Sınırlamalar
Azure Arc kullanılabilirlik grupları tarafından etkinleştirilen SQL Yönetilen Örneği, Büyük Veri Kümesi kullanılabilirlik gruplarıyla aynı sınırlamalara sahiptir. Daha fazla bilgi için bkz. Sql Server Büyük Veri Kümesini yüksek kullanılabilirlikle dağıtma.
İlgili içerik
Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği'nin Özellikleri ve Yetenekleri hakkında daha fazla bilgi edinin