Oracle RAC是否允许节点之间完全透明的故障转移?

时间:2009-09-30 15:16:57

标签: oracle failover

我有一个使用Hibernate在Oracle 10g上运行的应用程序。我想知道是否可以使用Oracle RAC在应用程序端没有任何代码更改的情况下使应用程序在数据库故障方面具有高可用性。

我有两个用于应用程序的Oracle RAC节点,理想情况下希望能够在其中一个节点上拔出插件并让应用程序继续运行,而没有任何例外情况到达应用程序代码。

我的应用程序向数据库发送选择,插入,更新和删除查询。

我一直在阅读透明应用程序故障转移,但我发现的网站暗示只有选择查询才能透明地进行故障转移,并且所有其他类型的查询都会导致抛出异常并且查询必须重新进行执行。我宁愿避免这种情况,因为我不想在我的代码库的每个部分添加额外的异常处理来进行数据库查询。

1 个答案:

答案 0 :(得分:3)

抱歉,但不是真的。您正在研究透明应用程序故障转移(TAF),Oracle目前不支持除了SELECT语句之外的任何东西。需要重新启动DML。请查看this文章,了解RAC(和TAF)可以为您做些什么。

无论如何,您将需要能够处理交易失败。这是我们进行交易的一个重要原因......所以我们可以优雅地处理失败的事情。同时意识到,硬件故障(RAC保护您免受攻击)只是交易失败的众多原因之一。

祝你好运,编码愉快!