共計(jì) 28604 個字符,預(yù)計(jì)需要花費(fèi) 72 分鐘才能閱讀完成。
本篇內(nèi)容主要講解“Oracle ASM Filter Driver 的相關(guān)知識點(diǎn)有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓丸趣 TV 小編來帶大家學(xué)習(xí)“Oracle ASM Filter Driver 的相關(guān)知識點(diǎn)有哪些”吧!
Oracle ASM Filter Driver(Oracle ASMFD)消除了在系統(tǒng)每次被重啟后 Oracle ASM 需要重新綁定磁盤設(shè)備來簡化對磁盤設(shè)備的配置與管理。Oracle ASM Filter Driver(Oracle ASMFD)是一種內(nèi)置在 Oracle ASM 磁盤的 IO 路徑中的內(nèi)核模塊。Oracle ASM 使用 filter driver 來驗(yàn)證對 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)在系統(tǒng)安裝 Oracle ASMLIB 的情況下不能被安裝,如果你想安裝與配置 Oracle ASMFD,那么必須首先卸載 Oracle ASMLIB。Oracle 12.2 的 ASMFD 不支持?jǐn)U展分區(qū)表。
配置 Oracle ASM Filter Driver
可以在安裝 Oracle Grid Infrastructure 時或在安裝 Oracle Grid Infrastructure 后對磁盤設(shè)備永久性配置 Oracle ASM Filter Driver(Oracle ASMFD)。
在安裝 Oracle Grid Infrastructure 時配置 Oracle ASM Filter Driver
在安裝 Oracle Grid Infrastructure 時,可以選擇啟用自動安裝與配置 Oracle ASM Filter Driver。如果在安裝 Oracle Grid Infrastructure 所在的系統(tǒng)中沒有使用 udev,那么可以在在安裝 Oracle Grid Infrastructure 之前執(zhí)行下面的操作來為 Oracle ASMFD 準(zhǔn)備磁盤。下面的操作必須在 Oracle Grid Infrastructure 軟件包在 Oracle Grid Infrastructure home 目錄中必須解壓后,但在配置 ASMFD 之前執(zhí)行。
1. 為了使用 Oracle ASM Filter Driver 來配置共享磁盤,以 root 用戶來設(shè)置環(huán)境變量 $ORACLE_HOME 為 Grid Home 目錄,設(shè)置環(huán)境變量 $ORACLE_BASE 為臨時目錄
# set ORACLE_HOME=/u01/app/oracle/12.2.0/grid
# set ORACLE_BASE=/tmp
ORACLE_BASE 變量被設(shè)置為臨時目錄可以避免在安裝 Oracle Grid Infrastructure 之前在 Grid Home 目錄中創(chuàng)建診斷或跟蹤文件。在執(zhí)行下面的操作之前,確保是在 $ORACLE_HOME/bin 目錄中執(zhí)行命令。
2. 使用 ASMCMD afd_label 命令來為 Oracle ASM Filter Driver 來準(zhǔn)備磁盤.
#asmcmd afd_label DATA1 /dev/disk1a --init
3. 使用 ASMCMD afd_lslbl 命令來驗(yàn)證磁盤是否已經(jīng)被標(biāo)記可以為 Oracle ASMFD 所使用
#asmcmd afd_lslbl /dev/disk1a
查看某塊磁盤
[rootd@cs1 ~]./asmcmd afd_lslbl /dev/asmdisk01
--------------------------------------------------------------------------------
Label Duplicate Path
================================================================================
CRS2 /dev/asmdisk01
列出已經(jīng)標(biāo)記可以為 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. 當(dāng)為 Oracle ASMFD 準(zhǔn)備完磁盤后清除變量 ORACLE_BASE
# unset ORACLE_BASE
5. 運(yùn)行安裝腳本 (gridSetup.sh) 來安裝 Oracle Grid Infrastructure 并啟用 Oracle ASM Filter Driver 配置。
在安裝 Oracle Grid Infrastructure 后配置 Oracle ASM Filter Driver
如果在安裝 Grid Infrastructure 時沒有啟用配置 Oracle ASMFD,那么可以使用 Oracle ASMFD 來手動配置 Oracle ASM 設(shè)備。
為 Oracle Grid Infrastructure Clusterware 環(huán)境配置 Oracle ASM,具體操作如下:
1. 以 Oracle Grid Infrastructure 用戶來更新 Oracle ASM 磁盤發(fā)現(xiàn)路徑來使 Oracle ASMFD 來發(fā)現(xiàn)磁盤。
首先檢查當(dāng)前 Oracle ASM 磁盤發(fā)現(xiàn)路徑并更新
[grid@cs1 ~]$ asmcmd dsget
parameter:/dev/sd*, /dev/asm*
profile:/dev/sd*,/dev/asm*
將 AFD:* 增加到發(fā)現(xiàn)磁盤路徑中
[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 中的節(jié)點(diǎn)列表與角色
[grid@cs1 ~]$ olsnodes -a
cs1 Hub
cs2 Hub
3. 在每個 Hub 與 Leaf 節(jié)點(diǎn)上,可以以回滾或非回滾模式來執(zhí)行以下操作
3.1 以 root 用戶來停止 Oracle Grid Infrastructure
# $ORACLE_HOME/bin/crsctl stop crs
如果命令返回錯誤,那么執(zhí)行下面的命令來強(qiáng)制停止 Oracle Grid Infrastructure
# $ORACLE_HOME/bin/crsctl stop crs
-f
3.2 在節(jié)點(diǎn)層面以 root 用戶來配置 Oracle ASMFD
# $ORACLE_HOME/bin/asmcmd afd_configure
3.3 以 Oracle Grid Infrastructure 用戶來驗(yàn)證 Oracle ASMFD 的狀態(tài)
[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 用戶來設(shè)置 Oracle ASMFD 發(fā)現(xiàn)磁盤路徑為步驟 3.1 中所檢索到的原始 Oracle ASM 磁盤發(fā)現(xiàn)路徑
[grid@cs1 ~]$ asmcmd dsset dev/sd* , /dev/asm*
遷移不包含 OCR 或 vote 文件的磁盤組到 Oracle ASMFD
1. 以 Oracle Grid Infrastructure 用戶來執(zhí)行以下操作
2. 列出已經(jīng)存在的磁盤組
[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. 列出相關(guān)磁盤
[grid@cs2 ~]$ asmcmd lsdsk -G DN
/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 是否是活動狀態(tài)
[grid@cs2 ~]$ srvctl status asm
ASM is running on cs1,cs2
5. 在所有節(jié)點(diǎn)上停止數(shù)據(jù)庫與 dismount 磁盤組
[grid@cs2 ~]$srvctl stop diskgroup -diskgroup DN -f
6. 在每個 Hub 節(jié)點(diǎn)上執(zhí)行以下命令來為磁盤組中的所有已經(jīng)存在的磁盤進(jìn)行標(biāo)記
[grid@cs2 ~]$ asmcmd afd_label DN1 /dev/asmdisk03 --migrate
[grid@cs2 ~]$ asmcmd afd_label DN2 /dev/asmdisk05 --migrate
7. 在所有 Hub 節(jié)點(diǎn)上掃描磁盤
[grid@cs1 ~]$ asmcmd afd_scan
[grid@cs2 ~]$ asmcmd afd_scan
8. 在所有節(jié)點(diǎn)啟動數(shù)據(jù)庫并 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
現(xiàn)在可以將原先的 udev rules 文件移除。當(dāng)然,這要在所有節(jié)點(diǎn)中都運(yùn)行。以后如果服務(wù)器再次重啟,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
其實(shí),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 用戶來列出與磁盤組相關(guān)的磁盤
[grid@cs2 ~]$ asmcmd lsdsk -G CRS
/dev/asmdisk01
/dev/asmdisk02
3. 以 root 用戶來在所有節(jié)點(diǎn)上停止數(shù)據(jù)庫與 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 用戶來執(zhí)行下面的命令為每個 Hub 節(jié)點(diǎn)上的磁盤組中的磁盤進(jìn)行標(biāo)記
[grid@cs2 ~]$ asmcmd afd_label DN1 /dev/asmdisk03
[grid@cs2 ~]$ asmcmd afd_label DN2 /dev/asmdisk05
5. 以 Oracle Grid Infrastructure 用戶來執(zhí)行下面的命令對每個 Hub 節(jié)點(diǎn)進(jìn)行磁盤重新掃描
[grid@cs1 ~]$ asmcmd afd_scan
[grid@cs2 ~]$ asmcmd afd_scan
6. 以 root 用戶來在所有節(jié)點(diǎn)上啟用 Oracle Clusterware stack 并 mount OCR 與 vote 文件磁盤與數(shù)據(jù)庫
[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 是否已經(jīng)配置
可以通過判斷 Oracle ASM 實(shí)例的 SYS_ASMFD_PROPERTIES 的 AFD_STATE 參數(shù)值來判斷 Oracle ASMFD 是否被配置。也可以使用 ASMCMD afd_state 命令來檢查 Oracle ASMFD 的狀態(tài)
[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
下面的查詢?nèi)绻?AFD_STATE 參數(shù)值等于 NOT AVAILABLE 就表示 Oracle ASMFD 沒有被配置
SQL select sys_context(SYS_ASMFD_PROPERTIES , AFD_STATE) from dual;
SYS_CONTEXT(SYS_ASMFD_PROPERTIES , AFD_STATE)
---------------------------------------------------------------------------
CONFIGURED
設(shè)置 Oracle ASM Filter Driver 的 AFD_DISKSTRING 參數(shù)
AFD_DISKSTRING 參數(shù)來指定 Oracle ASMFD 磁盤發(fā)現(xiàn)路徑來標(biāo)識由 Oracle ASMFD 來管理的磁盤。也可以使用 ASMCMD afd_dsset 和 afd_dsget 命令來設(shè)置和顯示 AFD_DISKSTRING 參數(shù):
[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 語句來設(shè)置 AFD_DISKSTRING。標(biāo)識已經(jīng)被創(chuàng)建在磁盤頭中通過 Oracle ASMFD 磁盤發(fā)現(xiàn)路徑來識別磁盤
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 磁盤設(shè)置 Oracle ASM ASM_DISKSTRING 參數(shù)
可以更新 Oracle ASM 磁盤發(fā)現(xiàn)路徑來增加或刪除 Oracle ASMFD 磁盤標(biāo)識名到 ASM_DISKSTRING 參數(shù),可以使用 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
上面的結(jié)果顯示 filter 功能已經(jīng)開啟,如果要禁用 filter 功能執(zhí)行 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 功能執(zhí)行 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 的磁盤頭,驗(yàn)證一下確實(shí)無誤
[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 字節(jié)并清除,普通用戶沒權(quán)限讀
[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 的磁盤頭,驗(yàn)證一下確實(shí)無誤
[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/
現(xiàn)在對磁盤 /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 字節(jié)
[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]
可以看到當(dāng) filter 功能被禁用時就失去了保護(hù)功能
使用之前備份的磁盤前 1024 字節(jié)信息來恢復(fù)磁盤頭
[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/
設(shè)置,清除與掃描 Oracle ASM Filter Driver Labels
給由 Oracle ASMFD 管理的磁盤設(shè)置一個標(biāo)識,在標(biāo)識設(shè)置后,指定的磁盤將會由 Oracle ASMFD 來管理??梢允褂?ASMCMD afd_label,afd_unlabel 與 afd_scan 來增加,刪除和掃描標(biāo)識查看已經(jīng)標(biāo)識過的磁盤可以看到磁盤 /dev/asmdisk03 和 /dev/asmdisk05 沒有被標(biāo)識。
[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
設(shè)置標(biāo)識
[grid@cs2 ~]$ asmcmd afd_label DN1 /dev/asmdisk03
[grid@cs2 ~]$ asmcmd afd_label DN2 /dev/asmdisk05
查看已經(jīng)標(biāo)識過的磁盤可以看到磁盤 /dev/asmdisk03 和 /dev/asmdisk05 已經(jīng)被標(biāo)識
[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
清除標(biāo)識
[grid@cs1 ~]$ asmcmd afd_unlabel DN1
[grid@cs1 ~]$ asmcmd afd_unlabel DN2
注意在清除標(biāo)識時,如果標(biāo)識所標(biāo)記的磁盤已經(jīng)用來創(chuàng)建磁盤組了那么是不能清除的,例如
[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.
掃描標(biāo)識
[grid@cs1 ~]$ asmcmd afd_scan
查看已經(jīng)標(biāo)識過的磁盤可以看到 /dev/asmdisk03 和 /dev/asmdisk05 的標(biāo)識已經(jīng)清除了
[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 的相關(guān)知識點(diǎn)有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!