Які особливості Oracle роблять його привабливим вибором для невеликих проектів?


13

Враховуючи ліцензування роботи Oracle [a] (і, в меншій мірі, вартість), мені завжди було цікаво, якими визначальними факторами буде вибір Oracle через PostgreSQL або MySQL.

Моя компанія майже завжди вибирає Oracle (де це можливо XE), навіть для невеликих проектів, де є лише одне просте поле сервера Windows, на якому працює база даних без спеціального адміністрування БД. (Зверніть увагу , що маленький зовсім НЕ означає , дані завжди будуть відповідати відносно невеликі обмеження по розміру з Oracle XE.)

Я завжди ставив під сумнів цей вибір, але це приносить користь, що ми, принаймні, піддаємось лише одному продукту бази даних.

Проте, з огляду на новий проект, де вам потрібна RDBMS, але проект і обсяг бази даних досить малий, на основі яких унікальних особливостей Oracle, що працюють на простих серверних скриньках Windows (без занадто багато виділеного адміністрування), ви вибрали б Oracle над ще RDBMS?

Додатковий контекст : велика частина розгортань нашої бази даних працює на сайтах клієнтів у режимі, що дозволяє називати її у режимі з низьким рівнем адміністрації. Тобто база даних встановлюється один раз. Існує деякий початковий тест на його правильну поведінку та продуктивність на місці. Після цього база даних просто працює. Жодного регулярного управління не робилося. Тільки якщо щось порушено, технік (а не спеціалізований DBA) перевірятиме базу даних, намагаючись з’ясувати, що там. Резервне копіювання в основному робиться як автономне резервне копіювання. У деяких проектах клієнтів навіть не хвилює, що тут задіяні RDBMS. Вони просто бачать свій додаток як чорний ящик, який працює (чи ні).

[А]: Де я працюю, треба було кілька менеджерів проектів неодноразово місяці , щоб отримати належне ліцензування для невеликих проектів, просто не дуже зацікавлені в продажу свого продукту , якщо дохід занизький місцеві представники Oracle.


Як вони обирають XE для даних, які "не завжди відповідають обмеженим розмірам XE"?
Джек каже, спробуйте topanswers.xyz

@Jack: якщо він підходить, ми використовуємо XE, якщо він не ... ну ми не :-)
Мартін

11.2 Express Edition знаходиться в бета-версії, а ліміт даних користувачів розширено з 4 ГБ до 11 ГБ. Дивіться oracle.com/technetwork/database/express-edition/…
Leigh

Oracle має PIVOT, MySQL та Postgres. Це великий плюс у деяких ситуаціях.
Філ Лелло

1
@ Phil Lello: У PostgreSQL є PIVOT, перевірте
внесок

Відповіді:


12

Я можу спробувати відповісти лише за Oracle та postgres. Після використання Oracle виключно протягом багатьох років, а постгрес лише протягом останніх двох років, я люблю постгреси. Існує так багато маленьких способів, які зручніше використовувати, ніж Oracle, і він має багато вирішальних переваг (наприклад, MVCC). Він простіший в управлінні, надійний, має чудову документацію, і, звичайно, безкоштовний.

Однак postgres не відповідає Oracle у деяких областях, таких як:

  • RAC - наскільки я знаю, немає кращої технології кластеризації для жодної бази даних
  • RMAN - набагато перевершує основні функції резервного копіювання та відновлення postgres, особливо з відстеженням змін блоків та інкрементальними резервними копіями (які ви можете застосувати до інших резервних копій, щоб постійно оновлювати повне резервне копіювання)
  • Підтримка Oracle - існує. підтримка постгресів? Не так багато
  • багато інших функцій, таких як IOT, "безпечні файли" та технології стиснення, які не мають аналогу у світі постгресів

Цікаво, що майже всі ці ознаки відсутні у XE або каліки. Я думаю, я б вибрав постгреси над XE, всі інші рівні, але ...

... жодне з цих питань не стосується двох найбільших причин вибору Oracle:

  1. Ви вже використовуєте Oracle і у вас є величезні інвестиції (незалежність бази даних - дурний міф)
  2. Ваші розробники та DBA знають Oracle і повною мірою використовують його функції (чому б вони, як незалежність бази даних, взагалі не були дурним міфом?)

Редагувати:

Єдина ситуація, коли я обираю постгреси над XE кожного разу, якщо безпека викликає побоювання. Якщо ваша база даних чи будь-які її програми піддаються загальнодоступному Інтернету, я не впевнений, чи XE - це взагалі хороша ідея.


rgd. RMAN - Отже, ви б сказали, що функції резервного копіювання Oracle "кращі", ніж функції Postgre? Чи буде це затримано в середовищі з низьким рівнем адміністрування (див. Мою редакцію Q)?
Мартін

@Martin - RMAN є потужним і дуже зрілим, я довіряю цьому, як він бачив мене через кілька різних ситуацій відновлення. Одна справа, це не просто. Це здається, що ви робите без дорогих DBA, ви зараз використовуєте RMAN для своїх автономних резервних копій? Як ви відвантажуєте свої (щоденні?) Декілька резервних копій Gb з сайтів клієнтів?
Джек каже, спробуйте topanswers.xyz

На сервері SQL є кластеризація HA, яка була б еквівалентом RAC Oracle.
StanleyJohns

@stan dba З того, що я читав про параметри кластеризації для SQL Server, вони насправді зовсім не порівнянні з RAC, більшість з них не спрацьовують над рішеннями, а не справжніми рішеннями на зразок rac.
Меттью Уотсон

Ваша друга причина вибору Oracle майже однакова як перша, IMO. В основному, що ви віддані. - Що стосується підтримки, то, безумовно, існує і для Postgres. Якщо ви не задоволені відмінними списками розсилки, ознайомтесь із цим списком для компаній, які пропонують платну підтримку у вашому регіоні.
eevar

9

Oracle Apex . Зручне, просте у використанні середовище веб-додатків, вбудоване прямо в базу даних. Досить просто, це дозволяє дуже просто розгортати програми "єдиного ящика" за допомогою логіки / бази даних web ui в єдиний інтегрований пакет.

PS. 11g XE (зараз у бета-версії) розширює обсяг пам’яті до понад 10 Гб.


+1 для APEX. Незважаючи на те, що у неї є проблеми та гремліни, я люблю це, щоб швидко та легко зняти програми. Я думаю, що RAD для Oracle як можна отримати.
Керрі Шоттс

5

Хоча інші параметри спалаху Oracle недоступні в Express Edition, Flashback Query є. Відповідно до питання про нього , жодна інша база даних не має такої функції, яка дозволяє обраному оператору запитувати дані про момент часу в минулому. Дані Flashback можна об'єднати з поточними даними та вставити у поточні таблиці, що робить його корисним для операцій скасування типу, тимчасових змін та порівняння змін, зроблених методом, в одному місці.

Деякі інші речі, які не мають інших баз даних, які має Oracle Express Edition.


5
postgres відзначає "Поточний користувач AuthID vs. Definer", "Перевірити обмеження", "Відкладені обмеження", "Додавання та віднімання дат", "Ієрархічні запити", тригери не схеми, більшість "Аналітичні функції", деякі "Функції колекції" , "XML-функції", підключіть до 1 Гбіт, "Створити або замінити" та "Мультиплатформні" також (принаймні)
Джек каже спробувати topanswers.xyz

@JackPDouglas Складно створити список профі, коли конкуренція - це "все інше". Дякую за інформацію.
Лей Ріффер

@Leigh - погодився, я думаю, ваш список є корисною довідкою для Мартіна. Ви не згадуєте про RMAN, принаймні у поточному (v10) XE він включений, хоча не використовується за замовчуванням. Лише один вибір ніт: якщо XE обмежений 4 або 11 Гбіт, то Клоби до 128 Тб насправді не підтримуються :)
Джек каже, спробуйте topanswers.xyz

@JackPDouglas Ви вже згадали про RMAN, і я не збирався витісняти вашу відповідь (чи будь-які інші).
Лей Ріффер

@JackPDouglas Хороший улов на клобі. Я залишив його у списку, оскільки менші клоби можуть бути корисними в XE, і якщо база даних зростає, то знаходження на платформі, яка підтримує надзвичайно великі клоби, може бути корисною.
Лей Ріффер

4

Перш за все, я думаю, що ви не повинні недооцінювати той факт, що вже існує Oracle Know-How, але не для інших RDBMS. Набуття знань для інших вимагає часу та коштів, а також може супроводжуватися деякими помилками на початку.

Крім того, ви ніколи не знаєте, чи маленький проект колись не виросте. Тоді ви можете дуже плавно та швидко перейти з XE до Standard Edition One до Standard Edition до Enterprise Edition. Міграція з іншої RDBMS знову потребує набагато більше часу та грошей. Підсумок: Я думаю, що ваша компанія робить це правильно - добре, я, можливо, трохи упереджена :-)


Weeell. Я б сказав, що Oracle знає, як тут йдеться ... хм ... мені , мабуть, потрібні 3 години, щоб грати з Postgre плюс трохи гуглити, щоб дійти до того, що я міг би зробити так само, як і я може з Oracle. (За винятком PL / SQL) І мені подобається думати, що я тут один із користувачів живлення Oracle :-) - Але ваш аргумент щодо шляху оновлення безумовно справедливий.
Мартін

@Martin: це не є гарним знаком ... Я використовую postgres для одного з наших проектів (як частина пакетованого додатку) ~ 2 роки, і я досі не можу змусити його добре працювати (частково тому, що частини програми, яку я використовую, сильно покладаються на count(), що, здається, ахілесова п’ята після Погреса). Мені довелося запитати в stackoverflow, як вплинути на планувальника
Джо

2

Однією з приємних особливостей Oracle є такі, як Oracle Resource Manager, які роблять консолідацію додатків в одній базі даних набагато простішими, ніж наявність окремої бази даних для кожної програми. Схоже, це не використовується у вашій організації. У минулому я розробляв консолідовані бази даних для проектів так само, як ви згадуєте.

  • У кожного проекту було власне обладнання
  • Кожен проект мав свої ліцензії
  • У кожного проекту було власне сховище

Це призвело до того, що навіть найпростішому з усіх проектів потрібні місяці, щоб навіть почати роботу, і в той час, коли час на ринок надзвичайно важливий, це вбивство. Чомусь це пропускається багатьма, часто навіть нехтують політичними причинами.

Рішення для цього досить просте. Створіть одну серйозну базу даних, дайте кожному проекту / програмі власну схему [s] та отримайте доступ до користувачів [s] та запустіть години, а не місяці. Якщо ви збираєтеся робити щось подібне, це може виявитися вигідним поєднувати додатки, які мають подібні вимоги до часу роботи. Oracle отримує все більше варіантів он-лайн технічного обслуговування, але іноді отримати простої на кілька годин набагато простіше. Встановлення заздалегідь визначених часових вікон для цього може запобігти безлічі проблем. Вам знадобиться деякий час простою.

Не дозволяйте програмам підключатися до бази даних, змушуйте їх підключатися до служб, призначених для програми, використовуючи власні tns-псевдоніми. Це дозволяє перенести додаток в іншу базу даних, не потребуючи перенастроювання програми.

До речі: компанії, які застосовували такий спосіб консолідації, щорічно економили багато грошових коштів, ніж ліцензії, необхідні для запуску.


Дякую за цей вклад Зауважте, що для багатьох проектів база даних працює на сайті клієнтів, тому консолідувати їх не має сенсу. (Якщо я правильно вас розумію, до консолідації.)
Мартін

Можна все-таки порадити замовнику консолідувати його там, де пакет закінчується. Якщо вона повинна бути вбудованою базою даних, це може бути трохи інакше.
ik_zelf

Щоб було зрозуміло, Oracle XE не має функції диспетчера ресурсів, тому це було б корисно лише для об'єднання в ліцензований сервер. @ik_zelf Я знаю, що не було вашого наміру вказувати інакше.
Лі Риффель

@Leigh Riffel так, я припускав, що є доступна установка Oracle, в такому консолідованому сценарії я віддаю перевагу EE. Питання, схоже, більше спрямоване на вбудоване рішення.
ik_zelf
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.