SQL Server równoważny funkcjonalności Oracle RAC? [Zamknięte]

11

Zrobiłem trochę googlingu i nie mogłem znaleźć odpowiedzi na to pytanie dłużej niż kilka lat temu, więc pomyślałem, że zapytam. Funkcja Oracle RAC oferuje równoważenie obciążenia zarówno dla transakcji odczytu i zapisu, jak również skalowanie i wysoką dostępność bez przestojów (przynajmniej, jak rozumiem - zamierzamy wdrożyć nasze pierwsze bazy danych, które używają RAC, więc Zobaczę jak to będzie).

Czy jest jakiś zestaw funkcji programu SQL Server (lub komponent innej firmy, który można zainstalować na górze), który zapewnia równoważną funkcjonalność? Zawsze korzystaliśmy z klastrowania systemu Windows, w którym zdarzenie przełączania awaryjnego powoduje około 20-30 sekund przestoju SQL - zawsze tolerowane, ale nie idealne. Teraz, dzięki AlwaysOn w SQL 2012, SQL Server zmniejsza to do około 15 sekund i dodaje koncepcję pomocniczych baz danych tylko do odczytu, ale nadal wymaga, aby transakcje zapisu były dławione przez jeden punkt połączenia (znacznie ulepszone, ponieważ wiele transakcji jest po prostu przeczytaj, ale nadal tak naprawdę nie jest równoważenie obciążenia), aw przypadku awarii węzła lub konieczności łatania nadal występuje przestój.

Przypuszczam, że to tylko większa ciekawość - wydaje mi się, że to jedyny obszar, w którym SQL Server pozostaje w tyle za Oracle (przynajmniej wśród funkcji, które osobiście widziałem). Chciałem sprawdzić, czy są jakieś opcje, aby wypełnić tę lukę i ewentualnie poprawić nasze własne wdrożenie SQL Server, czekając na dodanie równoważnej funkcji Microsoftu - może w SQL 2014/2015?

SqlRyan
źródło
1
Nie jestem pewien, czy SQL Server jest tak daleko w tyle za Oracle. Cóż, tak, ma funkcję, której nie ma SQL Server, ale pamiętaj, aby ponownie odwiedzić ten wątek po uruchomieniu go przez kilka miesięcy i poinformować nas, czy to wszystko róże, czy nie. :-) Ja też nie mam z tym doświadczenia, ale koledzy, którzy nie zawsze mieli dobre zdanie na ten temat.
Aaron Bertrand
2
Mam również nadzieję, że nie spodziewacie się żadnych dokładnych spekulacji na temat funkcji w przyszłych wersjach SQL Server. Ci, którzy wiedzą, czy są takie funkcje w fazie planowania, nie mogą ci powiedzieć; ci, którzy też nie mogą ci powiedzieć. :-)
Aaron Bertrand
1
@AaronBertrand: W porządku, nie spodziewam się żadnych spekulacji na temat funkcji, ponieważ zdaję sobie sprawę, że w ogóle nie byłaby trafna. Chociaż AlwaysOn jest ulepszeniem (w niektórych przypadkach), miałem większe nadzieje, że ściślej powiela funkcjonalność RAC i wypełnia tę lukę. Moim zdaniem MSSQL robi wiele rzeczy lepiej niż Oracle, ale moim zdaniem jest to jeden z obszarów, w których Oracle trzyma pałeczkę.
SqlRyan
1
@rwmnau jeszcze raz, sugeruję, abyś pochwalił RAC, dopóki go nie wdrożysz i nie będziesz go używać przez kilka miesięcy. :-) Możesz mieć rację; może to być wszystko, co obiecuje i działa idealnie dla Ciebie. Ale może Cię zaskoczyć błyszczący blask na pudełku. :-)
Aaron Bertrand
2
@AaronBertrand: Ha, punkt zajęty. Słyszałem wiele uwag krytycznych, takich jak to, że jest zbyt wrażliwy na opóźnienia sieciowe i szybko eksmituje węzły i tym podobne, więc zdecydowanie oceniam wszystko, dopóki go nie uruchomimy i nie wykorzystam go z pierwszej ręki . Chociaż SQL Server ma wiele opcji HA, nie wydaje się, aby poruszał się w przestrzeni „wielokrotnego zapisu”. Może
zaraz odkryję

Odpowiedzi:

8

Nie, nic w SQL Server nie może dać ci tego samego po wyjęciu z pudełka .

Obecnie jedyną technologią SQL Server, która umożliwia jednoczesne zapisy w wielu węzłach, jest replikacja peer-to-peer . Zauważ, że nie powiedziałem „zapisu skalowanego w górę”, ponieważ działa w taki sposób, że cały system ma pojemność zapisu tylko jednego węzła. Akapit wprowadzający tej strony jest starannie sformułowany, tak aby zawierał termin „skalowanie w poziomie”, nie mówiąc „napisz skalę”. Tak, mów marketingowo.

Z tego, co przeczytałem , Oracle RAC jest pod tym względem taki sam. Funkcjonalnie jedyną rzeczą, której brakuje w SQL Server w tej konfiguracji, jest rozwiązanie równoważące obciążenie, które jest zarówno zaletą (możesz go wdrożyć, jak chcesz), jak i wadą (nie jest w pudełku ani nie jest obsługiwane przez Microsoft), gdy porównywanie z konkurencyjnymi produktami.

I odwrotnie, Oracle RAC nie daje ci tego samego, co SQL Server od razu po wyjęciu z pudełka . Na przykład zaleca się wdrożenie RAC z węzłami w odległości 100 km od siebie ze względu na opóźnienie sieci w czasie rzeczywistym, podczas gdy replikacja równorzędna nie ma takich ograniczeń. (Nie twierdzę, że jedno rozwiązanie jest lepsze od drugiego: po prostu zaznaczam, że są różne. Firma powinna wybrać rozwiązanie, które najlepiej odpowiada ich konkretnym potrzebom).

Jon Seigel
źródło
1
Głównym powodem 100 km jest to, że Oracle pozostaje zgodne z ACID między węzłami - muszą komunikować się ze sobą za pośrednictwem szybkiego połączenia międzysystemowego, a prędkość światła staje się problemem. SQL Server w podobnej konfiguracji propaguje zmiany i można uzyskać konflikty na poziomie wiersza, jeśli dwa węzły zaktualizują ten sam wiersz w określonym czasie - nie ACID - ani jednej bazy danych. Zestaw instancji RAC to pojedyncza baza danych, to jest rozróżnienie.
Philᵀᴹ
@Phil: Tak, o to mi chodziło - są inni.
Jon Seigel
6

Jestem DBA obsługującym zarówno SQL 2000-2012, Oracle 11g, jak i Oracle 11g RAC.

Grupy IMO, Always On Availability Groups w SQL 2012 są bardzo zbliżone do dostępności i skalowalności RAC przy znacznie niższych kosztach zarówno w dolarach, jak i złożoności. Możesz skalować odczyty, wysyłając zapytania do kopii lustrzanych, ale chcesz przekierować cały DML na serwer główny (kopii lustrzanych programu SQL Server nie można zaktualizować). Jeśli podstawowy serwer SQL ulegnie awarii, przełączenie awaryjne do jednego z serwerów lustrzanych jest prawie natychmiastowe. RAC doświadcza podobnej pauzy, jeśli węzeł ulega awarii, ponieważ niezatwierdzone transakcje w uszkodzonym węźle są wycofywane przez pozostały węzeł.

Największą zaletą (IMHO) SQL 2012 AAAG w stosunku do RAC jest to, że jest to architektura współdzielona-nic. RAC dzieli pamięć. Jeśli to się nie powiedzie, cały klaster jest wyłączony. To ogromny SPOF w RAC, o którym wszyscy zdają się zapominać. Jeśli chcesz się przed tym zabezpieczyć, musisz skonfigurować serwer rezerwowy. Jeśli chcesz, aby to był RAC, koszt jest jeszcze bardziej skomplikowany.

Głaskanie pod brodę
źródło
1
Dobry punkt na SPOF RAC.
StanleyJohns,
5

Prosta odpowiedź na twoje pytanie brzmi: nie, SQL Server nie ma równoważnych funkcji. Istnieją aspekty SQL Server, które zapewniają pożądaną odporność na awarie (nawet tak daleko jak SQL Server 2005, gdy używa się dublowania DB i aplikacji obsługującej dublowanie), ale nie ma 1: 1 z Oracle RAC.

Eric Higgins
źródło
1

Lepszym porównaniem AlwaysOn byłaby funkcja Oracle Data Guard. Klastrowanie aktywno-pasywne. (tak, możesz czytać w trybie gotowości, ale jest on tylko do odczytu, więc nadal aktywny jest tylko jeden węzeł ”)

Oracle RAC jest zupełnie innym zwierzęciem i aktywnym klastrowaniem. Nie widziałem żadnych ruchów, jeśli Microsoft kiedykolwiek będzie chciał to wdrożyć.

Tagar
źródło
-2

SQL Server 2012/2014 z AlwaysOn dodaje wiele możliwości, które przybliżają Cię do Oracle RAC - a w niektórych przypadkach poprawiają go. (Przypomnij, że z RAC musisz korzystać z serwera aplikacji Oracle, weblogic i JDBC - a także działać w jednym centrum danych, a aplikacja może łączyć się tylko z jednym klastrem RAC - udostępniona pamięć oznacza, że ​​RAC nie działa w chmurze) .

Dzięki AlwaysOn otrzymujesz pomocnicze elementy tylko do odczytu (4 na 12, 8 na 14) i obsługę automatycznego przełączania awaryjnego. Kilka rzeczy jest jednak trudnych - AlwaysOn nie obsługuje równoważenia obciążenia - chyba że napiszesz skrypt, to zawsze narysuje pierwszy serwer na liście. Przełączanie awaryjne ma również wpływ na aplikację - nie jest przezroczyste, więc aplikacje mogą wymagać ponownego uruchomienia.

Pełne ujawnienie - pracuję dla firmy, która produkuje oprogramowanie, które rozszerza AlwaysOn. Nasze oprogramowanie do równoważenia obciążenia bazy danych SQL Server - wykonuje podział odczytu / zapisu w imieniu aplikacji, wykonuje równoważenie obciążenia oparte na czasie odpowiedzi, które obejmuje centra danych, a kolejki zapisów / transakcji przychodzących podczas przełączania awaryjnego, dzięki czemu aplikacje nie widzą błędów . Zobacz, jak Microsoft, Dell, Quicken Loans i inne przedsiębiorstwa używają oprogramowania ScaleArc, aby ulepszyć SQL Server AlwaysOn i uzyskać funkcje podobne do RAC bez żadnych zmian w aplikacji.

Michelle
źródło