您好,登錄后才能下訂單哦!
本篇內容主要講解“Oracle ASM Filter Driver的相關知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Oracle ASM Filter Driver的相關知識點有哪些”吧!
Oracle ASM Filter Driver(Oracle ASMFD)消除了在系統每次被重啟后Oracle ASM需要重新綁定磁盤設備來簡化對磁盤設備的配置與管理。Oracle ASM Filter Driver(Oracle ASMFD)是一種內置在Oracle ASM磁盤的IO路徑中的內核模塊。Oracle ASM使用filter driver來驗證對Oracle ASM磁盤的寫IO操作。Oracle ASM Filter Driver會拒絕任何無效的IO請求。這種操作消除了意外覆蓋Oracle ASM磁盤而損壞磁盤組中的磁盤與文件。例如,Oracle ASM Filter Driver會過濾掉所有可能意外覆蓋磁盤的非Oracle IO操作。從Oracle 12.2開始,Oracle ASM Filter Driver(Oracle ASMFD)在系統安裝Oracle ASMLIB的情況下不能被安裝,如果你想安裝與配置Oracle ASMFD,那么必須首先卸載Oracle ASMLIB。Oracle 12.2的ASMFD不支持擴展分區表。
配置Oracle ASM Filter Driver
可以在安裝Oracle Grid Infrastructure時或在安裝Oracle Grid Infrastructure后對磁盤設備永久性配置Oracle ASM Filter Driver(Oracle ASMFD)。
在安裝Oracle Grid Infrastructure時配置Oracle ASM Filter Driver
在安裝Oracle Grid Infrastructure時,可以選擇啟用自動安裝與配置Oracle ASM Filter Driver。如果在安裝Oracle Grid Infrastructure所在的系統中沒有使用udev,那么可以在在安裝Oracle Grid Infrastructure之前執行下面的操作來為Oracle ASMFD準備磁盤。下面的操作必須在Oracle Grid Infrastructure軟件包在Oracle Grid Infrastructure home目錄中必須解壓后,但在配置ASMFD之前執行。
1.為了使用Oracle ASM Filter Driver來配置共享磁盤,以root用戶來設置環境變量$ORACLE_HOME為Grid Home目錄,設置環境變量$ORACLE_BASE為臨時目錄
# set ORACLE_HOME=/u01/app/oracle/12.2.0/grid # set ORACLE_BASE=/tmp
ORACLE_BASE變量被設置為臨時目錄可以避免在安裝Oracle Grid Infrastructure之前在Grid Home目錄中創建診斷或跟蹤文件。在執行下面的操作之前,確保是在$ORACLE_HOME/bin目錄中執行命令。
2.使用ASMCMD afd_label命令來為Oracle ASM Filter Driver來準備磁盤.
#asmcmd afd_label DATA1 /dev/disk1a --init
3.使用ASMCMD afd_lslbl命令來驗證磁盤是否已經被標記可以為Oracle ASMFD所使用
#asmcmd afd_lslbl /dev/disk1a
查看某塊磁盤
[rootd@cs1 ~]./asmcmd afd_lslbl /dev/asmdisk01 -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ CRS2 /dev/asmdisk01
列出已經標記可以為Oracle ASMFD所使用的所有磁盤
[grid@jytest1 ~]$ asmcmd afd_lslbl -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ CRS1 /dev/asmdisk02 CRS2 /dev/asmdisk01 DATA1 /dev/asmdisk03 DATA2 /dev/asmdisk04 FRA1 /dev/asmdisk07 TEST1 /dev/asmdisk05 TEST2 /dev/asmdisk06
4.當為Oracle ASMFD準備完磁盤后清除變量ORACLE_BASE
# unset ORACLE_BASE
5.運行安裝腳本(gridSetup.sh)來安裝Oracle Grid Infrastructure并啟用Oracle ASM Filter Driver配置。
在安裝Oracle Grid Infrastructure后配置Oracle ASM Filter Driver
如果在安裝Grid Infrastructure時沒有啟用配置Oracle ASMFD,那么可以使用Oracle ASMFD來手動配置Oracle ASM設備。
為Oracle Grid Infrastructure Clusterware環境配置Oracle ASM,具體操作如下:
1.以Oracle Grid Infrastructure用戶來更新Oracle ASM磁盤發現路徑來使Oracle ASMFD來發現磁盤。
首先檢查當前Oracle ASM磁盤發現路徑并更新
[grid@cs1 ~]$ asmcmd dsget parameter:/dev/sd*, /dev/asm* profile:/dev/sd*,/dev/asm*
將'AFD:*'增加到發現磁盤路徑中
[grid@cs1 ~]$ asmcmd dsset 'dev/sd*','/dev/asm*','AFD:*' [grid@cs1 ~]$ asmcmd dsget parameter:dev/sd*, /dev/asm*, AFD:* profile:dev/sd*,/dev/asm*,AFD:*
2.以Oracle Grid Infrastructure用戶來獲取cluster中的節點列表與角色
[grid@cs1 ~]$ olsnodes -a cs1 Hub cs2 Hub
3.在每個Hub與Leaf節點上,可以以回滾或非回滾模式來執行以下操作
3.1以root用戶來停止Oracle Grid Infrastructure
# $ORACLE_HOME/bin/crsctl stop crs
如果命令返回錯誤,那么執行下面的命令來強制停止Oracle Grid Infrastructure
# $ORACLE_HOME/bin/crsctl stop crs -f
3.2在節點層面以root用戶來配置Oracle ASMFD
# $ORACLE_HOME/bin/asmcmd afd_configure
3.3以Oracle Grid Infrastructure用戶來驗證Oracle ASMFD的狀態
[grid@cs2 ~]$ asmcmd afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'cs2.jy.net'
3.4以root用戶來啟動Oracle Clusterware stack
# $ORACLE_HOME/bin/crsctl start crs
3.5以Oracle Grid Infrastructure用戶來設置Oracle ASMFD發現磁盤路徑為步驟3.1中所檢索到的原始Oracle ASM磁盤發現路徑
[grid@cs1 ~]$ asmcmd dsset 'dev/sd*','/dev/asm*'
遷移不包含OCR或vote文件的磁盤組到Oracle ASMFD
1.以Oracle Grid Infrastructure用戶來執行以下操作
2.列出已經存在的磁盤組
[grid@cs2 ~]$ asmcmd lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 512 4096 4194304 40960 1544 0 1544 0 Y CRS/ MOUNTED EXTERN N 512 512 4096 4194304 40960 860 0 860 0 N DATA/ MOUNTED NORMAL N 512 512 4096 4194304 40960 40704 0 20352 0 N DN/
3.列出相關磁盤
[grid@cs2 ~]$ asmcmd lsdsk -G DN Path /dev/asmdisk03 /dev/asmdisk05
從下面的查詢可以看到/dev/asmdisk03和/dev/asmdisk05的label字段為空
SQL> select group_number,disk_number,name,label,path from v$asm_disk; GROUP_NUMBER DISK_NUMBER NAME LABEL PATH ------------ ----------- ------------------------------ -------------------------------------------------- -------------------------------------------------- 0 0 CRS2 /dev/asmdisk01 0 1 CRS1 /dev/asmdisk02 0 2 DATA1 /dev/asmdisk04 3 0 DN_0000 /dev/asmdisk03 3 1 DN_0001 /dev/asmdisk05 1 0 CRS1 CRS1 AFD:CRS1 2 0 DATA1 DATA1 AFD:DATA1 1 1 CRS2 CRS2 AFD:CRS2
4.檢查Oracle ASM是否是活動狀態
[grid@cs2 ~]$ srvctl status asm ASM is running on cs1,cs2
5.在所有節點上停止數據庫與dismount磁盤組
[grid@cs2 ~]$srvctl stop diskgroup -diskgroup DN -f
6.在每個Hub節點上執行以下命令來為磁盤組中的所有已經存在的磁盤進行標記
[grid@cs2 ~]$ asmcmd afd_label DN1 /dev/asmdisk03 --migrate [grid@cs2 ~]$ asmcmd afd_label DN2 /dev/asmdisk05 --migrate
7.在所有Hub節點上掃描磁盤
[grid@cs1 ~]$ asmcmd afd_scan [grid@cs2 ~]$ asmcmd afd_scan
8.在所有節點啟動數據庫并mount磁盤組
[grid@cs2 ~]$ srvctl start diskgroup -diskgroup DN
從下面的查詢可以看到/dev/asmdisk03和/dev/asmdisk05的label字段分別顯示為DN1和DN2
SQL> select group_number,disk_number,name,label,path from v$asm_disk; GROUP_NUMBER DISK_NUMBER NAME LABEL PATH ------------ ----------- ------------------------------ -------------------------------------------------- -------------------------------------------------- 0 0 CRS2 /dev/asmdisk01 0 1 DN2 /dev/asmdisk05 0 2 DN1 /dev/asmdisk03 0 3 CRS1 /dev/asmdisk02 0 4 DATA1 /dev/asmdisk04 1 1 CRS2 CRS2 AFD:CRS2 2 0 DATA1 DATA1 AFD:DATA1 1 0 CRS1 CRS1 AFD:CRS1 3 0 DN_0000 DN1 AFD:DN1 3 1 DN_0001 DN2 AFD:DN2
現在可以將原先的 udev rules 文件移除。當然,這要在所有節點中都運行。以后如果服務器再次重啟,AFD 就會完全接管了。
[root@cs1 bin]# cd /etc/udev/rules.d/ [root@cs1 rules.d]# ls -lrt total 16 -rw-r--r--. 1 root root 709 Mar 6 2015 70-persistent-ipoib.rules -rw-r--r-- 1 root root 1416 Mar 9 12:23 99-my-asmdevices.rules -rw-r--r-- 1 root root 224 Mar 9 15:52 53-afd.rules -rw-r--r-- 1 root root 190 Mar 9 15:54 55-usm.rules [root@cs1 rules.d]# mv 99-my-asmdevices.rules 99-my-asmdevices.rules.bak [root@cs1 rules.d]# cat 53-afd.rules # # AFD devices KERNEL=="oracleafd/.*", OWNER="grid", GROUP="asmadmin", MODE="0775" KERNEL=="oracleafd/*", OWNER="grid", GROUP="asmadmin", MODE="0775" KERNEL=="oracleafd/disks/*", OWNER="grid", GROUP="asmadmin", MODE="0664" [root@cs1 rules.d]# ls -l /dev/oracleafd/disks total 20 -rwxrwx--- 1 grid oinstall 15 Aug 30 14:30 CRS1 -rwxrwx--- 1 grid oinstall 15 Aug 30 14:30 CRS2 -rwxrwx--- 1 grid oinstall 15 Aug 30 14:30 DATA1 -rwxrwx--- 1 grid oinstall 15 Aug 30 17:42 DN1 -rwxrwx--- 1 grid oinstall 15 Aug 30 17:42 DN2 [root@cs2 bin]# cd /etc/udev/rules.d/ [root@cs2 rules.d]# ls -lrt total 16 -rw-r--r--. 1 root root 709 Mar 6 2015 70-persistent-ipoib.rules -rw-r--r-- 1 root root 1416 Mar 9 12:23 99-my-asmdevices.rules -rw-r--r-- 1 root root 224 Mar 9 15:52 53-afd.rules -rw-r--r-- 1 root root 190 Mar 9 15:54 55-usm.rules [root@cs2 rules.d]# mv 99-my-asmdevices.rules 99-my-asmdevices.rules.bak [root@cs2 rules.d]# cat 53-afd.rules # # AFD devices KERNEL=="oracleafd/.*", OWNER="grid", GROUP="asmadmin", MODE="0775" KERNEL=="oracleafd/*", OWNER="grid", GROUP="asmadmin", MODE="0775" KERNEL=="oracleafd/disks/*", OWNER="grid", GROUP="asmadmin", MODE="0664" [root@cs2 rules.d]# ls -l /dev/oracleafd/disks total 20 -rwxrwx--- 1 grid oinstall 15 Aug 30 14:30 CRS1 -rwxrwx--- 1 grid oinstall 15 Aug 30 14:30 CRS2 -rwxrwx--- 1 grid oinstall 15 Aug 30 14:30 DATA1 -rwxrwx--- 1 grid oinstall 15 Aug 30 17:42 DN1 -rwxrwx--- 1 grid oinstall 15 Aug 30 17:42 DN2
其實,AFD 也在使用 udev
遷移包含OCR或vote文件的磁盤組到Oracle ASMFD
1.以root用戶來列出包含OCR和vote文件的磁盤組
[root@cs1 ~]# cd /u01/app/product/12.2.0/crs/bin [root@cs1 bin]# sh ocrcheck -config Oracle Cluster Registry configuration is : Device/File Name : +CRS Device/File Name : +DATA [root@cs1 bin]# sh crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 750a78e1ae984fcdbfb4dbf44d337a77 (/dev/asmdisk02) [CRS] Located 1 voting disk(s).
2.以Oracle Grid Infrastructure用戶來列出與磁盤組相關的磁盤
[grid@cs2 ~]$ asmcmd lsdsk -G CRS Path /dev/asmdisk01 /dev/asmdisk02
3.以root用戶來在所有節點上停止數據庫與Oracle Clusterware
[root@cs1 bin]# ./crsctl stop cluster -all CRS-2673: Attempting to stop 'ora.crsd' on 'cs2' CRS-2673: Attempting to stop 'ora.crsd' on 'cs1' CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on server 'cs2' CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on server 'cs1' CRS-2673: Attempting to stop 'ora.cs.db' on 'cs1' CRS-2673: Attempting to stop 'ora.qosmserver' on 'cs2' CRS-2673: Attempting to stop 'ora.cs.db' on 'cs2' CRS-2673: Attempting to stop 'ora.chad' on 'cs2' CRS-2673: Attempting to stop 'ora.gns' on 'cs2' CRS-2677: Stop of 'ora.gns' on 'cs2' succeeded CRS-2677: Stop of 'ora.cs.db' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.CRS.dg' on 'cs2' CRS-2673: Attempting to stop 'ora.DATA.dg' on 'cs2' CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'cs2' CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'cs2' CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'cs2' CRS-2673: Attempting to stop 'ora.cvu' on 'cs2' CRS-2673: Attempting to stop 'ora.gns.vip' on 'cs2' CRS-2677: Stop of 'ora.cs.db' on 'cs1' succeeded CRS-2677: Stop of 'ora.CRS.dg' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'cs1' CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'cs1' CRS-2677: Stop of 'ora.DATA.dg' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.asm' on 'cs2' CRS-2677: Stop of 'ora.asm' on 'cs2' succeeded CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.ASMNET1LSNR_ASM.lsnr' on 'cs2' CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.scan1.vip' on 'cs1' CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'cs2' succeeded CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'cs2' succeeded CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'cs2' succeeded CRS-2677: Stop of 'ora.scan1.vip' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.cs2.vip' on 'cs2' CRS-2673: Attempting to stop 'ora.scan2.vip' on 'cs2' CRS-2673: Attempting to stop 'ora.scan3.vip' on 'cs2' CRS-2677: Stop of 'ora.gns.vip' on 'cs2' succeeded CRS-2677: Stop of 'ora.scan3.vip' on 'cs2' succeeded CRS-2677: Stop of 'ora.cs2.vip' on 'cs2' succeeded CRS-2677: Stop of 'ora.qosmserver' on 'cs2' succeeded CRS-2677: Stop of 'ora.scan2.vip' on 'cs2' succeeded CRS-2677: Stop of 'ora.ASMNET1LSNR_ASM.lsnr' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.chad' on 'cs1' CRS-2677: Stop of 'ora.cvu' on 'cs2' succeeded CRS-2677: Stop of 'ora.chad' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.ons' on 'cs2' CRS-2677: Stop of 'ora.ons' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.net1.network' on 'cs2' CRS-2677: Stop of 'ora.net1.network' on 'cs2' succeeded CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'cs2' has completed CRS-2677: Stop of 'ora.crsd' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.ctssd' on 'cs2' CRS-2673: Attempting to stop 'ora.evmd' on 'cs2' CRS-2673: Attempting to stop 'ora.storage' on 'cs2' CRS-2677: Stop of 'ora.storage' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.asm' on 'cs2' CRS-2677: Stop of 'ora.ctssd' on 'cs2' succeeded CRS-2677: Stop of 'ora.evmd' on 'cs2' succeeded CRS-2677: Stop of 'ora.chad' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.mgmtdb' on 'cs1' CRS-2677: Stop of 'ora.mgmtdb' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.MGMTLSNR' on 'cs1' CRS-2673: Attempting to stop 'ora.CRS.dg' on 'cs1' CRS-2673: Attempting to stop 'ora.DATA.dg' on 'cs1' CRS-2677: Stop of 'ora.CRS.dg' on 'cs1' succeeded CRS-2677: Stop of 'ora.DATA.dg' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.asm' on 'cs1' CRS-2677: Stop of 'ora.MGMTLSNR' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.cs1.vip' on 'cs1' CRS-2677: Stop of 'ora.cs1.vip' on 'cs1' succeeded CRS-2677: Stop of 'ora.asm' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'cs2' CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'cs2' succeeded CRS-2673: Attempting to stop 'ora.cssd' on 'cs2' CRS-2677: Stop of 'ora.cssd' on 'cs2' succeeded CRS-2677: Stop of 'ora.asm' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.ASMNET1LSNR_ASM.lsnr' on 'cs1' CRS-2677: Stop of 'ora.ASMNET1LSNR_ASM.lsnr' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.ons' on 'cs1' CRS-2677: Stop of 'ora.ons' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.net1.network' on 'cs1' CRS-2677: Stop of 'ora.net1.network' on 'cs1' succeeded CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'cs1' has completed CRS-2677: Stop of 'ora.crsd' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.ctssd' on 'cs1' CRS-2673: Attempting to stop 'ora.evmd' on 'cs1' CRS-2673: Attempting to stop 'ora.storage' on 'cs1' CRS-2677: Stop of 'ora.storage' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.asm' on 'cs1' CRS-2677: Stop of 'ora.ctssd' on 'cs1' succeeded CRS-2677: Stop of 'ora.evmd' on 'cs1' succeeded CRS-2677: Stop of 'ora.asm' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'cs1' CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'cs1' succeeded CRS-2673: Attempting to stop 'ora.cssd' on 'cs1' CRS-2677: Stop of 'ora.cssd' on 'cs1' succeeded
4.以Oracle Grid Infrastructure用戶來執行下面的命令為每個Hub節點上的磁盤組中的磁盤進行標記
[grid@cs2 ~]$ asmcmd afd_label DN1 /dev/asmdisk03 [grid@cs2 ~]$ asmcmd afd_label DN2 /dev/asmdisk05
5.以Oracle Grid Infrastructure用戶來執行下面的命令對每個Hub節點進行磁盤重新掃描
[grid@cs1 ~]$ asmcmd afd_scan [grid@cs2 ~]$ asmcmd afd_scan
6.以root用戶來在所有節點上啟用Oracle Clusterware stack并mount OCR與vote文件磁盤與數據庫
[root@cs1 bin]# ./crsctl start cluster -all CRS-2672: Attempting to start 'ora.cssdmonitor' on 'cs1' CRS-2672: Attempting to start 'ora.evmd' on 'cs1' CRS-2672: Attempting to start 'ora.cssdmonitor' on 'cs2' CRS-2672: Attempting to start 'ora.evmd' on 'cs2' CRS-2676: Start of 'ora.cssdmonitor' on 'cs1' succeeded CRS-2672: Attempting to start 'ora.cssd' on 'cs1' CRS-2672: Attempting to start 'ora.diskmon' on 'cs1' CRS-2676: Start of 'ora.diskmon' on 'cs1' succeeded CRS-2676: Start of 'ora.evmd' on 'cs1' succeeded CRS-2676: Start of 'ora.cssdmonitor' on 'cs2' succeeded CRS-2672: Attempting to start 'ora.cssd' on 'cs2' CRS-2672: Attempting to start 'ora.diskmon' on 'cs2' CRS-2676: Start of 'ora.diskmon' on 'cs2' succeeded CRS-2676: Start of 'ora.evmd' on 'cs2' succeeded CRS-2676: Start of 'ora.cssd' on 'cs1' succeeded CRS-2672: Attempting to start 'ora.ctssd' on 'cs1' CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'cs1' CRS-2676: Start of 'ora.cssd' on 'cs2' succeeded CRS-2672: Attempting to start 'ora.ctssd' on 'cs2' CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'cs2' CRS-2676: Start of 'ora.ctssd' on 'cs1' succeeded CRS-2676: Start of 'ora.ctssd' on 'cs2' succeeded CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'cs1' succeeded CRS-2672: Attempting to start 'ora.asm' on 'cs1' CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'cs2' succeeded CRS-2672: Attempting to start 'ora.asm' on 'cs2' CRS-2676: Start of 'ora.asm' on 'cs2' succeeded CRS-2672: Attempting to start 'ora.storage' on 'cs2' CRS-2676: Start of 'ora.asm' on 'cs1' succeeded CRS-2672: Attempting to start 'ora.storage' on 'cs1' CRS-2676: Start of 'ora.storage' on 'cs1' succeeded CRS-2672: Attempting to start 'ora.crsd' on 'cs1' CRS-2676: Start of 'ora.crsd' on 'cs1' succeeded CRS-2676: Start of 'ora.storage' on 'cs2' succeeded CRS-2672: Attempting to start 'ora.crsd' on 'cs2' CRS-2676: Start of 'ora.crsd' on 'cs2' succeeded
判斷Oracle ASM Filter Driver是否已經配置
可以通過判斷Oracle ASM實例的SYS_ASMFD_PROPERTIES的AFD_STATE參數值來判斷Oracle ASMFD是否被配置。也可以使用ASMCMD afd_state命令來檢查Oracle ASMFD的狀態
[grid@cs1 ~]$ asmcmd afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'DISABLED' on host 'cs1.jy.net' [grid@cs2 ~]$ asmcmd afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'cs2.jy.net'
下面的查詢如果AFD_STATE參數值等于NOT AVAILABLE就表示Oracle ASMFD沒有被配置
SQL> select sys_context('SYS_ASMFD_PROPERTIES', 'AFD_STATE') from dual; SYS_CONTEXT('SYS_ASMFD_PROPERTIES','AFD_STATE') --------------------------------------------------------------------------- CONFIGURED
設置Oracle ASM Filter Driver的AFD_DISKSTRING參數
AFD_DISKSTRING參數來指定Oracle ASMFD磁盤發現路徑來標識由Oracle ASMFD來管理的磁盤。也可以使用ASMCMD afd_dsset和afd_dsget命令來設置和顯示AFD_DISKSTRING參數:
[grid@cs1 ~]$ asmcmd afd_dsset '/dev/sd*','/dev/asm*','AFD:*' [grid@cs2 ~]$ asmcmd afd_dsset '/dev/sd*','/dev/asm*','AFD:*' [grid@cs1 ~]$ asmcmd dsget parameter:dev/sd*, /dev/asm*, AFD:* profile:dev/sd*,/dev/asm*,AFD:* [grid@cs2 ~]$ asmcmd dsget parameter:dev/sd*, /dev/asm*, AFD:* profile:dev/sd*,/dev/asm*,AFD:*
可以使用alter system語句來設置AFD_DISKSTRING。標識已經被創建在磁盤頭中通過Oracle ASMFD磁盤發現路徑來識別磁盤
SQL> ALTER SYSTEM AFD_DISKSTRING SET 'dev/sd*','/dev/asm*','AFD:*'; System altered. SQL> SELECT SYS_CONTEXT('SYS_ASMFD_PROPERTIES', 'AFD_DISKSTRING') FROM DUAL; SYS_CONTEXT('SYS_ASMFD_PROPERTIES','AFD_DISKSTRING') ----------------------------------------------------------------------------------- dev/sd*,/dev/asm*,AFD:*
為Oracle ASM Filter Driver磁盤設置Oracle ASM ASM_DISKSTRING參數
可以更新Oracle ASM磁盤發現路徑來增加或刪除Oracle ASMFD 磁盤標識名到ASM_DISKSTRING參數,可以使用alter system語句或asmcmd dsset命令
SQL> show parameter asm_diskstring NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ asm_diskstring string dev/sd*, /dev/asm*, AFD:* [grid@cs1 ~]$ asmcmd dsset 'dev/sd*','/dev/asm*','AFD:*' [grid@cs2 ~]$ asmcmd dsset 'dev/sd*','/dev/asm*','AFD:*'
測試Filter功能
首先檢查filter功能是否開啟
[grid@cs1 ~]$ asmcmd afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'cs1.jy.net' [grid@jytest1 ~]$ asmcmd afd_lsdsk -------------------------------------------------------------------------------- Label Filtering Path ================================================================================ CRS1 ENABLED /dev/asmdisk02 CRS2 ENABLED /dev/asmdisk01 DATA1 ENABLED /dev/asmdisk03 DATA2 ENABLED /dev/asmdisk04 FRA1 ENABLED /dev/asmdisk07 TEST1 ENABLED /dev/asmdisk05 TEST2 ENABLED /dev/asmdisk06
上面的結果顯示filter功能已經開啟,如果要禁用filter功能執行asmcmd afd_filter -d
[grid@cs1 ~]$ asmcmd afd_filter -d [grid@cs1 ~]$ asmcmd afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'jytest1.jydba.net' [grid@cs1 ~]$ asmcmd afd_lsdsk There are no labelled devices.
如果要開啟filter功能執行asmcmd afd_filter -e
[grid@jytest1 ~]$ asmcmd afd_lsdsk -------------------------------------------------------------------------------- Label Filtering Path ================================================================================ CRS1 ENABLED /dev/asmdisk02 CRS2 ENABLED /dev/asmdisk01 DATA1 ENABLED /dev/asmdisk03 DATA2 ENABLED /dev/asmdisk04 FRA1 ENABLED /dev/asmdisk07 TEST1 ENABLED /dev/asmdisk05 TEST2 ENABLED /dev/asmdisk06
先用 KFED 讀取一下TEST磁盤組的AFD:TEST1的磁盤頭,驗證一下確實無誤
[grid@jytest1 ~]$ kfed read AFD:TEST1 kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 2147483648 ; 0x008: disk=0 kfbh.check: 3275580027 ; 0x00c: 0xc33d627b kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdhdb.driver.provstr: ORCLDISKTEST1 ; 0x000: length=13 kfdhdb.driver.reserved[0]: 1414743380 ; 0x008: 0x54534554 kfdhdb.driver.reserved[1]: 49 ; 0x00c: 0x00000031 kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000 kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000 kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000 kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000 kfdhdb.compat: 203424000 ; 0x020: 0x0c200100 kfdhdb.dsknum: 0 ; 0x024: 0x0000 kfdhdb.grptyp: 2 ; 0x026: KFDGTP_NORMAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: TEST1 ; 0x028: length=5 kfdhdb.grpname: TEST ; 0x048: length=4 kfdhdb.fgname: TEST1 ; 0x068: length=5 kfdhdb.fgname: DN1 ; 0x068: length=3
下面直接用dd嘗試將磁盤頭清零。dd 命令本身沒有任何錯誤返回。
[root@cs1 ~]# dd if=/dev/zero of=/dev/asmdisk03 bs=1024 count=10000 10000+0 records in 10000+0 records out 10240000 bytes (10 MB) copied, 1.24936 s, 8.2 MB/s
備份磁盤的前1024字節并清除,普通用戶沒權限讀
[root@jytest1 ~]# dd if=/dev/asmdisk05 of=asmdisk05_header bs=1024 count=1 1+0 records in 1+0 records out 1024 bytes (1.0 kB) copied, 0.000282638 s, 3.6 MB/s [root@jytest1 ~]# ls -lrt -rw-r--r-- 1 root root 1024 Aug 31 01:22 asmdisk05_header [root@jytest1 ~]# dd if=/dev/zero of=/dev/asmdisk05 bs=1024 count=1 1+0 records in 1+0 records out 1024 bytes (1.0 kB) copied, 0.000318516 s, 3.2 MB/s
再用 KFED 讀取一下TEST磁盤組的AFD:TEST1的磁盤頭,驗證一下確實無誤
[grid@jytest1 ~]$ kfed read AFD:TEST1 kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 2147483648 ; 0x008: disk=0 kfbh.check: 3275580027 ; 0x00c: 0xc33d627b kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdhdb.driver.provstr: ORCLDISKTEST1 ; 0x000: length=13 kfdhdb.driver.reserved[0]: 1414743380 ; 0x008: 0x54534554 kfdhdb.driver.reserved[1]: 49 ; 0x00c: 0x00000031 kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000 kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000 kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000 kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000 kfdhdb.compat: 203424000 ; 0x020: 0x0c200100 kfdhdb.dsknum: 0 ; 0x024: 0x0000 kfdhdb.grptyp: 2 ; 0x026: KFDGTP_NORMAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: TEST1 ; 0x028: length=5 kfdhdb.grpname: TEST ; 0x048: length=4 kfdhdb.fgname: TEST1 ; 0x068: length=5
測試dismount磁盤組TEST,再mount磁盤組TEST都能成功
[grid@jytest1 ~]$ asmcmd umount TEST [grid@jytest1 ~]$ asmcmd lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 512 4096 4194304 40960 264 0 264 0 Y CRS/ MOUNTED EXTERN N 512 512 4096 4194304 40960 24732 0 24732 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 40960 18452 0 18452 0 N FRA/ [grid@jytest1 ~]$ asmcmd mount TEST [grid@jytest1 ~]$ asmcmd lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 512 4096 4194304 40960 264 0 264 0 Y CRS/ MOUNTED EXTERN N 512 512 4096 4194304 40960 24732 0 24732 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 40960 18452 0 18452 0 N FRA/ MOUNTED NORMAL N 512 512 4096 4194304 40960 11128 0 5564 0 N TEST/
現在對磁盤/dev/asmdisk05禁用filter功能
[grid@jytest1 ~]$ asmcmd afd_lsdsk -------------------------------------------------------------------------------- Label Filtering Path ================================================================================ CRS1 ENABLED /dev/asmdisk02 CRS2 ENABLED /dev/asmdisk01 DATA1 ENABLED /dev/asmdisk03 DATA2 ENABLED /dev/asmdisk04 FRA1 ENABLED /dev/asmdisk07 TEST1 ENABLED /dev/asmdisk05 TEST2 ENABLED /dev/asmdisk06 [grid@jytest1 ~]$ asmcmd afd_filter -d /dev/asmdisk05 [grid@jytest1 ~]$ asmcmd afd_lsdsk -------------------------------------------------------------------------------- Label Filtering Path ================================================================================ CRS1 ENABLED /dev/asmdisk02 CRS2 ENABLED /dev/asmdisk01 DATA1 ENABLED /dev/asmdisk03 DATA2 ENABLED /dev/asmdisk04 FRA1 ENABLED /dev/asmdisk07 TEST1 DISABLED /dev/asmdisk05 TEST2 ENABLED /dev/asmdisk06
清除磁盤的前1024字節
[root@jytest1 ~]# dd if=/dev/zero of=/dev/asmdisk05 bs=1024 count=1 1+0 records in 1+0 records out 1024 bytes (1.0 kB) copied, 0.000318516 s, 3.2 MB/s [grid@jytest1 ~]$ asmcmd umount TEST [grid@jytest1 ~]$ asmcmd mount TEST ORA-15032: not all alterations performed ORA-15017: diskgroup "TEST" cannot be mounted ORA-15040: diskgroup is incomplete (DBD ERROR: OCIStmtExecute) [grid@jytest1 ~]$ kfed read AFD:TEST1 kfbh.endian: 0 ; 0x000: 0x00 kfbh.hard: 0 ; 0x001: 0x00 kfbh.type: 0 ; 0x002: KFBTYP_INVALID kfbh.datfmt: 0 ; 0x003: 0x00 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 0 ; 0x008: file=0 kfbh.check: 0 ; 0x00c: 0x00000000 kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 000000000 00000000 00000000 00000000 00000000 [................] Repeat 255 times KFED-00322: invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
可以看到當filter功能被禁用時就失去了保護功能
使用之前備份的磁盤前1024字節信息來恢復磁盤頭
[root@jytest1 ~]# dd if=asmdisk05_header of=/dev/asmdisk05 bs=1024 count=1 1+0 records in 1+0 records out 1024 bytes (1.0 kB) copied, 0.000274822 s, 3.7 MB/s [grid@jytest1 ~]$ kfed read /dev/asmdisk05 kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 2147483648 ; 0x008: disk=0 kfbh.check: 1645917758 ; 0x00c: 0x621ab63e kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdhdb.driver.provstr: ORCLDISKTEST1 ; 0x000: length=13 kfdhdb.driver.reserved[0]: 1414743380 ; 0x008: 0x54534554 kfdhdb.driver.reserved[1]: 49 ; 0x00c: 0x00000031 kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000 kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000 kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000 kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000 kfdhdb.compat: 203424000 ; 0x020: 0x0c200100 kfdhdb.dsknum: 0 ; 0x024: 0x0000 kfdhdb.grptyp: 2 ; 0x026: KFDGTP_NORMAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: TEST1 ; 0x028: length=5 kfdhdb.grpname: TEST ; 0x048: length=4 kfdhdb.fgname: TEST1 ; 0x068: length=5
再次mount磁盤組TEST
[grid@jytest1 ~]$ asmcmd lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 512 4096 4194304 40960 264 0 264 0 Y CRS/ MOUNTED EXTERN N 512 512 4096 4194304 40960 24732 0 24732 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 40960 18452 0 18452 0 N FRA/ [grid@jytest1 ~]$ asmcmd mount TEST [grid@jytest1 ~]$ asmcmd lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 512 4096 4194304 40960 264 0 264 0 Y CRS/ MOUNTED EXTERN N 512 512 4096 4194304 40960 24732 0 24732 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 40960 18452 0 18452 0 N FRA/ MOUNTED NORMAL N 512 512 4096 4194304 40960 11120 0 5560 0 N TEST/
設置,清除與掃描Oracle ASM Filter Driver Labels
給由Oracle ASMFD管理的磁盤設置一個標識,在標識設置后,指定的磁盤將會由Oracle ASMFD來管理。可以使用ASMCMD afd_label,afd_unlabel與afd_scan來增加,刪除和掃描標識查看已經標識過的磁盤可以看到磁盤/dev/asmdisk03和 /dev/asmdisk05沒有被標識。
[grid@cs1 ~]$ asmcmd afd_lsdsk -------------------------------------------------------------------------------- Label Filtering Path ================================================================================ CRS1 ENABLED /dev/asmdisk02 CRS2 ENABLED /dev/asmdisk01 DATA1 ENABLED /dev/asmdisk04 SQL> select group_number,disk_number,name,label,path from v$asm_disk; GROUP_NUMBER DISK_NUMBER NAME LABEL PATH ------------ ----------- ------------------------------ -------------------------------------------------- -------------------------------------------------- 0 0 CRS1 AFD:CRS1 0 1 /dev/asmdisk05 0 2 DATA1 AFD:DATA1 0 3 /dev/asmdisk03 0 4 CRS2 AFD:CRS2 1 0 CRS1 CRS1 /dev/asmdisk02 1 1 CRS2 CRS2 /dev/asmdisk01 2 0 DATA1 DATA1 /dev/asmdisk04
設置標識
[grid@cs2 ~]$ asmcmd afd_label DN1 /dev/asmdisk03 [grid@cs2 ~]$ asmcmd afd_label DN2 /dev/asmdisk05
查看已經標識過的磁盤可以看到磁盤/dev/asmdisk03和 /dev/asmdisk05已經被標識
[grid@cs1 ~]$ asmcmd afd_lsdsk -------------------------------------------------------------------------------- Label Filtering Path ================================================================================ CRS1 ENABLED /dev/asmdisk02 CRS2 ENABLED /dev/asmdisk01 DATA1 ENABLED /dev/asmdisk04 DN1 ENABLED /dev/asmdisk03 DN2 ENABLED /dev/asmdisk05 SQL> select group_number,disk_number,name,label,path from v$asm_disk; GROUP_NUMBER DISK_NUMBER NAME LABEL PATH ------------ ----------- ------------------------------ -------------------------------------------------------------- -------------------------------------------------- 0 0 CRS1 AFD:CRS1 0 1 DN2 /dev/asmdisk05 0 2 DN1 AFD:DN1 0 3 DATA1 AFD:DATA1 0 4 DN1 /dev/asmdisk03 0 6 CRS2 AFD:CRS2 0 5 DN2 AFD:DN2 1 1 CRS2 CRS2 /dev/asmdisk01 1 0 CRS1 CRS1 /dev/asmdisk02 2 0 DATA1 DATA1 /dev/asmdisk04
清除標識
[grid@cs1 ~]$ asmcmd afd_unlabel 'DN1' [grid@cs1 ~]$ asmcmd afd_unlabel 'DN2'
注意在清除標識時,如果標識所標記的磁盤已經用來創建磁盤組了那么是不能清除的,例如
[grid@cs1 ~]$ asmcmd afd_unlabel 'TEST1' disk AFD:TEST1 is already provisioned for ASM No devices to be unlabeled. ASMCMD-9514: ASM disk label clear operation failed.
掃描標識
[grid@cs1 ~]$ asmcmd afd_scan
查看已經標識過的磁盤可以看到 /dev/asmdisk03和 /dev/asmdisk05的標識已經清除了
[grid@cs1 ~]$ asmcmd afd_lsdsk -------------------------------------------------------------------------------- Label Filtering Path ================================================================================ CRS1 ENABLED /dev/asmdisk02 CRS2 ENABLED /dev/asmdisk01 DATA1 ENABLED /dev/asmdisk04 SQL> select group_number,disk_number,name,label,path from v$asm_disk; GROUP_NUMBER DISK_NUMBER NAME LABEL PATH ------------ ----------- ------------------------------ -------------------------------------------------------------- -------------------------------------------------- 0 0 CRS1 AFD:CRS1 0 1 /dev/asmdisk05 0 2 DATA1 AFD:DATA1 0 3 /dev/asmdisk03 0 4 CRS2 AFD:CRS2 1 1 CRS2 CRS2 /dev/asmdisk01 1 0 CRS1 CRS1 /dev/asmdisk02 2 0 DATA1 DATA1 /dev/asmdisk04
到此,相信大家對“Oracle ASM Filter Driver的相關知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。