Oracle 数据库实例与ASM实例的协作
在Oracle数据库的世界里客户端与数据库的通信是通过服务器进程作为载体的,基本过程是:客户端连接到数据库实例,数据库实例生成相应的服务器进程为客户端提供服务,客户端负责发送请求,服务器进程负责和数据库实例通信并完成接收到的请求。数据库实例和ASM实例之间的通信方式与上面提到的方式基本类似,但是,由于现在的客户端是数据库实例,而数据库实例又要为数据库的客户提供服务,但是数据库的客户是不能够直接访问ASM实例,所以需要在数据库实例上创建一些后台进程,数据库的客户首先将请求发送给这些数据库后台进程,再由这些数据库后台进程和ASM实例进行通信,要求ASM实例完成请求或返回需要的信息,并传递给客户端进程。
与ASM实例连接的数据库实例进程
数据库实例的ASMB进程: 数据库实例的ASMB进程和CSS进行通信,获得连接ASM实例需要的连接串,然后建立到ASM实例的持久连接,数据库实例的ASMB进程与ASM实例的UFG进程通过这个连接定期交换信息,同时也是一种心跳机制。
数据库实例的o0nn进程:数据库实例的o0nn进程负责接收数据库客户发送的请求,并将这些请求传递给ASM实例的NFG进程,而ASM实例的NFG进程在完成了相应的请求之后,将结果返回给数据库实例的o0nn进程。
ASM实例的前台进程
1)UFG(脐带前台进程):数据库实例的ASMB进程与ASM实例建立会话,ASM实例生成的相应服务器进程。
2)NFG(网络前台进程):数据库实例的o0nn进程与ASM实例建立会话,ASM实例生成的相应服务器进程。
ASM实例的后台进程
1)GMON(ASM Disk Group Monitor):这个进程负责维护磁盘组中的各个磁盘状态的一致性,当磁盘组中的磁盘成员发生改变时,该进程负责离线或者上线磁盘。
2)RBAL(ASM Rebalance Master):这个进程负责协调磁盘组的rebalance操作,而真正平衡磁盘组的操作是由ARBn进程完成的。
创建文件
步骤1 数据库实例发送创建文件的请求。
步骤2 ASM实例根据请求在ASM磁盘组中分配空间。
步骤3 ASM实例将分配的Extent map 返回给数据库实例。
步骤4 数据库实例初始化文件。
步骤5 数据库实例向ASM实例提交创建文件的操作。
文件I/O
步骤1:数据库实例发送打开文件的请求到ASM实例。
步骤2:ASM实例将从File Directory获得文件的Extent map返回给数据库实例。
步骤3:数据库实例根据从ASM实例获取的Extent map 直接在ASM磁盘相应的位置执行读取和写入。
ASM实例负责管理磁盘组的元数据并根据数据库实例的请求返回磁盘组的元数据,而数据库实例根据接收的磁盘组元数据直接在磁盘上执行I/O操作。
页:
[1]