1. 程式人生 > >Linux服務器重啟後crs_stat -t 命令無法正常使用以及解決思路

Linux服務器重啟後crs_stat -t 命令無法正常使用以及解決思路

oracle 服務器

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

1、

[[email protected]:/home/grid]$crsctl status res -t
-bash: crsctl: command not found

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

[[email protected]:/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=[[email protected]
/* */:$PWD]$ HOME=/home/grid LOGNAME=grid ORACLE_HOME=/oracle/app/11.2.0/grid [[email protected]:/home/grid]$

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


技術分享

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

[[email protected] ~]$ 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內容。

[[email protected] ~]# 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塊設備下有哪些設備


[[email protected] ~]# 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"
[[email protected] ~]# more /etc/fstab


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

[[email protected] ~]# 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步中,可以把相關的修改成之前配置想要的內容,修改內容如下:

[[email protected] ~]# 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 一下,判斷是否掛載成功,如果掛載有問題會導致系統無法正常啟動

[[email protected] ~]# 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、重啟一下服務器判斷設備掛載是否成功

[[email protected] ~]# reboot

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

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

[[email protected]:/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 命令查詢塊設備下詳細的信息如下

[[email protected] ~]# 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

本文出自 “我主梁緣” 博客,請務必保留此出處http://xiaocao13140.blog.51cto.com/6198256/1930577

Linux服務器重啟後crs_stat -t 命令無法正常使用以及解決思路