Etkin coğrafi çoğaltmayı kullanarak bulut uygulamalarının SQL Veritabanı yükseltmelerini yönetme
ŞUNUN İÇİN GEÇERLİDİR:
Azure SQL Database
Bulut uygulamanıza çalışırken yükseltmeleri etkinleştirmek için Azure SQL Veritabanı coğrafi çoğaltmayı nasıl kullanabileceğinizi öğrenin. Yükseltmeler kesintiye neden olan işlemler olduğundan, bunlar iş sürekliliği planlama ve tasarımının bir parçası olması gerekir. Bu makalede, yükseltme işlemini düzenlemenin iki farklı yöntemini ele aacağız ve her seçeneğin avantajlarını ve avantajlarını ele aacağız. Bu makalenin amaçları doğrultusunda, veri katmanı olarak tek bir veritabanına bağlı bir web sitesinden oluşan bir uygulamaya başvururuz. Hedefimiz, kullanıcı deneyimini önemli ölçüde etkilemeden uygulamanın sürüm 1'ini (V1) sürüm 2'ye (V2) yükseltmektir.
Yükseltme seçeneklerini değerlendirirken şu faktörleri göz önünde bulundurabilirsiniz:
- Uygulama işlevlerinin ne kadar süreyle sınırlı veya düşürülmüş olabileceği gibi yükseltmeler sırasında uygulama kullanılabilirliği üzerindeki etkisi.
- Yükseltme başarısız olursa geri alma olanağı.
- Yükseltme sırasında ilgisiz, yıkıcı bir hata oluşursa uygulamanın güvenlik açığı.
- Toplam dolar maliyeti. Bu faktör, yükseltme işlemi tarafından kullanılan geçici bileşenlerin ek veritabanı yedekliliği ve artımlı maliyetlerini içerir.
Olağanüstü durum kurtarma için veritabanı yedeklemelerine bağlı uygulamaları yükseltme
Uygulamanız otomatik veritabanı yedeklemelerini kullanıyorsa ve olağanüstü durum kurtarma için coğrafi geri yükleme kullanıyorsa, tek bir Azure bölgesinde dağıtılır. Kullanıcı kesintilerini en aza indirmek için, bu bölgede yükseltmeye dahil olan tüm uygulama bileşenlerinin yer alan bir hazırlama ortamı oluşturun. İlk diyagramda yükseltme işlemi öncesinde işletimsel ortam gösterilebilir. Uç contoso.azurewebsites.net nokta, web uygulamasının üretim ortamını temsil eder. Yükseltmeyi geri almak için, veritabanının tam olarak eşitlenmiş kopyasıyla bir hazırlama ortamı oluşturmanız gerekir. Yükseltme için bir hazırlama ortamı oluşturmak için şu adımları izleyin:
- Aynı Azure bölgesinde ikincil veritabanı oluşturun. İkincili izleerek çekirdek işleminin tamam olup olduğunu (1) kontrol etmek.
- Web uygulamanız için yeni bir ortam oluşturun ve bunu 'Hazırlama' olarak arayın. URL ile Azure DNS
contoso-staging.azurewebsites.net(2) kaydedilir.
Not
Bu hazırlık adımları üretim ortamını etkilemez ve tam erişim modunda çalışır.

Hazırlık adımları tamamlandığında, uygulama gerçek yükseltme için hazırdır. Sonraki diyagramda yükseltme işlemiyle ilgili adımlar yer almaktadır:
- Birincil veritabanını salt okunur moda (3) ayarlayın. Bu mod, yükseltme sırasında web uygulamasının (V1) üretim ortamının salt okunur kalmasını garanti eder, böylece V1 ve V2 veritabanı örnekleri arasında veri ayrımını önler.
- Planlı sonlandırma modunu (4) kullanarak ikincil veritabanının bağlantısını kesin. Bu eylem, birincil veritabanının tam olarak eşitlenmiş, bağımsız bir kopyasını oluşturur. Bu veritabanı yükseltilecek.
- İkincil veritabanını okuma-yazma moduna döndür ve yükseltme betiği (5) çalıştır.

Yükseltme başarıyla tamamlarsanız, artık kullanıcıları üretim ortamı haline gelir ve uygulamayı yükseltilen kopyaya geçiş yapmaya hazırsınızdır. Geçiş, sonraki diyagramda gösterildiği gibi birkaç adım daha içerir:
- Web uygulamasının üretim ve hazırlama ortamları arasında değiştirme işlemi etkinleştirin (6). Bu işlem, iki ortamların URL'lerini değiştirmektedir. Şimdi
contoso.azurewebsites.netweb sitesi ve veritabanının (üretim ortamı) V2 sürümünü gösterir. - Değiştirme sonrasında hazırlama kopyası haline gelen V1 sürümüne artık ihtiyacınız yoksa, hazırlama ortamını (7) kaldırabilirsiniz.

Yükseltme işlemi başarısız olursa (örneğin, yükseltme betiğinde bir hata nedeniyle), hazırlama ortamının tehlikeye atılmış olduğunu göz önünde bulundurabilirsiniz. Uygulamayı yükseltme öncesi durumuna geri almak için üretim ortamındaki uygulamayı tam erişime geri döndürebilirsiniz. Sonraki diyagramda geri çevirme adımları gösterildi:
- Veritabanı kopyasını okuma-yazma moduna (8) ayarlayın. Bu eylem, üretim kopyasının tam V1 işlevselliğini geri yüklemenizi sağlar.
- Kök neden analizini gerçekleştirin ve hazırlama ortamını (9) alın.
Bu noktada uygulama tamamen işlevseldir ve yükseltme adımlarını yinelersiniz.
Not
Henüz değiştirme işlemi gerçekleştirmemişsiniz için geri alma işlemi DNS değişiklikleri gerektirmez.

Bu seçeneğin temel avantajı, bir dizi basit adımı takip eden bir uygulamayı tek bir bölgede yükseltebilirsiniz. Yükseltmenin dolar maliyeti görece düşüktür.
Burada önemli olan, yükseltme sırasında yıkıcı bir hata oluşursa yükseltme öncesi durumuna kurtarmanın, uygulamayı farklı bir bölgeye yeniden yüklemeyi ve coğrafi geri yükleme kullanarak veritabanını yedekten geri yüklemeyi kapsamış olduğudur. Bu işlem önemli bir kapalı kalma süresiyle sonuç verir.
Olağanüstü durum kurtarma için veritabanı coğrafi çoğaltmaya bağlı uygulamaları yükseltme
Uygulamanız iş sürekliliği için etkin coğrafi çoğaltma veya otomatik yük devretme grupları kullanıyorsa, en az iki farklı bölgeye dağıtılır. Birincil bölgede etkin, birincil veritabanı ve yedekleme bölgesinde salt okunur, ikincil veritabanı vardır. Yükseltme işlemi, bu makalenin başında belirtilen faktörlerle birlikte şunları da garantilemektedir:
- Uygulama, yükseltme işlemi sırasında her zaman yıkıcı hatalardan korunmaya devam ediyor.
- Uygulamanın coğrafi olarak yedekli bileşenleri, etkin bileşenlerle paralel olarak yükseltilir.
Bu hedeflere ulaşmak için, Web Apps ortamlarını kullanmanın yanı sıra, Azure Traffic Manager uç noktası ve bir yedekleme uç noktası olan bir yük devretme profili kullanarak bu hizmetten faydalanabilirsiniz. Sonraki diyagramda yükseltme işlemi öncesinde işletimsel ortam gösterilebilir. Web siteleri contoso-1.azurewebsites.net ve contoso-dr.azurewebsites.net uygulamanın tam coğrafi yedeklilik ile üretim ortamını temsil eder. Üretim ortamı aşağıdaki bileşenleri içerir:
- Birincil bölgedeki web uygulamasının
contoso-1.azurewebsites.netüretim ortamı (1) - Birincil bölgedeki birincil veritabanı (2)
- Yedekleme bölgesinde web uygulamasının bekleme örneği (3)
- Yedekleme bölgesinde coğrafi olarak çoğaltılmış ikincil veritabanı (4)
- Adlı Traffic Manager adlı çevrimiçi uç nokta ve adlı çevrimdışı uç noktanın yer alan
contoso-1.azurewebsites.netbir performans profilicontoso-dr.azurewebsites.net
Yükseltmeyi geri almak için uygulamanın tam olarak eşitlenmiş bir kopyasıyla bir hazırlama ortamı oluşturmanız gerekir. Yükseltme işlemi sırasında yıkıcı bir hata olması durumunda uygulamanın hızlı bir şekilde kurtarılana kadar kurtarılaa olduğundan, hazırlama ortamının da coğrafi olarak yedekli olması gerekir. Yükseltme için bir hazırlama ortamı oluşturmak için aşağıdaki adımlar gereklidir:
- Birincil bölgede (6) web uygulamasının hazırlama ortamını dağıtın.
- Birincil Azure bölgesinde (7) ikincil veritabanı oluşturun. Web uygulamasının hazırlama ortamını, uygulamaya bağlanacak şekilde yapılandırma.
- Birincil bölgedeki ikincil veritabanını çoğaltarak yedekleme bölgesinde başka bir coğrafi olarak yedekli, ikincil veritabanı oluşturun. (Bu yöntem zincirli coğrafi çoğaltma olarak çağrılır.) (8).
- Web uygulaması örneğinin hazırlama ortamını yedekleme bölgesinde (9) dağıtın ve (8) ile oluşturulan coğrafi olarak yedekli ikincil veritabanına bağlanacak şekilde yapılandırın.
Not
Bu hazırlık adımları, üretim ortamındaki uygulamayı etkilemez. Okuma-yazma modunda tamamen işlevsel kalır.

Hazırlık adımları tamamlandığında, hazırlama ortamı yükseltme için hazırdır. Sonraki diyagramda şu yükseltme adımları gösterilebilir:
- Üretim ortamındaki birincil veritabanını salt okunur moda (10) ayarlayın. Bu mod, üretim veritabanının (V1) yükseltme sırasında değişmeyerek V1 ve V2 veritabanı örnekleri arasındaki veri ayrımlarını önlemeyi garantiler.
-- Set the production database to read-only mode
ALTER DATABASE [<Prod_DB>]
SET READ_ONLY
- İkincil çoğaltmanın bağlantısını keserek coğrafi çoğaltmayı sonlandırın (11). Bu eylem, üretim veritabanının bağımsız ancak tam olarak eşitlenmiş bir kopyasını oluşturur. Bu veritabanı yükseltilecek. Aşağıdaki örnekte Transact-SQL ancak PowerShell de kullanılabilir.
-- Disconnect the secondary, terminating geo-replication
ALTER DATABASE [<Prod_DB>]
REMOVE SECONDARY ON SERVER [<Partner-Server>]
- Yükseltme betiği ,
contoso-1-staging.azurewebsites.netve hazırlama birincil veritabanındacontoso-dr-staging.azurewebsites.net(12) çalıştırın. Veritabanı değişiklikleri, hazırlama ikincil veritabanına otomatik olarak çoğaltılır.

Yükseltme başarıyla tamamlarsanız artık kullanıcıları uygulamanın V2 sürümüne geçiş yapmaya hazırsınızdır. Sonraki diyagramda aşağıdaki adımlar yer almaktadır:
- Birincil bölgede (13) ve yedekleme bölgesinde (14) web uygulamasının üretim ve hazırlama ortamları arasında değiştirme işlemi etkinleştirin. Uygulamanın V2'si artık yedekleme bölgesinde yedekli bir kopya ile üretim ortamı haline gelir.
- V1 uygulamasına (15 ve 16) artık ihtiyacınız yoksa hazırlama ortamını kaldırabilirsiniz.

Yükseltme işlemi başarısız olursa (örneğin, yükseltme betiğindeki bir hata nedeniyle), hazırlama ortamını tutarsız bir durumda olacak şekilde değerlendirin. Uygulamayı yükseltme öncesi durumuna geri almak için, üretim ortamındaki uygulamanın v1 'yi kullanmaya geri dönün. Gerekli adımlar sonraki diyagramda gösterilmiştir:
- Üretim ortamındaki birincil veritabanı kopyasını okuma-yazma moduna (17) ayarlayın. Bu eylem, üretim ortamındaki tam v1 işlevselliğini geri yükler.
- Kök nedeni analizini gerçekleştirin ve hazırlama ortamını (18 ve 19) onarın veya kaldırın.
Bu noktada, uygulama tam işlevseldir ve yükseltme adımlarını yineleyebilirsiniz.
Not
Bir değiştirme işlemi gerçekleştirmediğinizden geri alma, DNS değişiklikleri gerektirmez.

Bu seçeneğin önemli avantajı, yükseltme sırasında iş sürekliliğini tehlikeye atmadan hem uygulamayı hem de coğrafi olarak yedekli kopyayı paralel olarak yükseltebilmeniz gerekir.
Ana zorunluluğunu getirir, her uygulama bileşeni için iki artıklık gerektirdiğinden, bu nedenle dolar maliyeti daha yüksektir. Ayrıca, daha karmaşık bir iş akışı da içerir.
Özet
Makalede açıklanan iki yükseltme yöntemi karmaşıklık ve dolar maliyetinde farklılık gösterir, ancak her ikisi de kullanıcının salt okuma işlemlerine ne kadar süreyle sınırlı olduğunu en aza indirir. Bu süre, yükseltme betiği süresince doğrudan tanımlanır. Bu, veritabanı boyutuna, seçtiğiniz hizmet katmanına, Web sitesi yapılandırmasına veya kolayca denetleyemeyen diğer faktörlere bağlı değildir. Tüm hazırlık adımları yükseltme adımlarından ayrılır ve üretim uygulamasını etkilemez. Yükseltme betiğinin verimliliği, yükseltmeler sırasında kullanıcı deneyimini belirleyen bir temel faktördür. Bu nedenle, bu deneyimi geliştirmenin en iyi yolu, yükseltme betiğini mümkün olduğunca verimli hale getirmek için çabalarınızı odaklamaktır.
Sonraki adımlar
- İş sürekliliği için genel bakış ve senaryolar için bkz. iş sürekliliği genel bakış.
- etkin coğrafi çoğaltma Azure SQL Veritabanı hakkında bilgi edinmek için bkz. etkin coğrafi çoğaltma kullanarak okunabilir ikincil veritabanları oluşturma.
- Azure SQL Veritabanı otomatik yük devretme grupları hakkında bilgi edinmek için bkz. otomatik yük devretme gruplarını kullanarak birden çok veritabanının saydam ve eşgüdümlü yük devretmesini etkinleştirme.
- Azure App Service ' deki hazırlama ortamları hakkında bilgi edinmek için bkz. Azure App Service hazırlama ortamlarını ayarlama.
- Azure Traffic Manager profilleri hakkında bilgi edinmek için bkz. Azure Traffic Manager profilini yönetme.