ORA-12560: TNS: Protocol Adapter Error ORA-00600: [2037] 在WIN上一次處理
database:10.2.0.1
OS WINDOWS SERVER 2008
今天由於朋友的資料的斷電重啟後,資料庫起不來,更蛋疼的是SQLPLUS,LSNRCTL都進不去
要麼一直hang住要麼報錯
ORA-12560: TNS: Protocol Adapter Error
由於alert日誌非常大,我新建了一個日誌檔案發現DOWN庫的報錯如下:
Mon May 09 13:31:43 2016
Completed redo application
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\bdump\orcl_p001_5116.trc:
ORA-00600: internal error code, arguments: [2037], [12627367], [2913444358], [6], [1], [0], [1667018151], [100925440]
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\bdump\orcl_p000_1372.trc:
ORA-00600: internal error code, arguments: [2037], [12622839], [2616697350], [6], [1], [0], [1668258807], [100875008]
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\bdump\orcl_p002_968.trc:
ORA-00600: internal error code, arguments: [2037], [12637266], [3562185222], [6], [4], [0], [294376530], [100743216]
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\udump\orcl_ora_4960.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [_kews_cln_timestate+720] [PC:0x603310] [ADDR:0xC876412] [UNABLE_TO_READ] []
ORA-01033: ORACLE initialization or shutdown in progress
看到這裡錯誤為ORA-00600和ORA-07445這種錯誤很可能導致資料庫崩潰,同時只能提取備份進行恢復,更鬱悶的是壓根沒有備份。
檢視TRACE檔案如下:
TYP:0 CLS: 1 AFN:3 DBA:0x00c09bf7 OBJ:3690 SCN:0x0000.666d636d SEQ: 9 OP:11.2
buffer rdba: 0x9bf7a206
scn: 0x636f.636f9bf7 seq: 0x00 flg: 0x00 tail: 0x06033b00
frmt: 0x06 chkval: 0x0000 type: 0x01=KTU UNDO HEADER
Hex dump of corrupt header 4 = CORRUPT
如此我們可以總結一下,錯誤是在進行了
Completed redo application
開啟並行UNDO回滾的時候出現的,TRACE中也能明顯的看到
錯誤
0x01=KTU UNDO HEADER
Hex dump of corrupt header 4 = CORRUPT
那麼我們大概可以知道由於UNDO的損壞導致了資料庫恢復不能進行恢復,那麼首先我們關閉掉並行恢復,
然後設定損壞的UNDO,同時設定不進行回滾,如果出現問題我們在一步一步的解決只能聽天由命了,
幸運的是這個庫這樣做後正常啟動了。但是在此之前我們必須解決SQLPLUS 根本不能的登陸的問題。
我檢視了MOS的很多關於
ORA-12560: TNS: Protocol Adapter Error
的錯誤的文章,大概都是如下的描述:
1、ORACLE_HOME正確
2、PATH正確
3、ORACLE_SID正確
4、許可權正確
5、可能多個oracle的軟體有SQLPLUS使用正確的那一個其實就是PATH正確
我逐個排查,但是還是沒有效果,我用ORADIM重建了服務如下:
oradim -new -sid -startmode AUTO -pfile
同時我還檢查PWDfile存在,其實不關這個事
關於LISTENER我也設定了HOSTS多次試驗,LINUX下HOSTS如果設定不正確
動態註冊會有問題,還是不行我又設定了固定IP,還是不行。檢查LISTER日誌
沒有超過4G。
但是還是不行,資料一旦啟動DOWN掉後就登陸不進去了,鬱悶了很久WINDOWS的東西就是這樣稀奇古怪,
當然也是和運維人員的WINDOWS水平有關,因為要知道線上的伺服器一般都不是WINDOWS。
搞了好幾個小時一直沒解決,又不想草草了事。
最後我發現雖然ORACLE例項DOWN掉了,但是WINDOWS程式還佔用了部分記憶體,猶如LINUX下使用IPCS -m
看到沒有完全釋放記憶體一樣,如此我使用了
oradim -new -sid -startmode m -pfile
設定ORACLE資料庫不隨服務啟動,這下終於可以連線到空例項了。
接下來我們就按照常規的方法設定幾個引數,然後慢慢看是否報錯吧
1、undo_mangment='MANUAL'
2、fast_start_parallel_rollback=false
3、*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
還是不行加上引數
4、_ALLOW_RESETLOGS_CORRUPTION=true
在mount階段我做了RECOVER DATABASE使用LOGFILE進行了恢復完成了這一步
其實這一步一定成功因為LOGFILE恢復沒有問題,
然後我就
ALTER DATABASE OPEN
成功啟動。
沒有出現額外的ORA-600錯誤如:
ora-600[2662](推進scn)
ora-600[4194]
最後匯出資料,新建庫吧。
這完全是幸運。
主要解決了2個問題
1、ORA-12560: TNS: Protocol Adapter Error 由於ORACLE隨服務啟動後DOWN掉沒有完全示範程式記憶體。
2、ORA-00600: internal error code, arguments: [2037] 由於UNDO PARALLEL RECOVERY失敗。
OS WINDOWS SERVER 2008
今天由於朋友的資料的斷電重啟後,資料庫起不來,更蛋疼的是SQLPLUS,LSNRCTL都進不去
要麼一直hang住要麼報錯
ORA-12560: TNS: Protocol Adapter Error
由於alert日誌非常大,我新建了一個日誌檔案發現DOWN庫的報錯如下:
Mon May 09 13:31:43 2016
Completed redo application
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\bdump\orcl_p001_5116.trc:
ORA-00600: internal error code, arguments: [2037], [12627367], [2913444358], [6], [1], [0], [1667018151], [100925440]
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\bdump\orcl_p000_1372.trc:
ORA-00600: internal error code, arguments: [2037], [12622839], [2616697350], [6], [1], [0], [1668258807], [100875008]
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\bdump\orcl_p002_968.trc:
ORA-00600: internal error code, arguments: [2037], [12637266], [3562185222], [6], [4], [0], [294376530], [100743216]
Mon May 09 13:31:43 2016
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\udump\orcl_ora_4960.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [_kews_cln_timestate+720] [PC:0x603310] [ADDR:0xC876412] [UNABLE_TO_READ] []
ORA-01033: ORACLE initialization or shutdown in progress
看到這裡錯誤為ORA-00600和ORA-07445這種錯誤很可能導致資料庫崩潰,同時只能提取備份進行恢復,更鬱悶的是壓根沒有備份。
檢視TRACE檔案如下:
TYP:0 CLS: 1 AFN:3 DBA:0x00c09bf7 OBJ:3690 SCN:0x0000.666d636d SEQ: 9 OP:11.2
buffer rdba: 0x9bf7a206
scn: 0x636f.636f9bf7 seq: 0x00 flg: 0x00 tail: 0x06033b00
frmt: 0x06 chkval: 0x0000 type: 0x01=KTU UNDO HEADER
Hex dump of corrupt header 4 = CORRUPT
如此我們可以總結一下,錯誤是在進行了
Completed redo application
開啟並行UNDO回滾的時候出現的,TRACE中也能明顯的看到
錯誤
0x01=KTU UNDO HEADER
Hex dump of corrupt header 4 = CORRUPT
那麼我們大概可以知道由於UNDO的損壞導致了資料庫恢復不能進行恢復,那麼首先我們關閉掉並行恢復,
然後設定損壞的UNDO,同時設定不進行回滾,如果出現問題我們在一步一步的解決只能聽天由命了,
幸運的是這個庫這樣做後正常啟動了。但是在此之前我們必須解決SQLPLUS 根本不能的登陸的問題。
我檢視了MOS的很多關於
ORA-12560: TNS: Protocol Adapter Error
的錯誤的文章,大概都是如下的描述:
1、ORACLE_HOME正確
2、PATH正確
3、ORACLE_SID正確
4、許可權正確
5、可能多個oracle的軟體有SQLPLUS使用正確的那一個其實就是PATH正確
我逐個排查,但是還是沒有效果,我用ORADIM重建了服務如下:
oradim -new -sid -startmode AUTO -pfile
同時我還檢查PWDfile存在,其實不關這個事
關於LISTENER我也設定了HOSTS多次試驗,LINUX下HOSTS如果設定不正確
動態註冊會有問題,還是不行我又設定了固定IP,還是不行。檢查LISTER日誌
沒有超過4G。
但是還是不行,資料一旦啟動DOWN掉後就登陸不進去了,鬱悶了很久WINDOWS的東西就是這樣稀奇古怪,
當然也是和運維人員的WINDOWS水平有關,因為要知道線上的伺服器一般都不是WINDOWS。
搞了好幾個小時一直沒解決,又不想草草了事。
最後我發現雖然ORACLE例項DOWN掉了,但是WINDOWS程式還佔用了部分記憶體,猶如LINUX下使用IPCS -m
看到沒有完全釋放記憶體一樣,如此我使用了
oradim -new -sid -startmode m -pfile
設定ORACLE資料庫不隨服務啟動,這下終於可以連線到空例項了。
接下來我們就按照常規的方法設定幾個引數,然後慢慢看是否報錯吧
1、undo_mangment='MANUAL'
2、fast_start_parallel_rollback=false
3、*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
還是不行加上引數
4、_ALLOW_RESETLOGS_CORRUPTION=true
在mount階段我做了RECOVER DATABASE使用LOGFILE進行了恢復完成了這一步
其實這一步一定成功因為LOGFILE恢復沒有問題,
然後我就
ALTER DATABASE OPEN
成功啟動。
沒有出現額外的ORA-600錯誤如:
ora-600[2662](推進scn)
ora-600[4194]
最後匯出資料,新建庫吧。
這完全是幸運。
主要解決了2個問題
1、ORA-12560: TNS: Protocol Adapter Error 由於ORACLE隨服務啟動後DOWN掉沒有完全示範程式記憶體。
2、ORA-00600: internal error code, arguments: [2037] 由於UNDO PARALLEL RECOVERY失敗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2096581/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Connect oracle database error in sqlplus: ORA-12560: TNS: protocol adapter errorOracleDatabaseErrorSQLProtocolAPT
- TNS-12560: TNS:protocol adapter error 錯誤解決ProtocolAPTError
- Bequeath Connection Generates Ora-12560: Tns:Protocol Adapter Error [ID 831007.1]ProtocolAPTError
- EBS TNS-12546: TNS:permission denied+ TNS-12560: TNS:protocol adapter error+TNS-00516: Permission deProtocolAPTError
- 記一次報錯 symlink(): Protocol error 問題處理ProtocolError
- 登入asmcmd提示ORA-12557: TNS:protocol adapter not loadable (DBD ERROR: OCIServerAttach)ASMProtocolAPTErrorServer
- ORA-00600 Error的通用處理Error
- 記一次ORA-00600: internal error code, arguments: [kdtdelrow-2]的處理Error
- ORA-00600: internal error code, arguments: [4194] 錯誤處理Error
- 處理tns不存在
- The Bequeath Protocol Adapter [ID 16653.1]ProtocolAPT
- ORA-00600: internal error code, arguments: [15709], [29], [1]-故障處理Error
- ORA-00600: internal error code, arguments: [kcratr_scan_lastbwr]錯誤處理ErrorAST
- TNS-12541: TNS:no listener錯誤處理
- 一次斷電後的TNS-12535: TNS: 操作超時錯誤的處理
- Windows ORA-12560錯誤處理方法Windows
- ORA-03137: TTC protocol internal error: [12333]分析及處理ProtocolError
- Ora-12560 TNS介面卡失敗
- WINDOWS下面ORA-12560的問題處理Windows
- TNS-12535 TNS-00505的處理方法
- error的處理方式Error
- ORA-00600 [4194], [55]處理
- 【故障處理】TNS-04610問題
- Win10 video dxgkrnl fatal error 怎麼處理Win10IDEError
- 【故障處理】ORA-28040: No matching authentication protocolProtocol
- 如何在 PHP 中處理 Protocol Buffers 資料PHPProtocol
- 如何解決 ORA-12560 ErrorError
- ORA-12560:TNS:協議介面卡錯誤協議
- ORA-12560: TNS: 協議介面卡錯誤協議
- ORA-00600 [25027]問題處理
- TNS-01190故障的處理
- 英偉達在CES上推出AI處理平臺AI
- 一次在docker中處理kdevtmpfsi的經歷Dockerdev
- 簡單記錄一次ORA-00600: internal error code, arguments: [2662]Error
- 簡單記錄一次ORA-00600: internal error code, arguments: [4194]Error
- 【故障處理】一次RAC故障處理過程
- 15-錯誤處理(Error)Error
- Rails全域性處理Error薦AIError