Какие функции Oracle делают его привлекательным выбором для небольших проектов?

13

Учитывая обработку лицензий Oracle [a] (и, в меньшей степени, стоимость), я всегда задавался вопросом, какими будут решающие факторы при выборе Oracle вместо PostgreSQL или MySQL.

Моя компания почти всегда выбирает Oracle (где это возможно, XE), даже для небольших проектов, где есть только один простой серверный сервер Windows, на котором работает база данных без какого-либо выделенного администрирования БД. (Обратите внимание , что маленький вовсе не означает , данные всегда будут соответствовать относительно небольшие ограничения по размеру из Oracle XE.)

Я всегда сомневался в этом выборе, но он имеет то преимущество, что мы, по крайней мере, работаем только с одним продуктом базы данных.

Тем не менее, учитывая новый проект, где вам нужна СУБД, но проект и объем базы данных довольно малы, в зависимости от того, какие уникальные возможности Oracle, работающие на простых серверах Windows (без слишком большого выделенного администрирования), вы бы выбрали Oracle вместо другая РСУБД?

Дополнительный контекст : Многие наши базы данных развертываются на сайтах клиентов в, скажем так, режиме «низкого уровня администрирования». То есть база данных настраивается один раз. На сайте проводится предварительное тестирование правильного поведения и производительности. После этого база данных просто включается. Нет регулярной администрации сделано. Только если что-то сломано, техник (не выделенный администратор базы данных) проверит базу данных, пытаясь выяснить, в чем дело. Резервное копирование в основном делается в автономном режиме. В некоторых проектах клиенты даже не заботятся о вовлечении СУБД. Они просто видят свое приложение как черный ящик, который работает (или нет).

[a]: Там, где я работаю, нескольким менеджерам проектов неоднократно требовалось несколько месяцев, чтобы получить надлежащее лицензирование для небольших проектов, поскольку местные представители Oracle просто не очень заинтересованы в продаже своего продукта, если доход невелик.

Мартин
источник
Как они выбирают XE для данных, которые «не всегда соответствуют довольно небольшим ограничениям размера XE»?
Джек говорит, что попробуйте topanswers.xyz
@ Джек: если он подходит, мы используем XE, если нет ... ну, мы не делаем :-)
Martin
Выпуск 11.2 Express Edition находится на стадии бета-тестирования, а предел пользовательских данных был увеличен с 4 ГБ до 11 ГБ. См. Oracle.com/technetwork/database/express-edition/…
Ли Риффель
У Oracle есть PIVOT, у MySQL и Postgres нет. Это большой плюс в некоторых ситуациях.
Фил Лелло
1
@ Фил Лелло: PostgreSQL имеет PIVOT, проверьте вклад: postgresql.org/docs/current/static/tablefunc.html
Фрэнк Хайкенс,

Ответы:

12

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

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

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

Интересно, что почти все эти функции отсутствуют или повреждены в XE. Я думаю, что я бы выбрал postgres вместо XE, при прочих равных условиях, но ...

... ничего из этого не решает две основные причины выбора Oracle:

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

РЕДАКТИРОВАТЬ:

Единственная ситуация, когда я каждый раз выбираю postgres, а не XE, - это проблема безопасности. Если ваша база данных или какое-либо из ее приложений доступны общедоступному Интернету, я не уверен, что XE - это вообще хорошая идея.

Джек говорит, попробуйте topanswers.xyz
источник
РГД. RMAN - То есть вы бы сказали, что функции резервного копирования в Oracle «лучше», чем в Postgre? Будет ли это выполняться в среде с низким уровнем администрирования (см. Мой Q-редактор)?
Мартин
@Martin - RMAN является мощным и очень зрелым, я доверяю ему, поскольку он видел меня через несколько различных ситуаций восстановления. Одна вещь, это не просто. Похоже, вы обходитесь без дорогих администраторов баз данных. В настоящее время вы используете RMAN для автономного резервного копирования? Как вы отправляете (ежедневно?) Несколько Гб резервных копий с клиентских сайтов?
говорит Джек, попробуйте topanswers.xyz
SQL-сервер имеет кластеризацию HA, которая была бы эквивалентна RAC Oracle.
СтэнлиДжонс
@stan the dba Из того, что я читал о параметрах кластеризации для SQL Server, на самом деле они вообще не сопоставимы с RAC, большинство из них являются решениями, основанными на отказоустойчивости, а не решениями с истинным масштабированием, такими как rac.
Мэтью Уотсон
Ваша вторая причина выбора Oracle почти такая же, как и первая, IMO. В основном, что вы привержены. - Что касается поддержки, то она, безусловно, существует и для Postgres. Если вас не устраивают отличные списки рассылки, посмотрите этот список для компаний, предлагающих платную поддержку в вашем регионе.
Эевар
9

Oracle Apex . Удобная и простая в использовании среда веб-приложений, встроенная прямо в базу данных. Проще говоря, это позволяет очень просто развертывать «единичные» приложения с веб-интерфейсом / логикой / базой данных приложения в одном интегрированном пакете.

PS. 11g XE (в настоящее время в бета-версии) расширяет объем хранилища до более 10 ГБ.

Gary
источник
+1 за APEX. В то время как у него есть свои проблемы и гремлины, я ЛЮБЛЮ это для быстрого и простого запуска приложений. Думаю, как RAD для Oracle.
Керри Шоттс
5

Несмотря на то, что в Express Edition нет других опций возврата в Oracle, Flashback Query есть. Согласно этому вопросу , ни в одной другой базе данных нет такой функции, которая позволяет оператору select запрашивать данные на определенный момент времени в прошлом. Данные флэшбека могут быть объединены с текущими данными и вставлены в текущие таблицы, что делает их полезными для операций отмены типа, временных изменений и сравнения изменений, внесенных методом в одном месте.

Некоторые другие вещи, которых нет в других базах данных, которые есть у Oracle Express Edition.

Ли Риффель
источник
5
postgres отмечает «Текущий пользователь против определителя», «Проверка ограничений», «Отложенные ограничения», «Добавление и вычитание даты», «Иерархические запросы», триггеры, не являющиеся схемами, большинство «Аналитических функций», некоторые «Функции сбора данных». , «Функции XML», можно использовать до 1 Гб, поля «Создать или заменить» и «
Мультиплатформенность»
@JackPDouglas Трудно составить список профессионалов, когда в конкурсе «все остальное». Спасибо за информацию.
Ли Риффель
@Leigh - согласился, я думаю, твой список полезен для Мартина. Вы не упоминаете RMAN, по крайней мере, в текущем (v10) XE он включен, хотя по умолчанию не используется. Только один придирчивый: если XE ограничен 4 или 11 ГБ, то Clob до 128 ТБ на самом деле не поддерживаются :)
Джек говорит, что попробуйте topanswers.xyz
@JackPDouglas Вы уже упомянули RMAN, и я не собирался заменять ваш ответ (или любые другие).
Ли Риффель
@JackPDouglas Хорошо поймать удар. Я оставил это в списке, потому что меньшие сгустки могут быть полезны в XE, и если база данных растет, то может оказаться полезным быть на платформе, которая поддерживает очень большие сгустки.
Ли Риффель
4

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

Кроме того, вы никогда не знаете, будет ли когда-нибудь расти маленький проект. Затем вы можете очень легко и быстро выполнить обновление с XE до Standard Edition One и Standard Edition до Enterprise Edition. Переход с другой СУБД снова займет гораздо больше времени и денег. Итог: я думаю, что ваша компания делает это правильно - хорошо, я могу быть немного предвзятым :-)

Уве Гессе
источник
Weeell. Я бы сказал, что Oracle знает, как здесь примерно ... хм ... Мне , наверное, понадобится 3 часа, чтобы поиграть с Postgre и немного погуглить, чтобы добраться до того момента, когда я смогу сделать с ним столько же, сколько и я. можно с Oracle. (За исключением PL / SQL) И мне нравится думать, что я один из опытных пользователей Oracle здесь :-) - Но ваш аргумент о пути обновления, безусловно, верен.
Мартин
@Martin: это не очень хороший знак ... Я использую postgres для одного из наших проектов (как часть упакованного приложения) в течение ~ 2 лет, и до сих пор не могу заставить его работать хорошо (отчасти потому, что части приложения, которые я использую, в значительной степени полагаются на count()ахиллесову пяту Постгреса). Я должен был спросить на стеке потока, как повлиять на планировщик
Джо
2

Одной из приятных особенностей Oracle являются такие, как Oracle Resource Manager, которые значительно упрощают консолидацию приложений в одной базе данных, чем наличие отдельной базы данных для каждого приложения. Похоже, это не используется в вашей организации. В прошлом я создавал консолидированные базы данных для проектов, как вы упомянули.

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

Это привело к тому, что даже самым простым из всех проектов потребовались месяцы, чтобы начать работу, и в то время, когда время выхода на рынок чрезвычайно важно, это убивает. По некоторым причинам это упускается многими, часто даже игнорируется по политическим причинам.

Решение для этого довольно просто. Создайте одну серьезную базу данных, дайте каждому проекту / приложению свою собственную схему [ы] и получите доступ к пользователям [и] и начните работать за часы, а не месяцы. Если вы собираетесь сделать что-то подобное, может оказаться полезным объединить приложения, которые имеют схожие требования к времени безотказной работы. Oracle получает все больше и больше вариантов обслуживания в режиме онлайн, но иногда простои на несколько часов проще. Наличие временных рамок для этого, определенного заранее, может предотвратить множество проблем. Вам понадобится некоторое время простоя.

Не позволяйте приложениям подключаться к базе данных, заставляйте их подключаться к сервисам, выделенным для приложения, используя их собственные tns-алиасы. Это позволяет вам переместить приложение в другую базу данных без необходимости перенастраивать приложение.

Кстати, компании, которые использовали этот способ консолидации, ежегодно экономили много денег, больше, чем лицензии, необходимые для начала работы.

ik_zelf
источник
Спасибо за этот вклад. Обратите внимание, что во многих проектах база данных работает на клиентских сайтах, поэтому объединять их бессмысленно. (Если я вас правильно понял по отношению к консолидации.)
Мартин,
Можно было бы посоветовать, чтобы заказчик консолидировал его там, где заканчивается пакет. Если предполагается, что это встроенная база данных, она может немного отличаться.
ik_zelf
Для ясности, Oracle XE не имеет функции Resource Manager, так что это было бы полезно только для консолидации на лицензированном сервере. @ik_zelf Я знаю, что ты не собирался указывать иначе.
Ли Риффель
@Leigh Riffel Да, я предполагал, что была доступна установка Oracle, в таком консолидированном сценарии я бы предпочел EE. Вопрос, казалось, был больше направлен на встраиваемое решение.
ik_zelf