11gR2 RAC ASM啟動過程

yingyifeng306發表於2015-05-25
11gR2 RAC ASM啟動揭秘
今天QQ群裡的一群朋友在討論11gR2 RAC的ASM啟動問題,大家對於先啟動ASM還是先建立磁碟組問題討論的異常激烈。記得曾經研究過這個問題,貼出該問題供大家參考
從11gR2開始,RAC的ocr和vote開始透過建立一個磁碟組的形式共同存在於ASM中, 從而很好的控制了10g中仍需要為這2個RAC節點劃分相應的裝置,  並且相應的ASM的spfile也可以存放到ASM diskgroup中以實現多節點ASM的共享管理了。
 不過這聽上去似乎有些不可思議,照常理來說 ASM例項啟動並mount diskgroup後才能夠訪問diskgroup上的檔案, 但是ASM例項只有獲得ASM spfile後才能夠啟動例項,這2者形成了死迴圈。到底是先啟動ASM例項還是RAC先管理到OCRVOTE磁碟組呢。下面我們透過一系列的實驗及說明來解釋這個問題:

從11.2開始Oracle Cluterware標示voting disk files的方法較之前的版本11.1或10.2有所區別,11.2之前voting disk file的位置存放在OCR中, 但是因為從11.2開始ocr和votedisk可以存放在ASM了 , 所以自11.2始voting disk file透過GPNP profile中的CSS voting file discovery string來定位。
CSS voting disk file的discovery string將指向ASM,所以它要使用ASM discovery string的值。我們利用gpnptool get命令獲得gpnp profile:
[grid@s1-11g ~]$ gpnptool get
Warning: some command line parameters were defaulted. Resulting command line: 
         /oracle/grid/bin/gpnptool.bin get -o-

jifUhk40NCZKYHu9E2s9wHZpt+M=OxCHW6vbO+hmX6HnEL6KO1t5gJNv2uBP3406XaLPKc3265v+m29znkwTXXo1erFFr/FeP3Da2wit3vkcckGT4UquuLJ1nEfmDBAAkfJIFYfDoWF6RwDLj9VW8jK1fO8lSjlb2DGrkBE9KdB5llz+uFzUSzdgtY0x1bwL9hM9KOg=
Success.
其中重要的2條記錄:

==》css voting disk指向+ASM


==》該記錄表達了ASM的DiscoveryString=”/dev/asm*”,即ASM例項啟動時會去尋找的裝置路徑,SPFILE記錄了ASM Parameter FILE的ALIAS
 
但是請注意雖然GPNP記錄了ASM Parameter FILE的ALIAS,但這不代表ASM直接能訪問到該SPFILE,在實際Diskgroup被Mount之前光知道一個ASM ALIAS是沒有用的。
我們來看一下+OCRVOTE/s1-11g-cluster/asmparameterfile/registry.253.824566899這個SPFILE在ASM中所處的位置:
[grid@s1-11g ~]$ sqlplus "/ as sysasm"
SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 18 13:38:04 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> set linesize 140 pagesize 1400
SQL> col "FILE NAME" format a40
SQL> set head on
SQL> select NAME         "FILE NAME",
  2             AU_KFFXP     "AU NUMBER",
  3             NUMBER_KFFXP "FILE NUMBER",
  4             DISK_KFFXP   "DISK NUMBER"
  5        from x$kffxp, v$asm_alias
  6       where GROUP_KFFXP = GROUP_NUMBER
  7         and NUMBER_KFFXP = FILE_NUMBER
  8         and name in ('REGISTRY.253.824566899')
  9     order by  DISK_KFFXP,AU_KFFXP;

FILE NAME                                 AU NUMBER FILE NUMBER DISK NUMBER
---------------------------------------- ---------- ----------- -----------
REGISTRY.253.824566899                           59         253           1
REGISTRY.253.824566899                           59         253           2
SQL> col path for a50
SQL> select disk_number,path from v$asm_disk where disk_number in (1,2) and GROUP_NUMBER=2;


DISK_NUMBER PATH
----------- --------------------------------------------------
          1 /dev/asm-nocr2
          2 /dev/asm-nocr1
          可以看到該ASM SPFILE共有2份映象(redundancy=high),分別保留在 /dev/asm-nocr2的AU=59和/dev/asm-nocr1 AU=59
我們利用kfed命令分別檢查這三個ASM DISK的header:  
[grid@s1-11g ~]$  kfed read /dev/asm-nocr2|grep spfile
kfdhdb.spfile:                       59 ; 0x0f4: 0x0000003b 
  
[grid@s1-11g ~]$ kfed read /dev/asm-nocr1|grep spfile
kfdhdb.spfile:                       59 ; 0x0f4: 0x0000003b

可以看到ASM disk header的kfdhdb.spfile指向ASM SPFILE在這個DISK上的AU NUMBER即其位置, ASM例項在啟動時只需要透過GPNP PROFILE中的 DiscoveryString找到合適的裝置路徑,並讀取其ASM disk header即可以找到kfdhdb.spfile這個位置屬性,從而在沒有MOUNT DISKGROUP的情況下讀取ASM SPFILE,併成功啟動ASM, 這也就解決了雞生蛋、蛋生雞的難題。

這也是我們在後臺日志中看到的gpnp啟動:
2013-08-27 14:22:41.603
[gpnpd(10544)]CRS-2328:GPNPD started on node s1-11g. 
2013-08-27 14:22:44.580
[cssd(10608)]CRS-1713:CSSD daemon is started in clustered mode
2013-08-27 14:22:46.573
[ohasd(9248)]CRS-2767:Resource state recovery not attempted for 'ora.diskmon' as its target state is OFFLINE
2013-08-27 14:24:10.235
[cssd(10608)]CRS-1707:Lease acquisition for node s1-11g number 1 completed
2013-08-27 14:24:11.934
[cssd(10608)]CRS-1605:CSSD voting file is online: /dev/asm-ocr_vote; details in /oracle/grid/log/s1-11g/cssd/ocssd.log.
2013-08-27 14:24:11.962
[cssd(10608)]CRS-1605:CSSD voting file is online: /dev/asm-nocr2; details in /oracle/grid/log/s1-11g/cssd/ocssd.log.
2013-08-27 14:24:11.986
[cssd(10608)]CRS-1605:CSSD voting file is online: /dev/asm-nocr1; details in /oracle/grid/log/s1-11g/cssd/ocssd.log.

  ------------------------------------------------------------------------------------

原部落格地址:http://blog.itpub.net/23732248/
原作者:應以峰 (frank-ying)
-------------------------------------------------------------------------------------  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23732248/viewspace-1670854/,如需轉載,請註明出處,否則將追究法律責任。

相關文章