程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle asm lib中使用multipath的陷井

oracle asm lib中使用multipath的陷井

編輯:Oracle數據庫基礎
 

今天,查看一個數據庫時,發現這個數據庫沒有使用到powerpath提供的多路徑盤上。

這個數據庫使用EMC的存儲,操作系統是Linux,使用了asm lib包。

查看/dev/oracleasm/disks下的盤時:

#cd /dev/oracleasm/disks

#ls -l

admin@dbrac1:/dev/oracleasm/disks>ls -l

total 0

brw-rw―- 1 oracle dba 65, 17 Jun 18 16:44 ASM_VOL1

brw-rw―- 1 oracle dba 65, 1 Jun 18 16:44 ASM_VOL10

brw-rw―- 1 oracle dba 65, 33 Jun 18 16:44 ASM_VOL11

brw-rw―- 1 oracle dba 8, 113 Jun 18 16:44 ASM_VOL12

brw-rw―- 1 oracle dba 8, 225 Jun 18 16:44 ASM_VOL13

brw-rw―- 1 oracle dba 8, 129 Jun 18 16:44 ASM_VOL14

brw-rw―- 1 oracle dba 8, 81 Jun 18 16:44 ASM_VOL15

#cd /dev

#ls -l |grep “65, ”

admin@dbrac1:/dev>ls -l |grep “65, ”

brw-r―- 1 root disk 65, 0 Jun 19 00:42 sdq

brw-r―- 1 root disk 65, 1 Jun 18 16:44 sdq1

brw-r―- 1 root disk 65, 16 Jun 19 00:42 sdr

brw-r―- 1 root disk 65, 17 Jun 18 16:43 sdr1

發現/dev/oracleasm/disks下面的盤居然不是對應到/dev/emcpowerXX盤,

由此基本確定了asm lib沒有使用多路徑的盤,原先創建asm disk明明是使用

/dev/emcpower盤建立的:

/usr/sbin/asmtool -C -l /dev/oracleasm -n ASM_VOL1 -s /dev/emcpowera1

現在為何不是了?

通過分析asm lib的原理,基本清楚原因是這樣的:

asm lib包只是對盤起一個名字,如“ASM_VOL1″,然後把這個名字存入磁盤的內容的頭部。

下次機器自動啟動時,會自動運行/etc/rc.d/init.d/oracleasm start,這時會自動掃描硬盤,

掃描過程中,是會讀前面我們寫入名稱,由於使用了多路徑,那麼在/dev/下會有幾個設備名對

應著同一個硬盤,其中/dev/sdXX的是各個路徑盤,/dev/emcpowerXX是把這些路徑合並了一個

盤,正常情況下我們都會要求asmlib使用/dev/emcpowerXX盤,但asm lib的掃描規則是使用最先掃描到的盤,

後面再掃描到的設備,只要上面的名稱與前面相同,就使用前面的設備名,不管再次掃描到的了。

而一般情況下,asm lib都會先掃描到/dev/sdXX盤,而不是/dev/emcpowerXX的盤,由此導致了

此問題的發生。

其實oracle的官方網站也說了此問題:

http://www.oracle.com/technology/tech/linux/asmlib/multipath.html

解決方法就是修改配置文件中asm lib的掃描順序,在/etc/sysconfig/oracleasm中配置如下內容:

ORACLEASM_SCANORDER=”emc sd”

這樣掃描時會先掃描/dev/下emc開頭的文件,然後才會是/dev下sd開頭的文件。

這個問題很隱蔽,在安裝asm lib時,沒有任何地方提示需要配置這個掃描順序,

當用/usr/sbin/asmtool -C -l /dev/oracleasm -n ASM_VOL1 -s /dev/emcpowera1建asm lib盤時,

也會正確建立在多路徑盤上,但當機器重新啟動後,asm lib重新掃描磁盤時,就會掃到錯誤的盤上。
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved