前提:在Linux系統中安裝ASM,安裝完ASM和Oracle數據庫時都是正常使用的,但在重啟服務器后Oracle相關命令不識別。

1、

[grid@udevasm:/home/grid]$crsctl?status?res?-t
-bash:?crsctl:?command?not?found

2、查看環境變量是否正常,命令如下:

[grid@udevasm:/home/grid]$env?|grep?gri
USER=grid
ORACLE_BASE=/oracle/app/grid
MAIL=/var/spool/mail/grid
PATH=.:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/grid/bin:/home/grid/bin:/oracle/app/11.2.0/grid/bin
PWD=/home/grid
PS1=[grid@udevasm:$PWD]$
HOME=/home/grid
LOGNAME=grid
ORACLE_HOME=/oracle/app/11.2.0/grid
[grid@udevasm:/home/grid]$

3、通過查詢結果初步判斷環境變量是正常的,然后通過另外一個角度去考慮,是不是Oracle程序本身安裝有問題,因為昨天系統才安裝過ASM和Oracle數據庫,測試都是正常的,應該講沒有啥問題才對,但是突然間想起在服務器重啟的時候,啟動界面提示要加載文件系統,而且時間很長,截圖如下:


wKiom1krt6Oyj7luAABsGdYqXEo221.png

4、通過在啟動時提示的信息,就是查看文件系統是否有問題,想起之前硬盤掛載在不同的路徑下,命令如下:

[oracle@udevasm?~]$?df?-lh
Filesystem??????Size??Used?Avail?Use%?Mounted?on
/dev/sda1????????95G??4.5G???86G???5%?/
tmpfs???????????996M???72K??996M???1%?/dev/shm
/dev/sdb1????????50G??8.3G???39G??18%?/oradata
/dev/sdb2????????20G??7.4G???12G??40%?/soft

5、通過上面命令查詢結果,發現問題所在,因為sdb1我調整掛載在/oracle路徑下的,原來的sdc1是掛載/oradata路徑,由于sdc1mount在/oradata路徑下沒有設置在開機時啟動,而且sdb1是默認的啟動,從而導致在啟動的sdc1掛載失敗,影響Oracle相關程序啟動,所以命令失敗無法找到,去查看fstab內容。

[root@udevasm?~]#?more?/etc/fstab?#
#?/etc/fstab
#?Created?by?anaconda?on?Fri?May?19?04:21:30?2017
#
#?Accessible?filesystems,?by?reference,?are?maintained?under?'/dev/disk'
#?See?man?pages?fstab(5),?findfs(8),?mount(8)?and/or?blkid(8)?for?more?info
#
UUID=a6cc0566-d29b-44fa-8741-b78170483210?/???????????????????????ext4????defaults????????1?1
UUID=8a211faf-b2d7-4384-9c9d-fc25cb79f19b?/oradata????????????????ext4????defaults????????1?2
UUID=08d48193-8c4e-40e9-a333-47fe86568029?/soft???????????????????ext4????defaults????????1?2
UUID=6e9b041a-1687-430f-9209-c06b6558e6fe?swap????????????????????swap????defaults????????0?0
tmpfs???????????????????/dev/shm????????????????tmpfs???defaults????????0?0
devpts??????????????????/dev/pts????????????????devpts??gid=5,mode=620??0?0
sysfs???????????????????/sys????????????????????sysfs???defaults????????0?0
proc????????????????????/proc???????????????????proc????defaults????????0?0

6、通過命令查看后,并沒有發現oracle路徑下的設備,再通過查詢UUID塊設備下有哪些設備


[root@udevasm ~]# sudo blkid
/dev/sda1: UUID="a6cc0566-d29b-44fa-8741-b78170483210" TYPE="ext4"
/dev/sda2: UUID="6e9b041a-1687-430f-9209-c06b6558e6fe" TYPE="swap"
/dev/sdb1: UUID="8a211faf-b2d7-4384-9c9d-fc25cb79f19b" TYPE="ext4"
/dev/sdb2: UUID="08d48193-8c4e-40e9-a333-47fe86568029" TYPE="ext4"
/dev/sdc1: UUID="07af4d45-14d3-4a8f-89ae-53a276f7c01e" TYPE="ext4"
/dev/asm_grid1: TYPE="oracleasm"
/dev/asm_system: TYPE="oracleasm"
/dev/asm_recovery: TYPE="oracleasm"
/dev/asm_data01: TYPE="oracleasm"
/dev/asm_data02: TYPE="oracleasm"
[root@udevasm ~]# more /etc/fstab


7、再通過lsblk -f 命令查詢塊設備下詳細的信息如下:

[root@udevasm?~]#?lsblk?-f
NAME???FSTYPE??LABEL??????????????????UUID?????????????????????????????????MOUNTPOINT
sda????????????????????????????????????????????????????????????????????????
├─sda1?ext4???????????????????????????a6cc0566-d29b-44fa-8741-b78170483210?/
└─sda2?swap???????????????????????????6e9b041a-1687-430f-9209-c06b6558e6fe?[SWAP]
sdb????????????????????????????????????????????????????????????????????????
├─sdb1?ext4???????????????????????????8a211faf-b2d7-4384-9c9d-fc25cb79f19b?/oradata
└─sdb2?ext4???????????????????????????08d48193-8c4e-40e9-a333-47fe86568029?/soft
sdd????????????????????????????????????????????????????????????????????????
└─sdd1?????????????????????????????????????????????????????????????????????
sde????????????????????????????????????????????????????????????????????????
└─sde1?????????????????????????????????????????????????????????????????????
sdf????????????????????????????????????????????????????????????????????????
└─sdf1?????????????????????????????????????????????????????????????????????
sdg????????????????????????????????????????????????????????????????????????
└─sdg1?????????????????????????????????????????????????????????????????????
sdh????????????????????????????????????????????????????????????????????????
└─sdh1?????????????????????????????????????????????????????????????????????
sr0????iso9660?RHEL_6.5?x86_64?Disc?1

通過上述幾個命令可以判斷出是由于sdc1分區沒有自動掛載導致Oracle程序沒有辦法啟動


8、修改/etc/fstab配置文件,讓sdc1設備在開機自動啟動,最好通過UUID來掛載,因為:

Linux UUID的作用及意義

原因1:它是真正的唯一標志符

UUID為系統中的存儲設備提供唯一的標識字符串,不管這個設備是什么類型的。如果你在系統中添加了新的存儲設備如硬盤,很可能會造成一些麻煩,比如說啟動的時候因為找不到設備而失敗,而使用UUID則不會有這樣的問題。

原因2:設備名并非總是不變的

自動分配的設備名稱并非總是一致的,它們依賴于啟動時內核加載模塊的順序。如果你在插入了USB盤時啟動了系統,而下次啟動時又把它拔掉了,就有可能導致設備名分配不一致。

使用UUID對于掛載移動設備也非常有好處──例如我有一個24合一的讀卡器,它支持各種各樣的卡,而使用UUID總可以使同一塊卡掛載在同一個地方。

原因3:Ubuntu中的許多關鍵功能現在開始依賴于UUID


9、通過第6步和第7步中,可以把相關的修改成之前配置想要的內容,修改內容如下:

[root@udevasm?~]#?more?/etc/fstab?#
#?/etc/fstab
#?Created?by?anaconda?on?Fri?May?19?04:21:30?2017
#
#?Accessible?filesystems,?by?reference,?are?maintained?under?'/dev/disk'
#?See?man?pages?fstab(5),?findfs(8),?mount(8)?and/or?blkid(8)?for?more?info
#
UUID=a6cc0566-d29b-44fa-8741-b78170483210?/???????????????????????ext4????defaults????????1?1
UUID=8a211faf-b2d7-4384-9c9d-fc25cb79f19b?/oracle?????????????????ext4????defaults????????0?0
UUID=07af4d45-14d3-4a8f-89ae-53a276f7c01e?/oradata????????????????ext4????defaults????????0?0
UUID=08d48193-8c4e-40e9-a333-47fe86568029?/soft???????????????????ext4????defaults????????0?0
UUID=6e9b041a-1687-430f-9209-c06b6558e6fe?swap????????????????????swap????defaults????????0?0
tmpfs???????????????????/dev/shm????????????????tmpfs???defaults????????0?0
devpts??????????????????/dev/pts????????????????devpts??gid=5,mode=620??0?0
sysfs???????????????????/sys????????????????????sysfs???defaults????????0?0
proc????????????????????/proc???????????????????proc????defaults????????0?0

注意:后面的數字修改成0 0,如果不設置0的話,服務器在啟動的時候就會檢測,如果硬盤滿的話,就會導致操作系統無法正常啟動,此處應該讓系統禁止檢測


10、注意:再mount 一下,判斷是否掛載成功,如果掛載有問題會導致系統無法正常啟動

[root@udevasm?~]#?mount
/dev/sda1?on?/?type?ext4?(rw)
proc?on?/proc?type?proc?(rw)
sysfs?on?/sys?type?sysfs?(rw)
devpts?on?/dev/pts?type?devpts?(rw,gid=5,mode=620)
tmpfs?on?/dev/shm?type?tmpfs?(rw)
/dev/sdb2?on?/soft?type?ext4?(rw)
none?on?/proc/sys/fs/binfmt_misc?type?binfmt_misc?(rw)
/dev/sdc1?on?/oradata?type?ext4?(rw)
/dev/sdb1?on?/oracle?type?ext4?(rw)

11、重啟一下服務器判斷設備掛載是否成功

[root@udevasm?~]#?reboot

重啟時,服務器系統啟動時間快,就沒有之前那種提示要加載文件系統內容

12、系統啟動成功后用grid用戶查看ASM狀態:

[grid@udevasm:/home/grid]$crs_stat?-t
Name???????????Type???????????Target????State?????Host????????
------------------------------------------------------------
ora....TA01.dg?ora....up.type?ONLINE????ONLINE????udevasm?????
ora....TA02.dg?ora....up.type?ONLINE????ONLINE????udevasm?????
ora....VERY.dg?ora....up.type?ONLINE????ONLINE????udevasm?????
ora....STEM.dg?ora....up.type?ONLINE????ONLINE????udevasm?????
ora.GRID1.dg???ora....up.type?ONLINE????ONLINE????udevasm?????
ora....ER.lsnr?ora....er.type?ONLINE????ONLINE????udevasm?????
ora.asm????????ora.asm.type???ONLINE????ONLINE????udevasm?????
ora.cssd???????ora.cssd.type??ONLINE????ONLINE????udevasm?????
ora.diskmon????ora....on.type?OFFLINE???OFFLINE???????????????
ora.evmd???????ora.evm.type???ONLINE????ONLINE????udevasm?????
ora.ons????????ora.ons.type???OFFLINE???OFFLINE???????????????
ora.udevasm.db?ora....se.type?OFFLINE???OFFLINE

??????????

13、此時說明硬盤設置成自動重啟正常,再用lsblk -f 命令查詢塊設備下詳細的信息如下

[root@udevasm?~]#?lsblk?-f
NAME???FSTYPE??LABEL??????????????????UUID?????????????????????????????????MOUNTPOINT
sda????????????????????????????????????????????????????????????????????????
├─sda1?ext4???????????????????????????a6cc0566-d29b-44fa-8741-b78170483210?/
└─sda2?swap???????????????????????????6e9b041a-1687-430f-9209-c06b6558e6fe?[SWAP]
sdb????????????????????????????????????????????????????????????????????????
├─sdb1?ext4???????????????????????????8a211faf-b2d7-4384-9c9d-fc25cb79f19b?/oracle
└─sdb2?ext4???????????????????????????08d48193-8c4e-40e9-a333-47fe86568029?/soft
sdc????????????????????????????????????????????????????????????????????????
└─sdc1?ext4???????????????????????????07af4d45-14d3-4a8f-89ae-53a276f7c01e?/oradata
sdd????????????????????????????????????????????????????????????????????????
└─sdd1?????????????????????????????????????????????????????????????????????
sde????????????????????????????????????????????????????????????????????????
└─sde1?????????????????????????????????????????????????????????????????????
sdf????????????????????????????????????????????????????????????????????????
└─sdf1?????????????????????????????????????????????????????????????????????
sdg????????????????????????????????????????????????????????????????????????
└─sdg1?????????????????????????????????????????????????????????????????????
sdh????????????????????????????????????????????????????????????????????????
└─sdh1?????????????????????????????????????????????????????????????????????
sr0????iso9660?RHEL_6.5?x86_64?Disc?1

通過上述說明,則可以判斷我們設置成自動啟動成功

總結:1、在發現命令無法使用的時候,就要首先從可能導致這個命令的原因找問題,如果首先問題判斷沒有問題,再去判斷其它方面的問題

???????????? 2、系統在啟動時會給我們一些詳細的啟動參數內容,如果有問題的也會詳細打印出來,最好看一下系統啟動的日志內容

???????????? 3、在mount設備時,必須要讓系統自己掛載,這樣可以避免一些程序上面的問題,同時在使用UUID時也要注意,防止系統在啟動時無法正常啟動


有關在linux系統中fstab配置文件詳解說明

參考:http://xiaocao13140.blog.51cto.com/6198256/1930572

有關在Linux磁盤分區UUID的獲取及其UUID的作用

參考:http://xiaocao13140.blog.51cto.com/6198256/1930571