重负载所需的 Oracle 设置

4 oracle feature-comparison

我试图在使用 Hadoop 和 HBase 的系统设置与使用 Oracle DB 作为后端实现相同的系统设置之间进行比较。我缺乏有关 Oracle 方面的知识,因此请进行公平比较。

我正在寻找处理特定工作负载(硬件、操作系统、软件堆栈等)所需的 Oracle 设置类型。

工作负载和非功能需求大致是这样的:

  1. 4 小时内,具有一个简单关系和多个(非文本)索引的两个表上的 12M 事务。这相当于每秒 833 笔交易 (TPS),持续。这需要每 8 小时进行一次。

  2. 确保所有写入都是持久的(因此在集群设置的情况下,正在运行的事务可以在机器故障时幸免于难)并且具有不错的可用性水平?

    有了不错的可用性水平,我的意思是常规故障(例如磁盘和单个网络接口/tcp 连接断开)不需要人为干预。罕见的故障可能需要干预,但应该通过启动可以快速接管的冷备用来解决。

  3. 另外添加另外 300 TPS,但是这些是否在许多表中几乎连续 24/7 发生(但都是成对的,具有相同的简单关系和多个索引)?

一些上下文:此工作负载是 24/7,系统需要保存 10 年的历史数据可用于实时查询。查询性能可能比亚秒级差一点,但必须足够活跃以考虑日常使用。

ETL 作业的设置方式几乎没有流失。同样在关系设置中,这种工作负载会导致很少的锁争用。我希望索引更新是主要的痛苦。为了尽可能公平地进行比较,我期望 Oracle 提供的最宽松的一致性级别。

我无意抨击 Oracle 以支持某些非关系数据库解决方案。我认为它是一个很好的数据库,有很多用途。我试图了解像我们一样使用开源(和 NoSQL)与使用商业支持的、经过验证的设置之间的权衡。

Gai*_*ius 6

首先,我会说,按照 Oracle 的标准,这种工作负载绝不是沉重的;数以千计的提交/秒是可能的,很容易。其次,然而,这里重要的不是您的数据库,也不是您的服务器:而是您的存储。这里有很多选择;使用NetApp 之类的东西不会出错(我不为他们工作,只是一个满意的用户),问题是,大小是多少?在这里,ORION是您的朋友。无论您选择何种存储阵列,这都会处理您的第一级弹性,如果您的第一个节点出现故障,您只需将磁盘安装在另一个节点上并重新开始备份,Oracle 将执行崩溃恢复,因此不会丢失任何数据。

我的建议是,通过执行有代表性的基准测试,获得一些较低级别的数字——MB/s、IOP,并将这些数字带到离你最近的存储供应商那里,并询问他们有什么。至少使用 NetApp,您可以从小规模开始并不断发展,添加另一个头以获得更高的弹性/更好的性能,添加货架以获得更大的容量,等等。然后用 Orion 测试它的废话!