Oracle 19c中的应用延续性
设想一下,用户运行一个应用程序时,不必担心“计划内停机”,也不必想知道为什么他们最新的数据输入会消失在黑洞中。想象一下,您可以进行一些简单的配置更改,所有这些问题都会消失。这是在您配置应用程序连续性(AC)时进行的,以便您的用户不再受到滚动修补、数据库配置更改甚至罕见的数据库崩溃的影响。
应用程序连续性做什么?
应用程序连续性对应用程序和最终用户隐藏了数据库层中的中断。它有效地屏蔽了滚动修补活动、网络故障、数据库实例暂停和崩溃、切换到活动Data Guard备用数据库以及许多其他以前中断的事件。配置应用程序连续性后,用户将不再受到计划内停机或意外停机的影响。他们可以简单地继续工作,而不知道幕后正在发生计划内或计划外的事件。
它是如何工作的?
应用程序连续性完全按照最初提交的方式重放数据库请求(不管是事务还是查询),以确保结果与请求一致。对于每个请求,它首先在一个活动的数据库实例上恢复和验证会话,然后将语句从请求重放直到完成,并将结果返回给用户。
可变表(每次引用时都返回新值的函数)包括对SYSDATE和SEQUENCES(NEXTVAL)的调用。例如,这意味着如果从序列调用NEXTVAL在请求的原始处理中返回47,则该请求的重播也必须使用47作为该值。AC还保证重播的任何事务只提交一次。这是通过调用transactionguard来实现的,它提供了在重放期间跟踪和管理所有事务状态的功能。
透明应用程序连续性(Transparent Application Continuity,TAC)是随着Oracle数据库18c引入的,并在Oracle数据库19c中进一步增强,它扩展了对不使用Oracle连接池的应用程序配置的支持(尽管它们仍然是首选解决方案)。此配置显著地将重播功能的可用性扩展到更多的应用程序堆栈,因此也是升级到Oracle Database 19c的另一个原因。默认情况下,Oracle Autonomous Database会启用TAC,并且可以在Oracle云中轻松配置。
是否需要更改应用程序或数据库?
不需要。编写良好的应用程序不需要更改代码。
通过应用程序连续性重播数据库请求相关的配置更改是必须做限制的。通过两个简单的步骤配置应用程序以通过应用程序连续性进行保护:
1. 使用推荐的TNS连接字符串以实现连续可用性: