由drop datafile導致的oracle bug
今天碰到了一個dataguard在10gR2的bug,不管怎麼樣確實是在特定的時間做了特定的操作結果碰到了特定的問題。
這個問題是在10gR2的版本10.2.0.4.0的一個庫中出現的,在做巡檢的時候發現表空間使用率已經很高了,就準備加一些資料檔案把這個問題給修復了,按理說這也是一個常規操作,沒有什麼可圈圈點點的地方。
但是新增完資料檔案之後,過了一會,就收到報警說備庫出了點問題,自己還納悶到底是什麼原因導致的,帶著疑問使用dgmgrl來檢視了一下。
DGMGRL> show configuration;
Configuration
Name: test
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
test - Primary database
stest4 - Physical standby database
stest2 - Physical standby database
Current status for "test":
Warning: ORA-16607: one or more databases have failed
這個問題是在10gR2的版本10.2.0.4.0的一個庫中出現的,在做巡檢的時候發現表空間使用率已經很高了,就準備加一些資料檔案把這個問題給修復了,按理說這也是一個常規操作,沒有什麼可圈圈點點的地方。
但是新增完資料檔案之後,過了一會,就收到報警說備庫出了點問題,自己還納悶到底是什麼原因導致的,帶著疑問使用dgmgrl來檢視了一下。
DGMGRL> show configuration;
Configuration
Name: test
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
test - Primary database
stest4 - Physical standby database
stest2 - Physical standby database
Current status for "test":
Warning: ORA-16607: one or more databases have failed
透過這個,確實發現備庫出了些問題,趕快連線到備庫中,結果檢視資料日誌就發現原來MRP程式給停掉了。
Fri Sep 11 17:58:53 2015
Errors in file /U01/app/oracle/admin/test/bdump/test_mrp0_10953.trc:
ORA-00600: internal error code, arguments: [3689], [21], [], [], [], [], [], []
Errors with log /U01/app/oracle/flash_recovery_area/STEST4/archivelog/2015_09_11/o1_mf_1_7414_bz598mqc_.arc
MRP0: Background Media Recovery terminated with error 600
Fri Sep 11 17:58:55 2015
Errors in file /U01/app/oracle/admin/test/bdump/test_mrp0_10953.trc:
ORA-00600: internal error code, arguments: [3689], [21], [], [], [], [], [], []
Fri Sep 11 17:59:04 2015
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Fri Sep 11 17:59:04 2015
Fri Sep 11 17:58:53 2015
Errors in file /U01/app/oracle/admin/test/bdump/test_mrp0_10953.trc:
ORA-00600: internal error code, arguments: [3689], [21], [], [], [], [], [], []
Errors with log /U01/app/oracle/flash_recovery_area/STEST4/archivelog/2015_09_11/o1_mf_1_7414_bz598mqc_.arc
MRP0: Background Media Recovery terminated with error 600
Fri Sep 11 17:58:55 2015
Errors in file /U01/app/oracle/admin/test/bdump/test_mrp0_10953.trc:
ORA-00600: internal error code, arguments: [3689], [21], [], [], [], [], [], []
Fri Sep 11 17:59:04 2015
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Fri Sep 11 17:59:04 2015
看到這個錯誤,發現問題似乎還是有些奇怪,因為關聯的ora錯誤是ora-600
帶著這個疑問,首先想到的就是自己之前碰到過MRP無法啟動的問題,dataguard中MRP無法啟動的問題分析和解決
感興趣可以參考這個連結http://blog.itpub.net/23718752/viewspace-1715472/
結果自己按照當時的問題思路也進行相似的分析,結果還真發現了問題。
使用下面的語句檢視資料檔案。
在備庫檢視:
select file#,df.name,df.ts#,ts.name,df.RFILE# from v$datafile df,v$tablespace ts
where df.ts#=ts.ts#;
FILE# NAME TS# NAME
---------- ------------------------------------------------------------ ---------- --------------------
20 /U01/app/oracle/oradata/test/test_new_data04.dbf 9 TEST_NEW_DATA
21 /U01/app/oracle/oradata/test/test_new_index04.dbf 9 TEST_NEW_DATA
主庫檢視
當然在重建備庫這個繁重的工作之外我還想做一些嘗試。
既然資料字典中不同步,對於drop的操作不支援,我就直接使用alter database datafile ‘xxxxxx' offline drop來搞定這個問題,上次的MRP的問題在11g中就可以這麼解決。
SQL> alter database datafile '/U01/app/oracle/oradata/test/test_new_index04.dbf' offline drop;
Database altered.
---------- ------------------------------------------------------------ ---------- --------------------
20 /U01/app/oracle/oradata/test/test_new_data04.dbf 9 TEST_NEW_DATA
21 /U01/app/oracle/oradata/test/test_new_index04.dbf 9 TEST_NEW_DATA
再次嘗試recover managed standby database disconnect from session發現問題依舊,還是ora-600的錯誤。
這個時候想把database 啟動到read only時也出問題。
SQL> alter database open read only;
alter database open read only
*
ERROR at line 1:
ORA-16004: backup database requires recovery
ORA-01196: file 1 is inconsistent due to a failed media recovery session
ORA-01110: data file 1: '/U01/app/oracle/oradata/test/system01.dbf'
帶著這個疑問,首先想到的就是自己之前碰到過MRP無法啟動的問題,dataguard中MRP無法啟動的問題分析和解決
感興趣可以參考這個連結http://blog.itpub.net/23718752/viewspace-1715472/
結果自己按照當時的問題思路也進行相似的分析,結果還真發現了問題。
使用下面的語句檢視資料檔案。
在備庫檢視:
select file#,df.name,df.ts#,ts.name,df.RFILE# from v$datafile df,v$tablespace ts
where df.ts#=ts.ts#;
FILE# NAME TS# NAME
---------- ------------------------------------------------------------ ---------- --------------------
20 /U01/app/oracle/oradata/test/test_new_data04.dbf 9 TEST_NEW_DATA
21 /U01/app/oracle/oradata/test/test_new_index04.dbf 9 TEST_NEW_DATA
主庫檢視
FILE# NAME TS# NAME
---------- ------------------------------------------------------------ ---------- --------------------
20 /U01/app/oracle/oradata/test/test_new_data04.dbf 9 TEST_NEW_DATA
21 /U01/app/oracle/oradata/test/test_new_index04.dbf 10 TEST_NEW_INDEX
透過這個可以發現表空間的資料檔案在兩個庫中不一致。
這個時候聯絡起來ora600其實在錯誤裡面已經暗示出了21的含義
就使用alter tablespace test_new_data drop datafile 'xxxxx'的方式刪除了,然後又建立了一個新的資料檔案test_new_data04.dbf
這麼一個操作也沒有什麼非議之處,但是在10gR2 10.2.0.4.0裡就是不行,因為有一個bug
Bug 5623467 - Corrupt redo from ALTER TABLESPACE DROP DATAFILE (文件 ID 5623467.8)
這個bug,oracle也沒有給出其它可行的意見,除了升級打補丁外,建議就是不要使用drop datafile的命令,但是我已經執行了,你說怎麼辦,只能重建備庫了。---------- ------------------------------------------------------------ ---------- --------------------
20 /U01/app/oracle/oradata/test/test_new_data04.dbf 9 TEST_NEW_DATA
21 /U01/app/oracle/oradata/test/test_new_index04.dbf 10 TEST_NEW_INDEX
透過這個可以發現表空間的資料檔案在兩個庫中不一致。
這個時候聯絡起來ora600其實在錯誤裡面已經暗示出了21的含義
ORA-00600: internal error code, arguments: [3689], [21], [], [], [], [], [], []
這個時候自己就恍然大悟了,自己在給表空間TEST_NEW_DATA新增資料檔案的時候,不小心新增成了test_new_index04.dbf,結果建立好之後發現了這個問題,就使用alter tablespace test_new_data drop datafile 'xxxxx'的方式刪除了,然後又建立了一個新的資料檔案test_new_data04.dbf
這麼一個操作也沒有什麼非議之處,但是在10gR2 10.2.0.4.0裡就是不行,因為有一個bug
Bug 5623467 - Corrupt redo from ALTER TABLESPACE DROP DATAFILE (文件 ID 5623467.8)
當然在重建備庫這個繁重的工作之外我還想做一些嘗試。
既然資料字典中不同步,對於drop的操作不支援,我就直接使用alter database datafile ‘xxxxxx' offline drop來搞定這個問題,上次的MRP的問題在11g中就可以這麼解決。
SQL> alter database datafile '/U01/app/oracle/oradata/test/test_new_index04.dbf' offline drop;
Database altered.
命令執行成功了,但是檢視datafile還是沒有發生變化。
FILE# NAME TS# NAME ---------- ------------------------------------------------------------ ---------- --------------------
20 /U01/app/oracle/oradata/test/test_new_data04.dbf 9 TEST_NEW_DATA
21 /U01/app/oracle/oradata/test/test_new_index04.dbf 9 TEST_NEW_DATA
再次嘗試recover managed standby database disconnect from session發現問題依舊,還是ora-600的錯誤。
這個時候想把database 啟動到read only時也出問題。
SQL> alter database open read only;
alter database open read only
*
ERROR at line 1:
ORA-16004: backup database requires recovery
ORA-01196: file 1 is inconsistent due to a failed media recovery session
ORA-01110: data file 1: '/U01/app/oracle/oradata/test/system01.dbf'
所以沒有辦法了,重建備庫了,真是讓人無奈的選擇。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1797653/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle刪除datafile導致資料庫打不開Oracle資料庫
- oracle bug 6825287導致DX鎖等待Oracle
- 一起由於Oracle 8.1.6 BUG而導致的ORA-03113錯誤Oracle
- 體驗Oracle 10gR2的drop empty datafileOracle 10g
- alter database datafile offline drop 與 alter tablespace drop datafile 區別Database
- AIX下由於nfs故障導致oracle hangAINFSOracle
- oracle 10g R2 drop empty datafileOracle 10g
- alter database drop datafile 與 drop tablespace file 的區別Database
- java由於越界導致的報錯Java
- Oracle目錄由於TFA觸發bug導致jdb檔案未自動清理引起空間不足Oracle
- alter database datafile 4 offline drop;Database
- alter database datafile .... offline drop的問題Database
- Oracle 11.2.0.3 Database for AIX bug導致ORA-04030的報錯OracleDatabaseAI
- 由hugepage設定導致的資料庫事故資料庫
- 由Nginx的DNS快取導致的訪問404NginxDNS快取
- Alter system suspend/resume 導致的bug和特性
- 【Datafile】Oracle單個datafile大小的限制Oracle
- oracle BUG 5890312導致表空間瞬間暴漲Oracle
- 由Oracle Bug引起的AWR Snapshot收集故障Oracle
- 由於無法分配ip而導致的FailedCreatePodSandBoxAI
- 由於gcc軟體包沒有安裝導致的Oracle安裝失敗GCOracle
- Oracle datafileOracle
- Containerd 的 Bug 導致容器被重建!如何避免?AI
- MySQL Bug導致異常當機的分析流程MySql
- Oracle 12.2 BUG :分割槽維護導致的 ORA-600 KKPOFPCD3Oracle
- 當心ORACLE 12.2 RAC新特性引入的BUG導致ORA-4031Oracle
- Oracle不正規操作導致drop表空間drop使用者報錯ora38301(記錄,未解決)Oracle
- [Oracle]由於初始化引數檔案修改錯誤導致oracle無法startupOracle
- 年年出妖事,一例由JSON解析導致的"薛定諤BUG"排查過程記錄JSON
- alter database datafile offline drop相關問題Database
- 記php-fpm重啟導致的一個bugPHP
- Laravel 關聯模型由於名稱一致性導致的問題Laravel模型
- 由一條sql語句導致的系統IO問題SQL
- 優化由直方圖資訊導致的sql效能問題優化直方圖SQL
- 【OCR】Oracle CRS 10.2.0.1版本Bug導致映象OCR時報PROT-22錯誤Oracle
- MySQL8.0的一個bug導致複製延時MySql
- Android 多個Fragment巢狀導致的三大BUGAndroidFragment巢狀
- 解決辦法:由於oracle版本不同導致匯入資料時失敗Oracle