1. 程式人生 > >Oracle 數據庫實例與ASM實例的通信

Oracle 數據庫實例與ASM實例的通信

操作 實例 磁盤 文件 管理 負責 rac 心跳 通知

場景一:數據庫實例啟動

1)數據庫實例的rbal和asmb進程被啟動。

2)數據庫實例的asmb進程和css進行通信,獲得連接asm實例需要的連接串,以及獲得asm磁盤組的基本信息。

3)數據庫實例的asmb進程將獲得的信息傳遞給數據庫實例的rbal進程,rbal進程通知asmb進程需要訪問的asm文件信息。

4)數據庫實例的asmb進程和ASM實例的asmb進程通信獲得對應的信息。

5)數據庫實例的rbal進程根據收到的信息訪問對應的ASM磁盤,並打開相應的ASM文件。

6)數據庫實例的asmb進程向ASM實例的asmb進程發送心跳信息。


場景二:創建ASM文件

1)數據庫實例的rbal進程通知asmb進程需要創建的文件。

2)數據庫實例的asmb進程和ASM實例的asmb進程通信,獲得需要的extent map信息。

3)數據庫實例的rbal進程根據收到的信息訪問對應的asm磁盤並創建文件。


場景三:數據庫前臺進程訪問磁盤組上的數據

1)數據庫前臺進程和數據庫實例的o00<x>進程通信,申請需要的信息。

2)數據庫實例的o00<x>進程創建到ASM實例的連接,並生成在ASM實例的o00<x>進程。

3)ASM實例的o00<x>進程將需要的extent map信息返回給數據庫實例的o00<x>進程。

4)數據庫實例的o00<x>進程將對應的extent map信息返回給數據庫前臺進程。

5)數據庫前臺進程將收到的extent map信息轉換成對應的數據文件和數據塊信息,訪問對應的數據塊。


ASM實例負責管理磁盤組的元數據,而真正的I/O操作由數據庫實例中的進程來完成的。



Oracle 數據庫實例與ASM實例的通信