11gR2 RAC ASM啟動過程
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)
-------------------------------------------------------------------------------------
今天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-
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RAC 11gR2開啟歸檔Oracle
- 虛擬機器搭建rac ASM盤啟動失敗虛擬機ASM
- 【ASM】Oracle RAC css啟動報錯"Duplicate voting file found"ASMOracleCSS
- RAC節點啟動失敗--ASM無法連線ASM
- 【ASM】RAC19C因引數設定不當,asm無法啟動ASM
- ORACLE RAC 11.2.0.4 ASM加盤導致叢集重啟之ASM sga設定過小OracleASM
- goldengate + asm + racGoASM
- Oracle 11gR2 RAC 叢集服務啟動與關閉總結Oracle
- 11gR2 RAC convert ONENODE
- 11gR2 OneNode Convert RAC
- RAC+ASM+DATAGUARDASM
- SpringBoot啟動過程Spring Boot
- Windows 啟動過程Windows
- Service啟動過程
- Oracle ASM Rebalance執行過程OracleASM
- Oracle 19c rac安裝,只能啟動一個節點的ASMOracleASM
- App 啟動過程(含 Activity 啟動過程) | 安卓 offer 收割基APP安卓
- iOS App啟動過程iOSAPP
- Android App啟動過程AndroidAPP
- SpringBoot 系列-啟動過程Spring Boot
- jmeter 啟動過程剖析JMeter
- Liferay 啟動過程分析
- main的啟動過程AI
- Spring Boot 啟動過程Spring Boot
- Angular的啟動過程Angular
- Spring啟動過程(一)Spring
- Linux 啟動過程分析Linux
- 【RAC】asm_diskgroups 引數ASM
- Linux系統啟動過程Linux
- Linux核心Kernel啟動過程Linux
- Spring Security 啟動過程分析Spring
- HDFS啟動過程+安全模式模式
- Eureka Server啟動過程分析Server
- 計算機啟動過程計算機
- app的啟動過程(三)APP
- DUBBO服務啟動過程
- 【ASM】ASM啟動無法找到spfile問題原因ASM
- 11gR2 RAC新增節點步驟
- 7.neutron-server啟動——neutron api啟動過程ServerAPI