Oracle RAC işlevselliğine eşdeğer SQL Server? [kapalı]


11

Bazı Google çalışanları yaptım ve bu soruya birkaç yıl öncesinden daha yakın bir cevap bulamadım, bu yüzden sorduğumu düşündüm. Oracle'ın RAC özelliği, hem okuma hem de yazma işlemleri için yük dengeleme, ayrıca durma süresi ve kesinti olmadan yüksek kullanılabilirlik sunar (en azından anladığım kadarıyla - RAC kullanan ilk veritabanlarımızı dağıtmak üzereyiz, bu yüzden nasıl gittiğini göreceğim).

Eşdeğer işlevsellik sağlayan herhangi bir SQL Server özellik kümesi (veya üste yükleyebileceğiniz üçüncü taraf bileşen) var mı? Yük devretme olayının yaklaşık 20-30 saniye SQL kesinti süresine neden olduğu Windows kümelemesini her zaman kullandık - her zaman tolere edilebilir, ancak ideal değildir. Şimdi, SQL 2012'de AlwaysOn ile, SQL Server bunu yaklaşık 15 saniyeye daraltır ve salt okunur ikincil veritabanları kavramını ekler, ancak yine de yazma işlemlerinin tek bir bağlantı noktasından boğulmasını gerektirir (birçok işlem, sadece okuyun, ancak yine de gerçekten yük dengeleme değil) ve bir düğüm hatası veya yama ihtiyacı durumunda, kesinti süresi vardır.

Sanırım sadece daha fazla merak - SQL Server'ın Oracle'ın arkasına düştüğü tek alan olduğunu düşünüyorum (en azından kişisel olarak gördüğüm özellikler arasında). Microsoft'un eşdeğer özelliğinin eklenmesini beklerken bu boşluğu kapatmak ve muhtemelen kendi SQL Server dağıtımımızı geliştirmek için herhangi bir seçenek olup olmadığını görmek istedim - belki SQL 2014/2015'te?


1
SQL Server'ın Oracle'ın çok gerisinde olduğundan emin değilim. Evet, SQL Server'ın sahip olmadığı bir özellik var, ancak birkaç ay çalıştırdıktan sonra bu ipliği tekrar ziyaret ettiğinizden emin olun ve hepsi gül olup olmadığını bize bildirin. :-) Ben de onunla deneyimi yok ama her zaman bu konuda söylenecek güzel şeyler yoktu meslektaşları.
Aaron Bertrand

2
Ayrıca, SQL Server'ın gelecek sürümlerindeki özellikler hakkında doğru bir spekülasyon beklemediğinizi umuyorum. Planlama aşamasında böyle bir özellik olup olmadığını bilenler size söyleyemez; size de söyleyemeyenler. :-)
Aaron Bertrand

1
@AaronBertrand: Yeterince adil, hiçbir özellik spekülasyonu beklemiyorum, çünkü bunun doğru olmayacağını anlıyorum. AlwaysOn bir iyileşme olsa da (bazı durumlarda), RAC'ın işlevselliğini daha yakından çoğaltmasını ve bu boşluğu kapatmasını umuyorum. Bence MSSQL, Oracle'dan çok daha iyi şeyler yapıyor, ancak bu, bence Oracle'ın batonu elinde tuttuğu bir alan.
SqlRyan

1
@rwmnau tekrar, uygulayana ve birkaç ay kullanana kadar parlayan RAC övgülerinizi tutmanızı öneririm. :-) Haklı olabilirsin; vaat ettiği her şey olabilir ve sizin için mükemmel çalışır. Ama kutunun üzerindeki parlak parıltıyla şaşırabilirsiniz. :-)
Aaron Bertrand

2
@AaronBertrand: Ha, puan alındı. Ağ gecikmesi konusunda çok hassas olduğu ve düğümleri ve benzeri şeyleri tahliye etmenin hızlı olduğu gibi bir takım eleştiriler duydum, bu yüzden kesin olarak karar verdikten sonra ilk elden kullanıyorum . SQL Server, bir dizi HA seçeneğine sahip olsa da, "birden çok yazılabilir ön uç" alanına hareket ediyor gibi görünmüyordu. Belki de nedenini
bulmak üzereyim

Yanıtlar:


8

Hayır, SQL Server'daki hiçbir şey size aynı şeyi kutudan çıkaramaz .

Şu anda, birden çok düğümde eşzamanlı yazmaya izin veren tek SQL Server teknolojisi Eşler Arası çoğaltmadır . Ben "yazma ölçeklendirme" demedim, çünkü tüm sistem sadece tek bir düğümün yazma kapasitesine sahip olacak şekilde çalışır. Bu sayfanın giriş paragrafı, "ölçeklendirme" yazmadan "ölçeklendirme" terimini içerecek şekilde dikkatle ifade edilmiştir. Pazarlama-konuşma için yay.

Gönderen ne okudum , Oracle RAC bu açıdan aynıdır. İşlevsel olarak, bu yapılandırmada SQL Server'da eksik olan tek şey, hem bir avantaj (istediğiniz şekilde uygulayabilirsiniz) hem de bir dezavantaj (kutuda değil veya Microsoft tarafından desteklenir) olan bir yük dengeleme çözümüdür. rakip ürünlere kıyasla.

Tersine, Oracle RAC size SQL Server ile aynı şeyi vermez kutudan ya. Örneğin, RAC'nin gerçek zamanlı ağ gecikmesi nedeniyle 100 km'lik düğümlerle uygulanması önerilirken, Eşler Arası çoğaltmanın böyle bir kısıtlaması yoktur. (Bir çözümün diğerinden daha iyi olduğunu söylemiyorum: Sadece farklı olduklarına işaret ediyorum. İş, özel ihtiyaçlarına en uygun çözümü seçmelidir.)


1
100 km'lik şeyin ana nedeni, Oracle'ın düğümlerde ACID uyumlu kalmasıdır - yüksek hızlı bir bağlantı üzerinden birbirleriyle iletişim kurmaları gerekir ve ışık hızı bir sorun haline gelir. Benzer bir yapılandırmadaki SQL Server değişiklikleri yayar ve iki düğüm aynı satırı belirli bir süre içinde (ACID değil) tek bir veritabanı için güncellemezse satır düzeyinde çakışmalar alabilirsiniz. Bir dizi RAC örneği tek bir veritabanıdır, bu ayrımdır.
Philᵀᴹ

@Phil: Evet, bu benim açımdan - farklılar.
Jon Seigel

6

SQL 2000-2012, Oracle 11g ve Oracle 11g RAC'yi destekleyen bir DBA'yım.

IMO, Her Zaman Açık Kullanılabilirlik SQL 2012'deki gruplar, hem dolar hem de karmaşıklık açısından çok daha az maliyetle RAC'ın kullanılabilirliğine ve ölçeklenebilirliğine çok yakındır. Aynaları sorgulayarak okumaları ölçeklendirebilirsiniz, ancak tüm DML'yi birincil sunucuya yönlendirmek istersiniz (SQL Server aynaları güncellenemez). Birincil SQL Server çökerse, aynalardan birine yük devretme neredeyse anlık olur. Bir düğüm başarısız olan düğümdeki taahhüt edilmemiş işlemler hayatta kalan düğüm tarafından geri alınırsa, RAC benzer bir duraklama yaşar.

SQL 2012 AAAG'ın RAC'ye göre en büyük avantajı (IMHO), paylaşılan bir şey mimarisi olmasıdır. RAC depolamayı paylaşır. Bu başarısız olursa, tüm küme kapanır. Bu RAC'de herkesin unutduğu büyük bir SPOF. Kendinizi buna karşı korumak istiyorsanız, bekleme sunucusu kurmanız gerekir. Bunun RAC olmasını istiyorsanız, maliyet daha da artmaktadır.


1
RAC SPOF üzerinde iyi bir nokta.
StanleyJohns

5

Sorunuza doğrudan yanıt hayırdır, SQL Server'ın eşdeğer işlevselliği yoktur. SQL Server'ın size istediğiniz tür hata toleransını veren yönleri vardır ( DB yansıtma ve aynaya duyarlı bir uygulama kullanırken SQL Server 2005'e kadar bile ), ancak Oracle RAC ile 1: 1 yoktur.


1

AlwaysOn'un daha iyi bir karşılaştırması Oracle'ın Veri Koruma özelliği olacaktır. Aktif-Pasif kümeleme. (evet, bekleme modundan okuyabilirsiniz, ancak salt okunurdur, bu nedenle yalnızca bir düğüm etkin ")

Oracle RAC tamamen farklı bir hayvan ve aktif-aktif kümelenmedir. Microsoft bunu uygulamak isteyecek bir hareket görmedim.


-2

AlwaysOn içeren SQL Server 2012/2014, sizi Oracle RAC'a yakınlaştıracak ve bazı durumlarda iyileştirecek birçok özellik ekler. (RAC ile Oracle uygulama sunucusu, weblogic ve JDBC kullanmanız gerektiğini unutmayın - ayrıca tek bir veri merkezinde çalışıyor ve uygulama yalnızca bir RAC kümesine bağlanabiliyor - paylaşılan depolama RAC'ın bulutta çalışmadığı anlamına geliyor) .

AlwaysOn ile salt okunur sekonder (12'de 4, 14'te 8) ve otomatik yük devretme desteği alırsınız. Birkaç şey zor olsa da - AlwaysOn yük dengelemeyi desteklemez - bir komut dosyası yazmazsanız, her zaman listeye ilk sunucuyu çizer. Yük devretme de uygulamayı etkiler - saydam değildir, bu nedenle uygulamaların yeniden başlatılması gerekebilir.

Tam açıklama - AlwaysOn'u artıran yazılım yapan bir şirkette çalışıyorum. Bizim yazılım dengeleme veritabanı yük ön SQL Server biter - bu uygulamanın adına / yazma bölünmüş okuyacak, tepki zamanı tabanlı yük süreleri veri merkezleri ve kuyruklar gelen yazma / işlemler yerine çalışma sırasında bu uygulamalar hataları görmüyorum böylece dengeleme gelmez . Microsoft, Dell, Quicken Loans ve diğer işletmelerin SQL Server AlwaysOn'u artırmak ve uygulama değişikliği olmadan RAC benzeri özellikleri elde etmek için ScaleArc yazılımını nasıl kullandıklarını görün.

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.