在這篇文章中,咱們將對11gR2 的新特性任務角色分離(Job Role Separation)進行介紹。linux
在11gR2,操做系統用戶grid成爲了集羣件(GI)的owner,而且ASM成爲了集羣件的一部分,因此grid用戶也成爲了ASM 磁盤的owner。數據庫
一般有3種方式配置ASM磁盤,asmlib, 裸設備和塊設備。oracle
1. asmlib操作系統
配置asm 磁盤的owner和group。blog
# /etc/init.d/oracleasm configureget
…..it
Default user to own the driver interface : gridio
Default group to own the driver interface : asmadminasm
……集羣
查看ASM磁盤的設置:
ls –l /dev/oracleasm/disks
brw-rw---- 1 grid asmadmin 8, 33 Jul 2 18:21 DATA
注意: 從linux 2.6 內核開始,塊設備的權限和路徑配置在重啓以後再也不被保留,除非使用udev 建立規則文件固定。例如塊設備/dev/sda在重啓以後可能變成/dev/sdb。若是使用udev,那麼在添加新磁盤時,須要修改規則文件以確保設備名和權限在重啓以後不發生改變。
若是使用asmlib, 只須要肯定做爲asm 磁盤的範圍,asmlib會維護磁盤的標籤和權限,以便在操做系統升級後磁盤標籤仍然有效。 因此,asmlib 和udev實現的功能基本是相同的。
2. 裸設備。按照如下設置配置磁盤的owner和group:
crw-rw---- 1 grid asmadmin 162, 1 Jul 18 21:40 /dev/raw/raw1
3.塊設備。按照如下設置配置磁盤的owner和group:
# chown grid:asmadmin /dev/rhdiskn
# chmod 660 /dev/rhdiskn
接下來解釋任務角色分離中oracle可執行文件的權限和group 設置。
在上面的例子中,ASM磁盤的group是asmadmin,這意味着組asmadmin中的成員能夠對asm磁盤進行讀寫操做,固然grid用戶也能夠。而其餘用戶,例如oracle,則須要經過oracle_home/bin下的oracle可執行文件訪問asm 磁盤。
這意味着oracle可執行文件不只須要黏着位(stick bit),還須要是設置group 爲asmadmin。當使用srvctl(srvctl start database/instance)啓動數據庫時oracle會自動調用<rdbms_home>/bin/setasmgid設置oracle 可執行文件的group爲asmadmin。
因此,若是問題出如今oracle不能訪問asm 磁盤,須要檢查如下的內容。固然因爲oracle 能夠直接訪問asm磁盤,而不須要經過asm 實例,因此問題的症狀可能不少,甚至ora-600錯誤均可能是這個緣由。
1. Asmlib標識過的磁盤的權限和group設置
brw-rw---- 1 grid asmadmin 8, 49 Dec 31 12:14 DATA
2. 裸設備或者塊設備的權限和group設置
crw-rw---- 1 grid asmadmin 162, 1 Jul 18 21:40 /dev/raw/raw1
3. RDBMS和GI 主目錄下的oracle可執行文件的權限和group設置
rdbms_home : -rwsr-s--x 1 oracle asmadmin 188832561 Oct 30 21:22 oracle
gi_home: -rwsr-s--x 1 grid oinstall 166530359 Nov 16 14:31 oracle
注意黏着位(stick bit)的設置
最後咱們對11gR2中安裝oracle 集羣件和數據庫軟件中的一些group進行簡單的介紹。
* oinstall : 這個group是GI 和RDBMS軟件的擁有者。
* dba : 這個group是數據庫的dba group, 對數據庫具備最高權限。
* asmdba : 這個group是asm實例的dba group, 能夠啓動/關閉實例,掛載/卸載asm 磁盤組。
* asmadmin: 這個group是asm的管理員group,它包含asmdba的所有權限,同時還能夠增長/刪除 asm 磁盤,磁盤組等。