一次儲存故障引起的資料庫啟動錯誤
論壇一篇文章,我們可能經常遇到這樣的錯誤,收藏起來.
今天一早很多資料庫收到I/O錯誤報警,差不多都是以下格式,都是ORA-27072錯誤
ORA-00345: redo log write error block 72123 count 59
ORA-00312: online log 1 thread 1: '/mnt/dmp/backup2/redo1b.log'
ORA-27072: skgfdisp: I/O error
第一反應是儲存出現問題,立即讓負責這個儲存的工程師檢查,檢查下來確定是儲存的一個模組出現了問題
儲存怎麼解決問題的,這裡就不詳說。我想說的是儲存問題解決以後,資料庫重啟時出現的問題以及怎樣解決它,雖然最後無奈的使用重啟伺服器的方法來解決的,但以下方法也是一種解決問題的思路
在儲存問題解決以後,I/O已經不出現報錯了,這時候資料庫已經不能使用shutdown immediate的方式關閉了,只能使用abort的方式關閉
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 797513464 bytes
Fixed Size 452344 bytes
Variable Size 251658240 bytes
Database Buffers 536870912 bytes
Redo Buffers 8531968 bytes
SQL> alter database mount
2 ;
alter database mount
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode
我從網上查到出現ORA-01102錯誤一般是由以下原因引起的
Oracle的共享記憶體段或訊號量沒有被釋放;
Oracle的後臺程式沒有被關閉
用於鎖記憶體的檔案lk
刪除lkDMP檔案
[oracle@s1dmp04 ~]# cd $ORACLE_HOME/dbs
[oracle@s1dmp04 ~/dbs]# ls -l
total 6540
lrwxrwxrwx 1 oracle oinstall 39 Jun 28 2004 initdmp.ora -> /opt/oracle/admin/dmp/pfile/initdmp.ora
lrwxrwxrwx 1 oracle oinstall 39 Jun 3 2004 initdmp.ora.old -> /opt/oracle/admin/dmp/pfile/initdmp.ora
-rw-r--r-- 1 oracle oinstall 12920 Mar 9 2002 initdw.ora
-rw-r--r-- 1 oracle oinstall 8385 Mar 9 2002 init.ora
-rw-rw---- 1 oracle oinstall 24 Apr 11 08:54 lkDMP
-rwSr----- 1 oracle oinstall 1536 Jan 14 2008 orapwdmp
-rw-r----- 1 oracle oinstall 6643712 Apr 18 12:05 snapcf_dmp.f
-rw-r----- 1 oracle oinstall 3584 Apr 19 09:53 spfiledmp.ora
[oracle@s1dmp04 ~/dbs]# rm lk*
rm: remove `lkDMP'? y
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying controlfile, check alert log for more info
再檢查Oracle共享記憶體段和後臺程式
[root@s1dmp04 ~]# ps -ef | grep ora_
oracle 3271 1 0 2008 ? 00:02:29 ora_lgwr_dmp
oracle 3273 1 0 2008 ? 00:08:59 ora_ckpt_dmp
oracle 5405 5097 0 13:11 pts/2 00:00:00 grep ora_
[root@s1dmp04 ~]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x01055a52 32769 root 764 1024 0
0x01055a56 65538 root 764 44 2
0x01055a57 98307 root 764 25 2
0x01055a58 131076 root 764 25 2
0x01055a4e 163845 root 764 532 1
0x01055a55 196614 root 764 3780 1
0x01055a59 229383 root 764 4 1
0x01055a5d 294921 root 764 100 1
0x01055a60 327690 root 764 480 1
0x00000000 458764 oracle 640 801112064 15 dest
------ Semaphore Arrays --------
key semid owner perms nsems status
------ Message Queues --------
key msqid owner perms used-bytes messages
[root@s1dmp04 root]# ipcrm shm 458764
resource(s) deleted
[root@s1dmp04 root]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000064 0 root 600 1712 2379
0x01055a52 32769 root 764 1024 0
0x01055a56 65538 root 764 44 2
0x01055a57 98307 root 764 25 2
0x01055a58 131076 root 764 25 2
0x01055a4e 163845 root 764 532 1
0x01055a55 196614 root 764 3780 1
0x01055a59 229383 root 764 4 1
0x7a058eeb 262152 root 660 4 1
0x01055a5d 294921 root 764 100 1
0x01055a60 327690 root 764 480 1
0x7a051606 360459 root 660 8 1
0x00000000 458764 oracle 640 801112064 15 dest
------ Semaphore Arrays --------
key semid owner perms nsems status
0x00000000 65537 root 600 1
0x00000000 360450 root 600 1
0x00000000 425987 root 600 1
0x00000000 491525 root 600 1
0x00000000 524294 root 600 1
0x00000000 622599 root 600 1
------ Message Queues --------
key msqid owner perms used-bytes messages
0x6d0559a1 0 root 660 0 0
今天一早很多資料庫收到I/O錯誤報警,差不多都是以下格式,都是ORA-27072錯誤
ORA-00345: redo log write error block 72123 count 59
ORA-00312: online log 1 thread 1: '/mnt/dmp/backup2/redo1b.log'
ORA-27072: skgfdisp: I/O error
第一反應是儲存出現問題,立即讓負責這個儲存的工程師檢查,檢查下來確定是儲存的一個模組出現了問題
儲存怎麼解決問題的,這裡就不詳說。我想說的是儲存問題解決以後,資料庫重啟時出現的問題以及怎樣解決它,雖然最後無奈的使用重啟伺服器的方法來解決的,但以下方法也是一種解決問題的思路
在儲存問題解決以後,I/O已經不出現報錯了,這時候資料庫已經不能使用shutdown immediate的方式關閉了,只能使用abort的方式關閉
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 797513464 bytes
Fixed Size 452344 bytes
Variable Size 251658240 bytes
Database Buffers 536870912 bytes
Redo Buffers 8531968 bytes
SQL> alter database mount
2 ;
alter database mount
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode
我從網上查到出現ORA-01102錯誤一般是由以下原因引起的
Oracle的共享記憶體段或訊號量沒有被釋放;
Oracle的後臺程式沒有被關閉
用於鎖記憶體的檔案lk
刪除lkDMP檔案
[oracle@s1dmp04 ~]# cd $ORACLE_HOME/dbs
[oracle@s1dmp04 ~/dbs]# ls -l
total 6540
lrwxrwxrwx 1 oracle oinstall 39 Jun 28 2004 initdmp.ora -> /opt/oracle/admin/dmp/pfile/initdmp.ora
lrwxrwxrwx 1 oracle oinstall 39 Jun 3 2004 initdmp.ora.old -> /opt/oracle/admin/dmp/pfile/initdmp.ora
-rw-r--r-- 1 oracle oinstall 12920 Mar 9 2002 initdw.ora
-rw-r--r-- 1 oracle oinstall 8385 Mar 9 2002 init.ora
-rw-rw---- 1 oracle oinstall 24 Apr 11 08:54 lkDMP
-rwSr----- 1 oracle oinstall 1536 Jan 14 2008 orapwdmp
-rw-r----- 1 oracle oinstall 6643712 Apr 18 12:05 snapcf_dmp.f
-rw-r----- 1 oracle oinstall 3584 Apr 19 09:53 spfiledmp.ora
[oracle@s1dmp04 ~/dbs]# rm lk*
rm: remove `lkDMP'? y
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying controlfile, check alert log for more info
再檢查Oracle共享記憶體段和後臺程式
[root@s1dmp04 ~]# ps -ef | grep ora_
oracle 3271 1 0 2008 ? 00:02:29 ora_lgwr_dmp
oracle 3273 1 0 2008 ? 00:08:59 ora_ckpt_dmp
oracle 5405 5097 0 13:11 pts/2 00:00:00 grep ora_
[root@s1dmp04 ~]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x01055a52 32769 root 764 1024 0
0x01055a56 65538 root 764 44 2
0x01055a57 98307 root 764 25 2
0x01055a58 131076 root 764 25 2
0x01055a4e 163845 root 764 532 1
0x01055a55 196614 root 764 3780 1
0x01055a59 229383 root 764 4 1
0x01055a5d 294921 root 764 100 1
0x01055a60 327690 root 764 480 1
0x00000000 458764 oracle 640 801112064 15 dest
------ Semaphore Arrays --------
key semid owner perms nsems status
------ Message Queues --------
key msqid owner perms used-bytes messages
[root@s1dmp04 root]# ipcrm shm 458764
resource(s) deleted
[root@s1dmp04 root]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000064 0 root 600 1712 2379
0x01055a52 32769 root 764 1024 0
0x01055a56 65538 root 764 44 2
0x01055a57 98307 root 764 25 2
0x01055a58 131076 root 764 25 2
0x01055a4e 163845 root 764 532 1
0x01055a55 196614 root 764 3780 1
0x01055a59 229383 root 764 4 1
0x7a058eeb 262152 root 660 4 1
0x01055a5d 294921 root 764 100 1
0x01055a60 327690 root 764 480 1
0x7a051606 360459 root 660 8 1
0x00000000 458764 oracle 640 801112064 15 dest
------ Semaphore Arrays --------
key semid owner perms nsems status
0x00000000 65537 root 600 1
0x00000000 360450 root 600 1
0x00000000 425987 root 600 1
0x00000000 491525 root 600 1
0x00000000 524294 root 600 1
0x00000000 622599 root 600 1
------ Message Queues --------
key msqid owner perms used-bytes messages
0x6d0559a1 0 root 660 0 0
[root@s1dmp04 root]# ps -ef | grep ora_
oracle 3271 1 0 2008 ? 00:02:29 ora_lgwr_dmp
oracle 3273 1 0 2008 ? 00:08:59 ora_ckpt_dmp
root 5605 5552 0 13:13 pts/2 00:00:00 grep ora_
[root@s1dmp04 root]# kill -9 3271
[root@s1dmp04 root]# kill -9 3273
[root@s1dmp04 root]# ps -ef | grep ora_
oracle 3271 1 0 2008 ? 00:02:29 ora_lgwr_dmp
oracle 3273 1 0 2008 ? 00:08:59 ora_ckpt_dmp
root 5617 5552 0 13:13 pts/2 00:00:00 grep ora_
從上面的操作可以看出,Oracle的共享記憶體段不能被清除,後臺程式也不能被殺掉,在這種情況下,我只有重啟這臺伺服器來解決問題
重啟資料庫後,一切正常
[root@s1dmp04 root]# ps -ef | grep ora_
oracle 3271 1 0 2008 ? 00:02:29 ora_lgwr_dmp
oracle 3273 1 0 2008 ? 00:08:59 ora_ckpt_dmp
root 5605 5552 0 13:13 pts/2 00:00:00 grep ora_
[root@s1dmp04 root]# kill -9 3271
[root@s1dmp04 root]# kill -9 3273
[root@s1dmp04 root]# ps -ef | grep ora_
oracle 3271 1 0 2008 ? 00:02:29 ora_lgwr_dmp
oracle 3273 1 0 2008 ? 00:08:59 ora_ckpt_dmp
root 5617 5552 0 13:13 pts/2 00:00:00 grep ora_
從上面的操作可以看出,Oracle的共享記憶體段不能被清除,後臺程式也不能被殺掉,在這種情況下,我只有重啟這臺伺服器來解決問題
重啟資料庫後,一切正常
原地址:http://www.itpub.net/viewthread.php?tid=1153750&pid=13390240&page=1&extra=#pid13390240
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8334342/viewspace-590963/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記一次Windows下啟動錯誤故障Windows
- 儲存故障時的ORA-7445錯誤
- windows 下 asm儲存啟動故障WindowsASM
- 啟動資料庫的其中一個錯誤資料庫
- Oracle Restart啟動資料庫例項故障一例( Oracle ASM儲存Spfile解析)OracleREST資料庫ASM
- 記錄一次資料儲存出錯
- 【故障恢復】因spfile修改錯誤導致資料庫無法啟動的恢復方法資料庫
- 恢復MySQL資料庫建立儲存過程是遇到錯誤MySql資料庫儲存過程
- 儲存多路徑故障導致資料庫死掉案例資料庫
- dbua後資料庫無法啟動錯誤的解決資料庫
- undo壞塊引起資料庫無法啟動資料庫
- OpenTSDB 安裝 啟動 資料儲存
- 誤刪除儲存SqlServer資料庫資料恢復SQLServer資料庫資料恢復
- 資料庫啟動出現ORA-27037錯誤資料庫
- 恢復資料庫引數錯誤無法啟動資料庫
- 啟動資料庫出現ORA-9925錯誤資料庫
- 一次資料檔案映象丟失引起的故障解決
- 資料庫啟動時遇到ORA-01578錯誤資料庫
- 啟動資料庫出現ORA-27123錯誤資料庫
- 資料庫啟動出現ORA-27102錯誤資料庫
- 記一次資料庫索引引起的當機。。。資料庫索引
- shmall引數設定不當引起資料庫啟動時報out of memory報錯資料庫
- 【故障公告】1個儲存過程拖垮整個資料庫儲存過程資料庫
- 【儲存資料恢復】EqualLogic PS系列儲存磁碟故障的資料恢復案例資料恢復
- oracle資料庫歸檔日誌空間滿引起的錯誤處理Oracle資料庫
- RAC資料庫只能啟動一個節點的故障資料庫
- AIX系統啟動資料庫出現ORA-27504錯誤AI資料庫
- 資料庫啟動出現ORA-30036錯誤資料庫
- 列式儲存資料庫資料庫
- 啟動oracle資料庫的時候報ORA-00205錯誤:Oracle資料庫
- 嘗試無引數啟動資料庫時報錯ORA-304錯誤資料庫
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 使用自動儲存管理 (ASM)建立資料庫ASM資料庫
- 檔名與庫名相似引起的錯誤——randomrandom
- 【儲存資料恢復】NetApp儲存誤刪資料夾的資料恢復案例資料恢復APP
- 【故障處理】11g資料庫在啟動之後報ORA-12709字符集錯誤資料庫
- 【資料庫】資料庫儲存過程(一)資料庫儲存過程
- 【儲存】flashcache 使用遇見的錯誤