Yüksek kullanımlı ASP.NET uygulamaları için SQL Server 2008 nasıl yüklenir?


12

ASP.NET ve IIS 7 kullanan başarılı bir web uygulamanız olduğunu düşünün. Bir SQL Server 2008 veritabanına birçok çağrı oluşturur ve% 99,9 kesintisiz çalışma süresi (8 saat, 45 dakika başına 45 dakika) halka açık olması beklenir. yıl).

Hedeflerimiz:

  • Müşterilerimize aksaklıklara neden olmadan Windows Güncelleştirmeleri'ni sunucuya yükleyin
  • Sunucudaki donanım çökmelerinin zaman aşımları nedeniyle ASP.NET uygulamalarını yavaşlatmasını önleme

Bir ASP.NET uygulamasının yük dengelemesinin aksine, yük dengeleme SQL'in çok daha zor olduğu görülmektedir. Microsoft yığınını kullanan bir Micro-ISV için basit bir yük dengeli SQL Server 2008 R2 kümesi ayarlamak için en iyi uygulamalarınız nelerdir?


Birkaç yorum: Yaptığımız şey, bağlantı zaman aşımına uğradığında veritabanına bağlanmadan "çevrimdışı" modda çalışabilen ASP.NET uygulamaları yazılmıştır. Tam özellikli uygulama yerine "temel" bir hizmete düşer. Ayrıca ilham verici Netflix Kaos Maymun yaklaşımı hakkında da okudum: readwriteweb.com/cloud/2010/12/…

Durumun nedir? Sınırlı sunucuların bulunduğu barındırılan bir ortamda mısınız veya nakit erişimine ve sunucu numaralarınızı genişletme yeteneğine sahip kendi öğelerinizi mi barındırıyorsunuz?

@Jay: Birçok Micro-ISV gibi Rackspace Cloud hosting'e geçiş yapan iki özel sunucumuz var. Gerekirse iki özel SQL Server kutusu alabiliriz, ancak daha iyi bir yaklaşım olup olmadığını merak ediyorum.

Veritabanınızı SQL Azure'a taşıyın. Daha sonra sunucu arızaları, tedarikler ve güncellemelerin kabuslarından kurtuldunuz. Verileriniz, çalışma kopyasına ek olarak iki kez çoğaltılır ve yük dengeleme özelliği, bir SQL Server'ı uygulama / yönetmenin gerçek maliyetinin bir kısmında, örneğin donanım, yazılım lisanslama, sunucu destek süresi, vb. .
Brett Rigby

Yanıtlar:


4

İhtiyacınız olan yüksek kullanılabilirlik durumu varsa, Windows / SQL Server Kümeleme veya SQL Server Veritabanı Aynalama çözümleri sunar. Kümelenme, daha önce hiç yapmadıysanız çok fazla planlama ve tanıma gerektirir, ancak uygulama için şeffaf olacaktır.

Yük dengeleme SQL Server ile mümkündür, ancak hafif yürekli değildir. SQL Sunucularının önünde Windows Ağ Yükü Dengeleme (NLB) kullanan bir çözümdür. Salt okunur olmaları durumunda SQL Server'ların kendilerini NLB'de yönetmeleri daha kolaydır, ancak güncellenebilir abonelerle işlem çoğaltması kullanırsanız bunlar okuma-yazma olabilir. Bu tür bir çoğaltma, gelecekteki bir sürümde kullanımdan kaldırılmak üzere işaretlenmiştir.

Son bir olasılık da Ölçeklendirilebilir Paylaşılan Veritabanlarıdır, ancak kesinlikle salt okunurdur.

Daha fazla okuma:

Allan Hirt'in SQL Server 2005 Yüksek Kullanılabilirlik ile ilgili Apress kitaplarına ve Apress'ten Pro SQL Server 2005/2008 Replikasyonuna bir göz atın.

Ölçeklenebilir paylaşılan veritabanları: http://technet.microsoft.com/en-us/library/ms345392.aspx


2

İlişkisel veritabanı sistemleri nadiren web sunucuları gibi yük dengelenir. Yük dengelemeye klasik yaklaşımdaki sorun, tüm veritabanlarınızın sürekli senkronizasyonda olması gerektiğidir. İki sunucunun herhangi bir zamanda aynı durumu yoksa ilişkisel model değersizdir.

Sorunuzdan, yük dengelemeyi gerçekleştirmeye çalıştığınız bile görünmüyor, bu da her sunucunun işleyebileceği kadar çok sayıda kullanıcının isabet ettiğinden emin olmak için bir performans ölçüsüdür. Yüksek kullanılabilirlik ayarı istediğiniz gibi geliyor . SQL Server kullandığınızı söylediğiniz için, yük devretme içine bakmak istiyorum. Bu, birincil veritabanı yoksa istemcilerin yük devretme sunucularına erişmeye çalışacağı anlamına gelir. SQL Server, birincil örneği ve her yük devretmeyi senkronize halde tutmayı ve ayrıca birincil örnek çevrimdışı olmaya başladığında birincil örneği yük devretme ile yeniden senkronize etmeyi de işler.


0

Tamam, başlıyoruz. YAPILAMAZ. Uygulama değişikliği olmadan olmaz.

  • Güncelleştirmeleri yükleyin - çalışan veya başka bir bilgisayara daha hızlı geçebilecek İKİ veritabanına sahip olduğunuzdan emin olmak için kümeleme veya yansıtma kullanın. Aynalama kuvvetle tercih edilir.
  • Bunu işlemek için uygulamayı yeniden yazın (yani bağlantıların başarısız olması, daha sonra bir kopyaya bağlanabilmesi için saydam bir şekilde yeniden bağlanması gerekir).

Yeni bir kopyasını dağıtırken / db şeması değişikliklerini yaparken hala bakım için uygulamayı kaldırmanız gerektiğini unutmayın.


0

Burada uygun maliyetli bir cevap, veritabanını, aksi takdirde veritabanı kaynaklarını bağlayacak olan mantıksal işlem ve veri depolama sağlayan ucuz bir emtia dengeli sunucu katmanı barındırma uygulama hizmetleriyle arabelleğe almaktır. Açıkçası bu, veri oynaklığı ve önbellek stratejileri hakkında biraz düşünmeyi gerektirir.


-1

Size jurassic bir cevap vereyim. Hedefleriniz "Windows güncellemelerini yükle" içeriyorsa, kurtarmanın ötesindesiniz.

Sakalımda gri var ve bir uygulamanın "işletim sistemi güncellemelerine" uğramak zorunda kalmadan 10 yıl çalışabileceği bir zamanı hatırlayabiliyorum. Bir uygulamanın yararlı ömrü yıllar değil, on yıllar olarak ölçülmüştür.

Benim tavsiyem şudur: SQL Server veritabanı + uygulamanızın çalışan bir sürümünü oluşturun ve VERİTABANI SUNUCUSU MICROSOFT GÜNCELLEMELERİNDEN İZOLE EDİN. Eğer kırık değilse, tamir etmeyin.

Çalışırken değiştirilebilir RAID diskler kullanın.

Donanımınızın patlaması durumunda bir ayna görüntüsü veritabanı sunucusuna (TomTom'un önerisi uyarınca) elinizin altında bulundurun.


3
Tim, bu, sonuçları bir Excel dosyasında saklayabildiğinizde neden bir veritabanı kullandığınızı söylemek gibidir? İşletim sisteminde çok sayıda güvenlik açığı vardır ve düzenli güncellemeler yüklememek / anti-virüs / güvenlik duvarı kurallarını güncel tutmak kötü bir tavsiye değildir. Herhangi bir düzeyde tavsiye edilmez.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.