Rereading datafile 201 header failed with ORA-01203

東北胖子發表於2017-04-01

一、簡要介紹

    Oracle 版本 11.2.0.3,Linux環境,2個節點的Oracle  DataGuard環境,StandBy節點以Read Only模式開啟,已經執行許多天沒有出現問題,今天在主庫為某個表空間增加了一個資料檔案後,在日誌檔案中出現如下資訊提示:

  1. Read of datafile '/data/oracle_data/ORCL/temp01.dbf' (fno 201) header failed with ORA-01203
  2. Rereading datafile 201 header failed with ORA-01203
  3. Errors in file /u01/app/oracle/diag/rdbms/phis_ty_dg2/ORCL/trace/ORCL_dbw0_18157.trc:
  4. ORA-01186: file 201 failed verification tests
  5. ORA-01122: database file 201 failed verification check
  6. ORA-01110: data file 201: '/data/oracle_data/ORCL/temp01.dbf'
  7. ORA-01203: wrong incarnation of this file - wrong creation SCN
  8. File 201 not verified due to error ORA-01122
從資訊中可以看出來臨時表空間的資料檔案出現問題了,但是這個問題並沒有影響StandBy節點新增資料檔案 ,於是登入資料庫執行SQL 是出錯的

  1. SYS@ORCL> select * from dba_temp_files;
  2. select * from dba_temp_files
  3.               *
  4. ERROR at line 1:
  5. ORA-01187: cannot read from file because it failed verification tests
  6. ORA-01110: data file 201: '/data/oracle_data/ORCL/temp01.dbf'
這讓我確認了是資料檔案有問題了,需要重新建立。但是v$tempfile是可以查詢的

二、具體操作步驟

停止了StandBy節點與主庫的同步,將資料庫重新啟動到Mount階段,本打算重新建立新的臨時表空間的,但是最發現在Mount階段是無法建立表空間的
然後我在Mount階段刪除了有問題的資料檔案,然後想再新增一個新的資料檔案,但是還是不能新增資料檔案,最後我發現在ReadOnly模式下是可以新增臨時表空間資料檔案的。具體的操作如下:

1、在Mount階段刪除了有問題的資料檔案,在ReadOnly模式下也應該可以刪除
  1. SYS@ORCL> alter database tempfile '/data/oracle_data/ORCL/temp01.dbf' drop;

  2. Database altered.

2、將資料庫切換至ReadOnly模式

  1. SYS@ORCL> alter database open read only;

  2. Database altered.

3、為臨時表空間新增新的資料檔案
  1. YS@ORCL> alter tablespace temp add tempfile '/data/oracle_data/ORCL/temp01.dbf' size 30M reuse;
  2.                                                                                                
  3. ablespace altered.

4、確認臨時表空間資料檔案

  1. SYS@ORCL> select * from dba_temp_files;
  2.                                                                                 
  3. FILE_NAME
  4. --------------------------------------------------------------------------------
  5.    FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
  6. ---------- ------------------------------ ---------- ---------- -------
  7. RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
  8. ------------ --- ---------- ---------- ------------ ---------- -----------
  9. /data/oracle_data/ORCL/temp01.dbf
  10.          1 TEMP 31457280 3840 ONLINE
  11.            1 NO 0 0 0 30408704 3712
  12.                                                                                 
  13. /data/oracle_data/ORCL/temp02.dbf
  14.          2 TEMP 5368709120 655360 ONLINE
  15.            2 YES 3.4360E+10 4194302 1 5367660544 655232

5、重新啟動資料同步

  1. alter database recover managed standby database using current logfile disconnect from session;




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2317695/viewspace-2136485/,如需轉載,請註明出處,否則將追究法律責任。

相關文章