Jakie cechy Oracle czynią go atrakcyjnym wyborem dla małych projektów?

13

Biorąc pod uwagę obsługę licencji Oracle [a] (i, w mniejszym stopniu, koszty), zawsze zastanawiałem się, jakie będą decydujące czynniki decydujące o wyborze Oracle zamiast PostgreSQL lub MySQL.

Moja firma prawie zawsze wybiera Oracle (w miarę możliwości XE), nawet w przypadku małych projektów, w których istnieje tylko jeden prosty serwer Windows z uruchomioną bazą danych, bez dedykowanej administracji DB. (Zauważ, że mały nie nie znaczy dane zawsze będą pasowały do raczej niewielkie ograniczenia wielkości Oracle XE).

Zawsze kwestionowałem ten wybór, ale ma tę zaletę, że przynajmniej jesteśmy narażeni na działanie tylko jednego produktu bazodanowego.

Biorąc pod uwagę nowy projekt, w którym potrzebujesz RDBMS, ale projekt i zakres bazy danych jest dość mały, w oparciu o które unikalne funkcje Oracle działające na prostych serwerach Windows (bez zbyt dużej administracji) wybrałbyś Oracle kolejny RDBMS?

Dodatkowy kontekst : Wiele wdrożeń naszych baz danych działa w witrynach klientów w trybie „na niskim poziomie administrowania”. Oznacza to, że baza danych jest konfigurowana raz. Na miejscu jest kilka wstępnych testów poprawności jego działania i wydajności. Następnie baza danych jest po prostu uruchomiona. Nie wykonano regularnej administracji. Tylko jeśli coś się zepsuje, technik (nie dedykowany DBA) sprawdzi bazę danych, próbując dowiedzieć się, co jest grane. Kopia zapasowa jest wykonywana głównie jako kopia zapasowa offline. W niektórych projektach klienci nawet nie dbają o udział RDBMS. Widzą tylko swoją aplikację jako czarną skrzynkę, która działa (lub nie).

[a]: Tam, gdzie pracuję, kilkakrotnie miesiące zajęło kilku menedżerom projektów uzyskanie odpowiedniej licencji na małe projekty, ponieważ lokalni przedstawiciele Oracle po prostu nie są bardzo zainteresowani sprzedażą swoich produktów, jeśli przychody są niewielkie.

Jaskółka oknówka
źródło
Jak wybierają XE dla danych, które „nie zawsze pasują do raczej niewielkich ograniczeń rozmiaru XE”?
Jack mówi, że spróbuj topanswers.xyz
@Jack: jeśli to pasuje, używamy XE, jeśli nie ... no cóż, nie :-)
Martin
Wersja 11.2 Express Edition jest w wersji beta, a limit danych użytkownika został zwiększony z 4 GB do 11 GB. Zobacz oracle.com/technetwork/database/express-edition/…
Leigh Riffel
Oracle ma PIVOT, MySQL i Postgres nie. To duży plus w niektórych sytuacjach.
Phil Lello,
1
@ Phil Lello: PostgreSQL ma PIVOT, sprawdź contrib: postgresql.org/docs/current/static/tablefunc.html
Frank Heikens

Odpowiedzi:

12

Mogę tylko próbować odpowiedzieć za Oracle i postgres. Po korzystaniu z Oracle wyłącznie przez lata, a postgres tylko przez ostatnie dwa lata, uwielbiam postgres. Jest tak wiele małych sposobów, że jest wygodniejszy w użyciu niż Oracle i dzieli wiele kluczowych korzyści (takich jak MVCC). Łatwiej jest administrować, jest niezawodny, ma doskonałą dokumentację i oczywiście jest bezpłatny.

Jednak postgres nie jest zgodny z Oracle w niektórych obszarach, takich jak:

  • RAC - o ile wiem, nie ma lepszej technologii klastrowania dla żadnej bazy danych
  • RMAN - znacznie lepszy od podstawowych funkcji tworzenia kopii zapasowych i odzyskiwania postgres, zwłaszcza ze śledzeniem zmian bloków i przyrostowymi kopiami zapasowymi (które można zastosować do innych kopii zapasowych, aby zachować aktualną pełną kopię zapasową)
  • Obsługa Oracle - istnieje. wsparcie postgres? Nie tak bardzo
  • wiele innych funkcji, takich jak IOT, „Bezpieczne pliki” i technologia kompresji, które nie mają odpowiednika w świecie postgres

Co ciekawe, prawie wszystkie te funkcje są nieobecne lub uszkodzone w XE. Myślę, że wybrałbym postgres zamiast XE, wszystkie inne były równe, ale ...

... żaden z tych punktów nie dotyczy dwóch największych powodów wyboru Oracle:

  1. Używasz już Oracle i masz w to ogromną inwestycję (niezależność bazy danych to głupi mit)
  2. Twoi programiści i DBA znają Oracle i w pełni wykorzystują jego funkcje (dlaczego w ogóle nie mieliby być głupotą?

EDYTOWAĆ:

Jedyną sytuacją, w której za każdym razem wybieram postgres zamiast XE, jest kwestia bezpieczeństwa. Jeśli twoja baza danych lub którakolwiek z jej aplikacji jest dostępna dla publicznego Internetu, nie jestem pewien, czy XE jest dobrym pomysłem.

Jack mówi, że spróbuj topanswers.xyz
źródło
rgd. RMAN - Powiedziałbyś więc, że funkcje tworzenia kopii zapasowych w Oracle są „lepsze” niż w Postgre? Czy to się utrzyma w środowisku o niskim poziomie administracji (patrz moja edycja Q)?
Martin
@Martin - RMAN jest potężny i bardzo dojrzały, ufam temu, ponieważ widział mnie przez kilka różnych sytuacji odzyskiwania. Jedno nie jest „proste”. Wygląda na to, że radzisz sobie bez drogich DBA, czy używasz RMAN do tworzenia kopii zapasowych offline? W jaki sposób wysyłasz (codziennie?) Kopie zapasowe Gb poza witryny klienta?
Jack mówi, że spróbuj topanswers.xyz
Serwer SQL ma klastrowanie HA, które byłoby odpowiednikiem RAC Oracle.
StanleyJohns
@stan dba Z tego, co przeczytałem o opcjach klastrowania dla SQL Server, nie są one w ogóle porównywalne z RAC, większość z nich to przełączenia awaryjne, a nie rozwiązania w skali rzeczywistej, takie jak rac.
Matthew Watson,
Twój drugi powód wyboru Oracle jest prawie taki sam jak pierwszy, IMO. Zasadniczo jesteś zaangażowany. - Jeśli chodzi o wsparcie, to z pewnością istnieje również w przypadku Postgres. Jeśli nie jesteś zadowolony z doskonałych list mailingowych, sprawdź tę listę dla firm oferujących płatne wsparcie w twoim regionie.
każdy
9

Oracle Apex . Poręczne, łatwe w użyciu środowisko aplikacji internetowych wbudowane bezpośrednio w bazę danych. Po prostu sprawia, że ​​bardzo łatwo jest wdrożyć aplikacje „single-box” z interfejsem WWW / logiką aplikacji / bazą danych w jednym zintegrowanym pakiecie.

PS. 11 g XE (obecnie w wersji beta) powiększa pamięć do ponad 10 GB.

Gary
źródło
+1 za APEX. Chociaż ma swoje problemy i gremliny, UWIELBIAM to, aby szybko i łatwo uruchamiać aplikacje. Myślę, że jak RAD dla Oracle.
Kerri Shotts,
5

Chociaż inne opcje flashbacka Oracle nie są dostępne w wersji Express Edition, zapytanie Flashback jest dostępne. Zgodnie z pytaniem na ten temat żadna inna baza danych nie ma tej funkcji, która pozwalałaby instrukcji select na wyszukiwanie danych od pewnego momentu w przeszłości. Dane z retrospekcji mogą być łączone z bieżącymi danymi i wstawiane do bieżących tabel, dzięki czemu są przydatne do cofania operacji na typie, zmian tymczasowych i porównywania zmian dokonanych metodą w jednym miejscu.

Niektóre inne rzeczy, których nie mają inne bazy danych, takie jak Oracle Express Edition.

Leigh Riffel
źródło
5
postgres zaznacza „AuthID Current User vs. Definer”, „Check Constraints”, „Deferrable Constraints”, „Dodawanie i odejmowanie dat”, „Hierarchical Queries”, wyzwalacze inne niż schematy, większość „funkcji analitycznych”, niektóre „funkcje zbierania” , „Funkcje XML”, clob do 1 Gb, pola „Utwórz lub zamień” oraz „Wieloplatformowe” (przynajmniej)
Jack mówi, spróbuj wypróbować topanswers.xyz
@JackPDouglas Trudno jest stworzyć listę zawodowców, gdy konkurencja to „wszystko inne”. Dzięki za informację.
Leigh Riffel
@Leigh - zgadzam się, zgaduję, że twoja lista jest pomocnym odniesieniem dla Martina. Nie wspominasz o RMAN, przynajmniej w obecnym (v10) XE jest on zawarty, chociaż nie jest domyślnie używany. Tylko jeden nit-pick: jeśli XE jest ograniczony do 4 lub 11 Gb, wtedy Clobs do 128 TB nie są tak naprawdę obsługiwane :)
Jack mówi, spróbuj wypróbować topanswers.xyz
@JackPDouglas Wspomniałeś już o RMAN i nie zamierzałem wypierać twojej odpowiedzi (ani żadnej innej).
Leigh Riffel
@JackPDouglas Dobry haczyk na zapadce. Zostawiłem go na liście, ponieważ mniejsze X-klany mogą być przydatne w XE, a jeśli baza danych rośnie, to przydatne może być bycie na platformie obsługującej bardzo duże.
Leigh Riffel
4

Po pierwsze, uważam, że nie należy lekceważyć tego, że istnieje już Oracle Know-How, ale nie w przypadku innych RDBMS. Budowanie wiedzy dla innych wymaga czasu i pieniędzy, a na początku mogą im towarzyszyć błędy.

Co więcej, nigdy nie wiadomo, czy mały projekt gdzieś nie wzrośnie. Następnie możesz bardzo sprawnie i szybko zaktualizować wersję XE do Standard Edition One do Standard Edition do Enterprise Edition. Migracja z innego RDBMS ponownie zajmie znacznie więcej czasu i pieniędzy. Podsumowując: Myślę, że twoja firma robi to dobrze - ok, mogę być trochę stronniczy :-)

Uwe Hesse
źródło
Weeell. Powiedziałbym, że Oracle wiem jak tu jest o ... hmm ... Jestem „d prawdopodobnie trzeba 3 godziny zabawy z Postgre powiększonej trochę googleing aby dostać się do punktu, w którym mógłbym zrobić tak samo jak ja z nim może z Oracle. (Z wyjątkiem PL / SQL) I lubię myśleć, że jestem jednym z zaawansowanych użytkowników Oracle :-) - Ale twój argument dotyczący ścieżki aktualizacji jest z pewnością słuszny.
Martin
@Martin: to nie jest dobry znak ... Używam postgres do jednego z naszych projektów (jako część aplikacji w pakiecie) od około 2 lat i nadal nie mogę uzyskać dobrej wydajności (częściowo dlatego, że części aplikacji, których używam, w dużej mierze zależą od tego count(), co wydaje się być piętą achillesową postgresa). Musiałem zapytać
Joe
2

Jedną z fajnych funkcji Oracle są takie jak Oracle Resource Manager, które znacznie ułatwiają konsolidację aplikacji w jednej bazie danych niż oddzielna baza danych dla każdej aplikacji. Wygląda na to, że nie jest to używane w Twojej organizacji. W przeszłości projektowałem skonsolidowane bazy danych dla projektów, o których wspomniałeś.

  • Każdy projekt miał własny sprzęt
  • Każdy projekt miał własne licencje
  • Każdy projekt miał własną pamięć

To spowodowało, że nawet najprostszy ze wszystkich projektów potrzebował miesięcy, a nawet w czasach, gdy czas na wprowadzenie na rynek jest niezwykle ważny, to zabija. Z jakiegoś powodu jest to pomijane przez wielu, często nawet zaniedbywane z powodów politycznych.

Rozwiązanie tego problemu jest dość proste. Utwórz jedną poważną bazę danych, nadaj każdemu projektowi / aplikacji własny schemat, uzyskaj dostęp do użytkowników i zacznij działać w ciągu kilku godzin, a nie miesięcy. Jeśli zamierzasz zrobić coś takiego, korzystne może być połączenie aplikacji, które mają podobne wymagania dotyczące czasu działania. Oracle otrzymuje coraz więcej opcji konserwacji online, ale czasami uzyskanie kilku godzin przestoju jest znacznie łatwiejsze. Określenie wcześniej zdefiniowanych przedziałów czasowych może zapobiec wielu problemom. Będziesz potrzebować trochę przestoju.

Nie zezwalaj aplikacjom na łączenie się z bazą danych, zmuszaj je do łączenia się z usługami dedykowanymi aplikacji przy użyciu ich własnych aliasów tns. Pozwala to przenieść aplikację do innej bazy danych bez konieczności ponownej konfiguracji aplikacji.

BTW: firmy, które skorzystały z tego sposobu konsolidacji, oszczędzały rocznie dużo gotówki, więcej niż licencje wymagane do rozpoczęcia działalności.

ik_zelf
źródło
Dzięki za ten wkład. Należy pamiętać, że wiele projektów ma bazę danych działającą w witrynach klientów, więc ich konsolidacja nie ma sensu. (Jeśli rozumiem, że poprawnie wpisujesz się w konsolidację.)
Martin
Nadal zaleca się konsolidację przez klienta w miejscu, w którym kończy się paczka. Jeśli ma to być osadzona baza danych, może być nieco inna.
ik_zelf
Żeby było jasne, Oracle XE nie ma funkcji Resource Manager, więc przydałoby się to tylko w przypadku konsolidacji na licencjonowanym serwerze. @ik_zelf Wiem, że nie było Twoją intencją wskazanie inaczej.
Leigh Riffel
@Leigh Riffel tak, zakładałem, że dostępna jest instalacja Oracle, w takim skonsolidowanym scenariuszu wolałbym EE. Wydawało się, że pytanie dotyczy bardziej wbudowanego rozwiązania.
ik_zelf