Oracle的哪些功能使其成为小型项目的诱人选择?


13

考虑到Oracle的许可处理[a](在较小程度上包括成本),我一直想知道选择PostgreSQL还是选择MySQL的决定因素是什么。

我的公司几乎总是选择Oracle(如果可能,则使用XE),即使对于只有一个简单的Windows服务器运行数据库而没有任何专门的DB管理的小型项目。(请注意,小的并不意味着数据将总是适合的Oracle XE的相当小尺寸的限制。)

我一直对这种选择提出质疑,但是这样做的好处是,至少我们只接触一种数据库产品。

尽管如此,在给定一个新项目的情况下,您需要RDBMS,但是数据库的项目和范围很小,基于您在简单Windows服务器上运行Oracle的哪些独特功能(无需过多的专门管理),您会选择Oracle另一个RDBMS?

附加上下文:我们的许多数据库部署都以“低管理”模式在客户站点上运行。即,数据库仅建立一次。对其现场的正确行为和性能进行了一些初步测试。此后,数据库就可以继续运行了。没有进行常规管理。仅当出现故障时,技术人员(而非专门的DBA)才会检查数据库,以尝试找出问题所在。备份通常作为脱机备份完成。在某些项目中,客户甚至都不在乎是否涉及RDBMS。他们只是将自己的应用视为可以(可以不可以)的黑匣子。

[a]:在我工作的地方,数名项目经理反复花了几个月的时间才能为小型项目获得适当的许可,因为如果收入微不足道,当地的Oracle代表对销售他们的产品就不太感兴趣。


他们如何为不总是符合XE较小尺寸限制的数据选择XE?
杰克说请尝试topanswers.xyz 2011年

@杰克:如果合适,我们会使用XE,如果不合适,那么我们就不使用XE :-)
马丁

11.2 Express Edition是Beta版,用户数据限制已从4 GB扩展到11 GB。见oracle.com/technetwork/database/express-edition/...
莱Riffel

Oracle没有PIVOT,MySQL和Postgres没有。在某些情况下,这是一大优势。
Phil Lello

1
@ Phil Lello:PostgreSQL确实有PIVOT,请检查是否有问题:postgresql.org/docs/current/static/tablefunc.html
Frank Heikens 2011年

Answers:


12

我只能尝试回答Oracle和postgres。在专门使用Oracle数年并且仅在最近两年左右使用postgres之后,我喜欢 postgres。有许多小方法比Oracle更方便使用,并且它具有许多重要的好处(例如MVCC)。它更易于管理,可靠,具有出色的文档,并且当然是免费的。

但是,postgres在某些方面与Oracle不匹配,例如:

  • RAC-据我所知,没有更好的集群技术可用于任何数据库
  • RMAN-远远优于postgres的基本备份和恢复功能,尤其是在块更改跟踪和增量备份中(可以将其应用于其他备份以保持最新的完整备份)
  • Oracle支持-存在。postgres支持吗?没那么多
  • 许多其他功能,例如IOT,“安全文件”和压缩技术,这些功能在postgres世界中是无法比拟的

有趣的是,XE中几乎所有这些功能都不存在或残缺。我认为我会选择Postgres而不是XE,其他所有条件都一样,但是...

...这些都没有解决选择Oracle的两个最大原因:

  1. 您已经在使用Oracle,并且对其进行了大量投资(数据库独立性是一个愚蠢的神话)
  2. 您的开发人员和DBA知道Oracle并充分利用了Oracle的功能(为什么他们不这样做,因为无论如何数据库独立性都是愚蠢的神话?)

编辑:

我每次都会选择postgres而不是XE的一种情况是安全性。如果您的数据库或其任何应用程序都暴露在公共互联网上,则我不确定XE是否是个好主意。


rgd。RMAN-那么您会说Oracle的备份功能比Postgre的“更好”吗?这会在低管理环境中保持吗(请参阅我的Q编辑)?
马丁

@Martin-RMAN功能强大且非常成熟,我相信它,因为它已经经历了几种不同的恢复情况。不是一件事就是“简单”。听起来好像您在没有昂贵的DBA的情况下工作,您现在正在使用RMAN进行脱机备份吗?您如何将(每天?)多个Gb备份从客户端站点发送出去?
杰克说尝试topanswers.xyz

SQL Server具有HA群集,相当于Oracle的RAC。
斯坦利·约翰斯(StanleyJohns)2011年

@stan dba从我对SQL Server的群集选项的了解中,它们根本无法与RAC完全媲美,其中大多数是故障转移解决方案,而不是像rac这样的真正扩展解决方案。
马修·沃森

选择Oracle的第二个理由与第一个理由,即IMO几乎相同。基本上就是您的承诺。-至于支持,Postgres当然也存在。如果您对出色的邮件列表不满意,请查看此列表,查找在您所在地区提供付费支持的公司。
eevar

9

Oracle Apex。内置于数据库中的便捷,易于使用的Web应用程序环境。非常简单,这使得在单个集成包中通过Web ui /应用程序逻辑/数据库部署“单一框”应用程序变得非常简单。

PS。11g XE(当前处于beta版)将存储扩展到10GB以上。


为APEX +1。尽管它有问题和麻烦,但我喜欢这样做,可以快速,轻松地启动应用程序。我认为,正如RAD for Oracle可以得到的那样。
Kerri Shotts

5

尽管Express Edition中没有Oracle的其他闪回选项,但闪回查询却可用。根据上面的问题,没有其他数据库具有此功能,该功能允许select语句查询过去某个时间点的数据。闪回数据可以与当前数据结合在一起,并插入到当前表中,从而使其可用于撤消类型操作,临时更改以及在一处比较由方法进行的更改。

Oracle Express Edition所没有的某些其他数据库所没有的其他功能。


5
postgres勾选“ AuthID当前用户与定义者”,“检查约束”,“可延迟约束”,“日期添加和减去”,“分层查询”,非模式触发器,大多数“分析功能”,某些“集合功能” ,“ XML函数”,最大容量为1Gb,“创建或替换”和“多平台”框(至少)
杰克说请尝试topanswers.xyz 2011年

@JackPDouglas当比赛“其他”时,很难创建职业选手名单。谢谢(你的)信息。
里菲尔

@Leigh-同意,我想您的清单对Martin有帮助。您没有提到RMAN,至少在当前(v10)XE中包含了RMAN,尽管默认情况下未使用。只是一个小问题:如果XE限制为4或11Gb,则实际上不支持最高128Tb的Clob :)
Jack说尝试topanswers.xyz 2011年

@JackPDouglas您已经提到过RMAN,但我无意取代您的回答(或其他回答)。
雷·里菲尔

@JackPDouglas抓住好衣服。我将其保留在列表中是因为较小的Clob在XE中可能有用,并且如果数据库增长,那么将其放在支持极大Clob的平台上可能会很有用。
雷·里菲尔

4

首先,我认为您不应低估已经存在Oracle专有技术的因素,而不应该低估其他RDBMS的因素。为他人建立知识需要花费时间和金钱,并且一开始可能还会伴随一些错误。

此外,您永远都不知道小型项目是否会在某个时候增长。然后,您可以非常平稳,快速地从XE升级到标准版One,再从标准版升级到企业版。从另一个RDBMS进行迁移将再次花费更多的时间和金钱。底线:我认为您的公司做对了-好的,我可能有点偏见:-)


韦尔 我想说甲骨文知道这是怎么回事...嗯... 可能需要花3个小时与Postgre一起玩,再加上一点点Google搜索,以至于我可以做的事与我差不多可以与Oracle一起使用。(除了PL / SQL),我想认为我是这里的Oracle高级用户之一:-)-但是您关于升级路径的争论当然是正确的。
马丁

@Martin:这不是一个好兆头...我已经将Postgres用于我们的一个项目(作为打包应用程序的一部分)了大约2年了,但我仍然无法使其表现良好(部分是因为我正在使用的应用程序部分严重依赖count(),这似乎是postgres的致命弱点。我不得不问stackoverflow 如何影响计划者
Joe

2

Oracle的一项不错的功能是像Oracle Resource Manager这样的功能,它使在一个数据库中整合应用程序要比为每个应用程序建立一个单独的数据库要容易得多。看来您的组织中未使用过此功能。就像您提到的那样,我过去曾为项目设计统一数据库。

  • 每个项目都有自己的硬件
  • 每个项目都有自己的许可证
  • 每个项目都有自己的存储空间

这导致即使是所有项目中最简单的项目也要花费数月才能启动,而在上市时间极为重要的时期,这是致命的。由于某些原因,许多人甚至常常出于政治原因而忽略了这一点。

解决方案非常简单。创建一个严肃的数据库,为每个项目/应用程序提供各自的架构,并访问用户,数小时而不是数月即可运行。如果您要执行此类操作,则将具有类似正常运行时间要求的应用程序组合在一起可能会有所帮助。Oracle提供了越来越多的在线维护选项,但是有时候,停机几小时变得容易得多。事先为此定义时间窗口可以避免很多问题。您将需要一些停机时间。

不允许应用程序连接到数据库,使它们使用自己的tns别名连接到专用于该应用程序的服务。这样做使您可以将应用程序移至其他数据库,而不必重新配置该应用程序。

顺便说一句:使用这种合并方式的公司每年节省了大量现金,超过了开始滚动所需的许可证。


感谢您的输入。请注意,许多项目的数据库都在客户站点上运行,因此合并它们实际上没有任何意义。(如果我理解正确,您会巩固。)
马丁

仍然建议客户将其合并到包装的最终位置。如果应该是嵌入式数据库,则可能会有所不同。
ik_zelf

需要明确的是,Oracle XE不具有资源管理器功能,因此这仅在合并到许可服务器中才有用。@ik_zelf我知道您并非要另行指出。
雷·里菲尔

@Leigh Riffel是的,我假设有一个Oracle安装可用,在这种合并的情况下,我更喜欢EE。问题似乎更多地集中在嵌入式解决方案上。
ik_zelf 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.