15、RAC与并发执行
Oracle的优化器是基于执行访问代价的,这就考虑了并发执行的代价,并将其作为获得理想的执行计划的一个部件。
在RAC环境中,优化器的并发选择是由内部节点和外部节点并发两类组成的。例如,一个特殊的查询请求需要六个查询进程完成,并且在本地节点有六个并发的从属执行进程都是idle的,则查询通过使用本地资源执行,从而获得结果。这阐述了有效地内部节点并发,也无需多节点并发的查询协调的开支。如果本地节点中只有两个并发执行从属进程可用,则这两个进程和其他节点的四个进程共同执行查询。在这种情况下,内部节点和外部节点并发都被使用到,从而加速查询。
在真实环境的决策支持应用程序中,查询不能通过各种查询servers得到较好的划分。所以有些并发执行servers完成其任务后先于其他servers变为idle状态。Oracle并发执行技术动态监测idle的进程,并将超载进程的队列表中的任务分配任务给处于idle状态的进程。这样,Oracle有效的再分配了所有进程的查询工作量。RAC进一步扩展这个效率到整个cluster上。
16、全局动态性能视图
全局动态性能视图显示所有开启并访问RAC Database的Instances相关的信息。而标准动态性能视图只显示了本地Instance的相关信息。
对于所有V$类型的视图,都会对应一个GV$视图,除了几个别的特殊情况。除了V$视图中的columns,GV$视图中包含了一个名为INST_ID的额外的column,显示了RAC中的Instance number。可以在任何开启的Instance上访问GV$。
为了查询GV$视图,每个Instance上的初始PARALLEL_MAX_SERVERS初始化参数至少设置为1 。这是由于对GV$的查询使用了特殊的并发执行。并发执行的协调者运行在客户端连接的Instance上,并且每个Instance上分配一个slave用于查询其潜在的V$视图。如果有一个Instance上的PARALLEL_MAX_SERVERS被设置为0,则无法获得该node的信息,同理,如果所有的并发servers非常忙,则也无法获得结果。在以上两种情况下,不会获得提示或错误信息。
17、RAC和Service
18、虚拟IP地址和RAC
当一个node完全失败,虚拟IP地址(VIP)是关于所有有效应用的。当一个节点失败,其相关的VIP自动的分派到cluster中的其他node上。当这种情况出现时:
* crs在另外一个node的网卡的MAC地址上绑定这个ip,对用户来说是透明的。对于直接连接的客户端,会显示errors。
* 随后发往VIP的数据包都将转向新的节点,它将给客户端发送error RST返回包。从而使客户端快速的获得errors信息,进行对其他节点的连接重试。
如果不使用VIP,则一个node失败后,发往该节点的连接将等待10分钟的TCP过期时间。