Botang唐波 本文探索Oracle RAC数据库的内部原理。探索Oracle RAC数据库的调优源头,弄清“Master实例”、“Owner实例”、“Past Image”和“Current Image”的概念。
1.Oracle RAC数据库服务器实例间的网络通信 2.Oracle RAC数据库服务器中最重要的内存结构:GRD和GRD中的资源 3.数据块上的BL锁和PR授权 4.能够查出某个块Master实例和Owner实例的X$表 5.自动Remaster(Object Affinity and Dynamic Remastering引起)和手工Remaster(oradebug命令) 6.实例恢复过程中的Remaster(Dynamic Reconfiguration) 总结
正文 1. Oracle RAC数据库服务器实例间的网络通信 下图描述了Oracle RAC数据库服务器实例间内连网通信体系结构(见图1):
Oracle RAC数据库服务器调优的重要目标就是尽量减少实例间没有必要的内连网通信量。下节所讨论的“Oracle RAC数据库服务器中最重要的内存结构:GRD和GRD中的资源”,都是通过内连网通信来维护。
2.Oracle RAC数据库服务器中最重要的内存结构:GRD和GRD中的资源 在RAC的体系结构中(见图2),全局资源目录(Global Resource Directory简称GRD)是Oracle RAC数据库服务器中最重要的内存结构。它是一套哈希分布于各个实例间由被称为“gcs mastership buckets”、“gcs res hash bucket”和“gcs resources”等内存结构组成的的元数据集(见表1)。这个哈希分布元数据集用以描述Oracle RAC数据库服务器中数据块的状态、属主信息以及数据块内部和数据块自身的锁信息。GRD分布在所有实例的共享池中,每个实例维护GRD的一部份。所有实例维护的GRD合起来形成哈希分布式的整体集。GRD内部包含“转换队列”和“写队列”,这两个队列被GCS(Global Cache Service)和GES(Global Enqueue Service)维护。所有维护信息通过前面介绍过的内连网传输。
|