ASM無法啟動的問題分析(一)
最近碰到了一個關於ASM無法啟動的案例,當然這個案例比較長,準備分兩篇來寫。
問題的背景如下:
目前存在一套standalone的環境,採用了ASM作為儲存管理,業務屬於實時統計,在某一天下班的時候開發的同事突然聯絡我說,資料庫感覺有些問題,因為部分應用開始報錯了,然後他們問我在這段時間做過什麼操作沒有,從我的印象來看下午4點只對部分分割槽做了例行維護,其它什麼都沒調整。問題是在6點開始發現,所以應該沒有什麼關聯。
當然口說無憑,開發的同學也反饋了報錯的資訊。
反饋錯誤資訊1:Your database connection has timed out, either due to network problems or due to Oracle reaching the IDLE_TIME profile limit.
反饋錯誤資訊2:Request processing failed; nested exception is java.sql.SQLException: No more data to read from socket
所以馬上檢視資料庫連線數,發現只有80多個,排查了profile的情況,沒有發現什麼問題。
這個時候腦海中開始閃現各種可能性,目前發現只有兩種可能,一種是例行維護的操作。另外一種是另外一個毫不相關的機房網路調整。對於例行維護,可以基本斷定出現問題的機率較小,因為是truncate了部分的分割槽,而且分割槽數也不多,應該沒有什麼問題,除非出現了意料之外的bug。而目前的情況是更多傾向於網路層面,因為看開發提供的報錯資訊,似乎出現了網路的問題,所以也協調IT的同學幫忙看看是不是機房調整不小心影響到了另外一個機房的伺服器。
但是反饋的情況還是沒有關聯,所以這個網路的問題似乎是排除了,當然這個確認也花了些時間。而且這個時候我已經在地鐵上了,聯絡同事,他反饋資料庫裡面有一個ORA的錯誤是一個297開頭的錯誤,這個聽起來還是有些陌生,而且同事反饋似乎資料庫是有種hang的感覺,這個時候嘗試shutdown immediate都會卡住,沒有反應。這個時候感覺應該不是簡單的網路問題了,最後為了業務的使用,同事幫忙先做了failover的操作,主庫的這個問題先保留現場,等我回去馬上檢視。
發現這個時候ASM例項是無法啟動的了。
$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.3.0 Production on Sat Jan 21 20:34:31 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service
資料庫中的錯誤日誌類似下面的形式:
unrecoverable error ORA-29701 raised in ASM I/O path; terminating process 7303
Thu Jan 21 06:58:27 2016
ERROR: unrecoverable error ORA-29701 raised in ASM I/O path; terminating process 7593
Thu Jan 21 07:00:22 2016
ERROR: unrecoverable error ORA-29701 raised in ASM I/O path; terminating process 7644
Thu Jan 21 07:00:51 2016
ERROR: unrecoverable error ORA-29701 raised in ASM I/O path; terminating process 7659
對於這個錯誤,檢查了CSS和HAS的服務情況,發現都是Online狀態。
$ crsctl check css
CRS-4529: Cluster Synchronization Services is online
$ crsctl check has
CRS-4638: Oracle High Availability Services is online
這個時候的問題是這臺伺服器也沒有重啟過,出現了這個奇怪的問題。而且上一次重啟ASM是自動啟動的。
檢視服務的情況,發現db的服務顯示是UNKNOWN
$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA01.dg ora....up.type ONLINE ONLINE rolequery
ora.FLASH01.dg ora....up.type ONLINE ONLINE rolequery
ora....ER.lsnr ora....er.type ONLINE ONLINE rolequery
ora.asm ora.asm.type ONLINE ONLINE rolequery
ora.cssd ora.cssd.type ONLINE ONLINE rolequery
ora.testbi.db ora....se.type ONLINE UNKNOWN rolequery
ora.diskmon ora....on.type OFFLINE OFFLINE
ora.evmd ora.evm.type ONLINE ONLINE rolequery
ora.ons ora.ons.type OFFLINE OFFLINE
ora....rydb.db ora....se.type ONLINE ONLINE rolequery
這個時候感覺是CSS的部分出了問題,但是還沒有定位到,使用crs_stat -p檢視更明細的資訊。
$ crs_stat -p ora.cssd
NAME=ora.cssd
TYPE=ora.cssd.type
ACTION_SCRIPT=
ACTIVE_PLACEMENT=0
AUTO_START=1
CHECK_INTERVAL=30
DESCRIPTION="Resource type for CSSD"
FAILOVER_DELAY=0
FAILURE_INTERVAL=3
FAILURE_THRESHOLD=5
HOSTING_MEMBERS=
PLACEMENT=balanced
RESTART_ATTEMPTS=5
SCRIPT_TIMEOUT=600
START_TIMEOUT=600
STOP_TIMEOUT=900
UPTIME_THRESHOLD=1m
當然嘗試重啟CSS的服務,停服務是成功了。
$ crsctl start resource ora.cssd
CRS-5702: Resource 'ora.cssd' is already running on 'rolequery'
CRS-4000: Command Start failed, or completed with errors.
$ crs_stop ora.testbi.db
Attempting to stop `ora.testbi.db` on member `rolequery`
Stop of `ora.testbi.db` on member `rolequery` succeeded.
但是重啟報錯了,嘗試透過crs_start啟動資料庫例項的服務還是報錯。
$ crs_start ora.testbi.db
Attempting to start `ora.asm` on member `rolequery`
CRS-5017: The resource action "ora.asm start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service
. For details refer to "(:CLSN00107:)" in "/home/U01/app/grid/11.2.3/log/testbi/agent/ohasd/oraagent_grid/oraagent_grid.log".
Start of `ora.asm` on member `rolequery` failed.
Attempting to stop `ora.asm` on member `rolequery`
Stop of `ora.asm` on member `rolequery` succeeded.
CRS-0215: Could not start resource 'ora.testbi.db'.
檢視GI中的日誌如下:
[ clsdmc][1431308032]Fail to connect (ADDRESS=(PROTOCOL=ipc)(KEY=testbiDBG_EVMD)) with status 9
2016-01-22 00:11:22.811: [ora.evmd][1431308032] {0:10:5} [start] Error = error 9 encountered when connecting to EVMD
2016-01-22 00:11:23.811: [ora.evmd][1431308032] {0:10:5} [start] without returnbuf
2016-01-22 00:11:23.811: [ COMMCRS][1433937664]clsc_connect: (0x7f251403a630) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=testbiDBG_EVMD))
[ clsdmc][1431308032]Fail to connect (ADDRESS=(PROTOCOL=ipc)(KEY=testbiDBG_EVMD)) with status 9
2016-01-22 00:11:23.812: [ora.evmd][1431308032] {0:10:5} [start] Error = error 9 encountered when connecting to EVMD
2016-01-22 00:11:24.741: [ora.DATA01.dg][1450747648] {0:10:3} [check] DgpAgent::getConnxn check 9
2016-01-22 00:11:24.741: [ora.DATA01.dg][1450747648] {0:10:3} [check] ConnectionPool::getConnection 160 ERROR sid +ASM pool status 1
2016-01-22 00:11:24.741: [ora.DATA01.dg][1450747648] {0:10:3} [check] ConnectionPool::getConnection 260 pConnxn 00000000
2016-01-22 00:11:24.741: [ora.DATA01.dg][1450747648] {0:10:3} [check] DgpAgent::getConnxn connection failure 2
2016-01-22 00:11:24.741: [ora.DATA01.dg][1450747648] {0:10:3} [check] DgpAgent::getConnxn failed DgpAgent::getConnxn unable to connect
2016-01-22 00:11:24.741: [ora.DATA01.dg][1450747648] {0:10:3} [check] DgpAgent::getConnxn wait then retry
2016-01-22 00:11:24.751: [ora.FLASH01.dg][1436038912] {0:10:3} [check] DgpAgent::getConnxn check 9
2016-01-22 00:11:24.751: [ora.FLASH01.dg][1436038912] {0:10:3} [check] ConnectionPool::getConnection 160 ERROR sid +ASM pool status 1
2016-01-22 00:11:24.751: [ora.FLASH01.dg][1436038912] {0:10:3} [check] ConnectionPool::getConnection 260 pConnxn 00000000
2016-01-22 00:11:24.751: [ora.FLASH01.dg][1436038912] {0:10:3} [check] DgpAgent::getConnxn connection failure 2
2016-01-22 00:11:24.751: [ora.FLASH01.dg][1436038912] {0:10:3} [check] DgpAgent::getConnxn failed DgpAgent::getConnxn unable to connect
2016-01-22 00:11:24.751: [ora.FLASH01.dg][1436038912] {0:10:3} [check] DgpAgent::getConnxn wait then retry
2016-01-22 00:11:24.812: [ora.evmd][1431308032] {0:10:5} [start] without returnbuf
2016-01-22 00:11:24.812: [ COMMCRS][1433937664]clsc_connect: (0x7f251403a630) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=testbiDBG_EVMD))
[ clsdmc][1431308032]Fail to connect (ADDRESS=(PROTOCOL=ipc)(KEY=testbiDBG_EVMD)) with status 9
2016-01-22 00:11:24.812: [ora.evmd][1431308032] {0:10:5} [start] Error = error 9 encountered when connecting to EVMD
2016-01-22 00:11:25.813: [ora.evmd][1431308032] {0:10:5} [start] without returnbuf
2016-01-22 00:11:25.813: [ COMMCRS][1433937664]clsc_connect: (0x7f251403a630) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=testbiDBG_EVMD))
[ clsdmc][1431308032]Fail to connect (ADDRESS=(PROTOCOL=ipc)(KEY=testbiDBG_EVMD)) with status 9
2016-01-22 00:11:25.813: [ora.evmd][1431308032] {0:10:5} [start] Error = error 9 encountered when connecting to EVMD
這個時候cssd的狀態還是ONLINE,db的狀態是offline.
$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA01.dg ora....up.type ONLINE ONLINE rolequery
ora.FLASH01.dg ora....up.type ONLINE ONLINE rolequery
ora....ER.lsnr ora....er.type ONLINE ONLINE rolequery
ora.asm ora.asm.type ONLINE OFFLINE
ora.cssd ora.cssd.type ONLINE ONLINE rolequery
ora.testbi.db ora....se.type ONLINE OFFLINE
ora.testbi1.db ora....se.type OFFLINE OFFLINE
ora.diskmon ora....on.type OFFLINE OFFLINE
ora.evmd ora.evm.type ONLINE OFFLINE
ora.ons ora.ons.type OFFLINE OFFLINE
ora....rydb.db ora....se.type ONLINE OFFLINE
檢視所有的資源狀態:
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA01.dg
ONLINE INTERMEDIATE rolequery CHECK TIMED OUT
ora.FLASH01.dg
ONLINE INTERMEDIATE rolequery CHECK TIMED OUT
ora.LISTENER.lsnr
ONLINE ONLINE rolequery
ora.asm
ONLINE OFFLINE rolequery Instance Shutdown
ora.ons
OFFLINE OFFLINE rolequery
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE rolequery
ora.testbi.db
1 ONLINE OFFLINE Instance Shutdown
ora.testbi1.db
1 OFFLINE OFFLINE Instance Shutdown
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE OFFLINE
ora.rolequerydb.db
ONLINE OFFLINE
這個時候感覺問題比較奇怪,常規的配置都沒有發現問題,但是CSS感覺還是出現了問題。
再次檢查。
$ crsctl check has
CRS-4638: Oracle High Availability Services is online
$ crsctl check evm
CRS-4534: Cannot communicate with Event Manager
$ crsctl check css
CRS-4529: Cluster Synchronization Services is online
最後使用kfod檢視一下asm配置層面是否有問題。
$ kfod asm_diskstring='/dev/asm-sda9' disk=all
--------------------------------------------------------------------------------
Disk Size Path User Group
================================================================================
1: 153605 Mb /dev/asm-sda9 grid asmadmin
KFOD-00301: Unable to contact Cluster Synchronization Services (CSS). Return code 2 from kgxgncin.
所以透過這些我更加堅信的問題就是CSS中的問題,所以後續需要花一些功夫從以這個為出發點來分析這個問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2130951/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM無法啟動的問題分析(二)ASM
- 【ASM】ASM啟動無法找到spfile問題原因ASM
- 解決ASM無法啟動問題ASM
- dataguard中MRP無法啟動的問題分析和解決
- ASM無法自動載入磁碟組問題ASM
- mac下mysql無法啟動問題MacMySql
- 某個Eclipse無法啟動的問題Eclipse
- RAC DG 物理standby ASM無法啟動ASM
- rac節點無法啟動ORA-29702的問題及分析
- ASM無法自動載入磁碟組問題解決一例ASM
- Oracle Haip無法啟動問題學習OracleAI
- LnixuAS3Mysql無法啟動問題S3MySql
- 解決ORACLE無法啟動安裝的問題Oracle
- 關於listener無法啟動的問題解決
- 記一次 Ubuntu 服務 Nginx 無法啟動問題UbuntuNginx
- qt6 QtOpcUa無法正常啟動問題QT
- HMC連線AIX無法啟動控制檯的問題AI
- sqlplus無法啟動的問題及解決SQL
- 資料庫shutdown之後無法啟動的問題資料庫
- 解決ASM磁碟組無法掛載的問題ASM
- 記一次 Ubuntu 伺服器 Nginx 無法啟動問題Ubuntu伺服器Nginx
- Windows Defender無法開啟的問題Windows
- 一則資料庫無法啟動的奇怪案例分析資料庫
- mongoDB非正常關閉後無法啟動問題MongoDB
- VMware DHCP Service服務無法啟動問題的解決
- ORACLE 11g, EM 無法啟動的問題和重建Oracle
- 歸檔問題導致的資料庫無法啟動資料庫
- EM agent無法啟動的原因及分析
- RAC節點啟動失敗--ASM無法連線ASM
- mysql因為事務日誌問題無法啟動MySql
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- Oracle日常問題-資料庫無法啟動(案例二)Oracle資料庫
- Docker 自定義網橋後,無法正常啟動問題Docker
- 解決hyper v導致docker無法啟動問題Docker
- Windows 下處理資料庫無法啟動問題Windows資料庫
- VS2005無法啟動除錯問題除錯
- 掉電無法啟動資料庫問題解決資料庫
- 寶塔皮膚mysql無法啟動問題如何解決MySql