Oracle 数据库的可扩展性和高可用性

Posted

技术标签:

【中文标题】Oracle 数据库的可扩展性和高可用性【英文标题】:Scaling and High Availability of Oracle Database 【发布时间】:2015-07-08 10:41:49 【问题描述】:

根据 Oracle Docs,我们可以将 Oracle RAC 用于 HA 和扩展数据库。

我看到 Oracle RAC 使用共享持久性(基于 SAN)在多个实例http://docs.oracle.com/database/121/HAOVW/architectures.htm#CHDBIJAJ 之间共享数据(数据文件、数据库的控制文件)。

但是,在 WebScale(Facebook 那种规模)上,SAN 是瓶颈(任何中心点),对吗?而且,它是专用硬件而不是商品硬件,也是单点故障。

所以,我的问题是,

1.我们是否需要 Oracle RAC 来实现 HA 和扩展,我们能否使用具有主从配置的标准 Oracle 实例设置扩展和没有 RAC 的 HA? p>

2.我们如何使 Oracle 数据库实例(每个都有用于数据库数据的自己的磁盘)与以下任何一个一起工作

具有同步两阶段提交的多主从配置 “主从配置”,从属接管主控,以防主控失败。 MySQL 处理“多主”或“主从配置”的方式。

PS:我在网上找不到答案,所以我认为答案也会对其他人有所帮助。

【问题讨论】:

【参考方案1】:

如果您想实施“主/从”配置,则需要考虑 Oracle DataGuard,它必须在企业版上运行,并且是一个额外收费的附加组件。

DataGuard 将实质上将重做日志数据复制到另一台服务器(实时)并更新“从”服务器上的数据文件。也可以配置 DataGuard,以便为只读查询打开备用服务器。

它可以处理您在第二点中列出的项目。

【讨论】:

但是,要实现高可用性,我们如何才能拥有多主控(可能是两阶段提交)?另外,如果主服务器关闭,是否可以自动接管 Dataguard 配置的从服务器? 在其默认配置中,提交到主数据库的数据会在几秒(毫秒)内提交到从属数据库。还可以进行配置更改,以便用户提交时,在主服务器和从服务器上都进行提交之前,不会得到“提交 OK”。还有自动故障转移选项,以便在检测到主数据库上的问题后将控制权传递给从数据库。强烈建议您阅读一本书,例如 Oracle 的 Data Guard Handbook,它涵盖了许多场景。这可能会变得复杂。 对于 HA,您还可以查看 Oracle RAC...您有多个 Oracle 数据库服务器指向一个公共数据存储。 但是,如主要问题中所述,我发现 Oracle RAC 存在问题。您知道 Data Guard 和 GoldenGate 之间的区别吗? oracle.com/technetwork/middleware/goldengate/overview/… Golden Gate 是 Oracle 的一个复制插件,它允许多主机和双向复制。网上有很多这方面的资料,here's a comparison of Active Data Guard & Golden Gate【参考方案2】:

[免责声明:我是 Oracle 数据库产品管理团队的一员。]

如果深入了解,您会发现 Oracle RAC 是为数据库高可用性和可扩展性而设计的解决方案。您认为对于这样的共享存储解决方案,共享存储应该成为一个问题和争论的关键领域,您的想法是正确的。但是,如果您仔细观察,Oracle 通过使用某些专门开发的优化和技术来解决该问题。 Oracle 的 Exadata 系统使用 Oracle RAC 作为 HA 和可扩展性的基础。

我不想听起来像是在推广 Oracle 产品,但在这里了解一下财富全球 100 强企业中有 87% 使用 Exadata 以及世界上一些最关键的任务负载在 Exadata 上运行并使用 Oracle RAC 可能会有所帮助。另请参阅,Oracle’s New Exadata X9M Looks Disruptive

您可以通过文档和访问https://www.oracle.com/database/real-application-clusters/了解有关 Oracle RAC 的更多信息

【讨论】:

停止推广 Oracle 产品,这甚至不能解决问题。 感谢您的指出。这听起来确实像是在推销产品,但我只是将寻求者的注意力吸引到某些事实,这些事实可以作为一种方式来理解和意识到我们实际上已经认识到这里的基本问题并且很久以前已经在我们的产品中解决了它。但是在看到你的笔记后,我已经放下了免责声明并更新了答案。我很欣赏你的笔记。再次感谢您!

以上是关于Oracle 数据库的可扩展性和高可用性的主要内容,如果未能解决你的问题,请参考以下文章

什么是微服务扩展性和高可用可扩展性

Linux和Windows搭配提供高可用性可扩展性系统

mysql/sqlserver/oracle

从ORACLE RAC角度看跨数据中心的存储双活配置注意事项

RabbitMQ集群和高可用配置

Oracle数据库的特点与工作原理