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.
źródło
Odpowiedzi:
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:
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:
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.
źródło
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.
źródło
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.
źródło
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 :-)
źródło
count()
, co wydaje się być piętą achillesową postgresa). Musiałem zapytać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ś.
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.
źródło