Oracle 無備份情況下undo檔案損壞處理
SQL> select ename,sal from scott.emp where deptno=10;
ENAME SAL
---------- ----------
CLARK 2450
KING 5000
MILLER 1300
SQL> show undo
SP2-0158: unknown SHOW option "undo"
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS2
SQL> create undo tablespace undotbs3 datafile '/u01/oracle/oradata/ora10g/undotbs03.dbf' size 20M;
Tablespace created.
SQL> alter system set undo_tablespace=undotbs3;
System altered.
開新會話 產生事務
SQL> select XIDUSN,XIDSLOT,XIDSQN,name from v$transaction;
XIDUSN XIDSLOT XIDSQN NAME
---------- ---------- ---------- --------------------------------------------------
9 0 300
SQL> select segment_name,tablespace_name,file_id from dba_rollback_segs where segment_id=9;
SEGMENT_NAME TABLESPACE_NAME FILE_ID
------------------------- --------------- ----------
_SYSSMU9$ UNDOTBS3 2
SQL> ! rm -rf /u01/oracle/oradata/ora10g/undotbs03.dbf
SQL> shut abort 也可以不停庫 使用alter database datafile 2 offline;來觸發資料庫認識到資料檔案損壞
再使用alter database create datafile 2;這樣不用停庫 事務最後能保持住.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 83887696 bytes
Database Buffers 197132288 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 2 - see DBWR trace file
ORA-01110: data file 2: '/u01/oracle/oradata/ora10g/undotbs03.dbf'
SQL> select FILE#,checkpoint_change#,recover, fuzzy from v$datafile_header;
FILE# CHECKPOINT_CHANGE# REC FUZ
---------- ------------------ --- ---
1 513395 NO YES
2 0
3 513395 NO YES
4 513395 NO YES
5 513395 NO YES
6 513395 NO YES
6 rows selected.
SQL> select FILE#,status,CHECKPOINT_CHANGE#,name from v$datafile;
FILE# STATUS CHECKPOINT_CHANGE# NAME
---------- ---------- ------------------ --------------------------------------------------
1 SYSTEM 513395 /u01/oracle/oradata/ora10g/system01.dbf
2 ONLINE 513572 /u01/oracle/oradata/ora10g/undotbs03.dbf
3 ONLINE 513395 /u01/oracle/oradata/ora10g/sysaux01.dbf
4 ONLINE 513395 /u01/oracle/oradata/ora10g/users01.dbf
5 ONLINE 513395 /u01/oracle/oradata/ora10g/mytest01.dbf
6 ONLINE 513395 /u01/oracle/oradata/ora10g/undotbs02.dbf
6 rows selected.
SQL> set line 110
SQL> select status,CHECKPOINT_CHANGE#,name,creation_change# from v$datafile;
STATUS CHECKPOINT_CHANGE# NAME CREATION_CHANGE#
---------- ------------------ -------------------------------------------------- ----------------
SYSTEM 513395 /u01/oracle/oradata/ora10g/system01.dbf 9
ONLINE 513572 /u01/oracle/oradata/ora10g/undotbs03.dbf 513571
ONLINE 513395 /u01/oracle/oradata/ora10g/sysaux01.dbf 6609
ONLINE 513395 /u01/oracle/oradata/ora10g/users01.dbf 10566
ONLINE 513395 /u01/oracle/oradata/ora10g/mytest01.dbf 459576
ONLINE 513395 /u01/oracle/oradata/ora10g/undotbs02.dbf 492642
6 rows selected.
依據控制檔案的資訊 重建這個檔案
SQL> alter database create datafile '/u01/oracle/oradata/ora10g/undotbs03.dbf';
Database altered.
SQL> select FILE#,checkpoint_change#,recover, fuzzy from v$datafile_header;
FILE# CHECKPOINT_CHANGE# REC FUZ
---------- ------------------ --- ---
1 513395 NO YES
2 513571 YES NO
3 513395 NO YES
4 513395 NO YES
5 513395 NO YES
6 513395 NO YES
6 rows selected.
select * from v$recover_file;file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- -------------------- ---------- ---------
2 ONLINE ONLINE 513571 25-FEB-11
SQL>
需要 5號日誌進行恢復
SQL> select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh;
FILENUMBER STATUS SCN SEQUENCE
---------- -------------- ---------------- ----------
1 8196 513395 5
2 0 513571 5
3 4 513395 5
4 4 513395 5
5 4 513395 5
6 4 513395 5
6 rows selected.
SQL> recover datafile 2;
Media recovery complete.
SQL> alter database open;
Database altered.
SQL> select FILE#,checkpoint_change#,recover, fuzzy from v$datafile_header;
FILE# CHECKPOINT_CHANGE# REC FUZ
---------- ------------------ --- ---
1 533737 NO YES
2 533737 NO YES
3 533737 NO YES
4 533737 NO YES
5 533737 NO YES
6 533737 NO YES
6 rows selected.
SQL> 資料庫shut abort過 事務被回退
SQL> select ename,sal from scott.emp where deptno=10;
ENAME SAL
---------- ----------
CLARK 2450
KING 5000
MILLER 1300
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29523859/viewspace-2681885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle-無備份情況下,如何手動恢復控制檔案Oracle
- 控制檔案損壞處理
- 一次ORACLE資料庫undo壞塊處理Oracle資料庫
- Oracle 控制檔案損壞解決方案Oracle
- 故障分析 | MySQL 備份檔案靜默損壞一例分析MySql
- Oracle壞塊處理Oracle
- Mac應用程式無法開啟提示不明開發者或檔案損壞的處理方法Mac
- xcodebuild -workspace 情況下,部分坑的處理XCodeUI
- oracle redo各種狀態(inactive、active、current)損壞的處理方式Oracle Redo
- oracle 還原 .dmp 格式備份檔案Oracle
- oracle uncatalog資料庫備份檔案Oracle資料庫
- RAC磁碟頭損壞問題處理
- docker容器無法啟動的情況下,如果修改配置檔案Docker
- maven編專案編譯後在target下的zip檔案損壞無法開啟Maven編譯
- 【RMAN】Oracle中如何備份控制檔案?備份控制檔案的方式有哪幾種?Oracle
- 檢查備份情況的指令碼指令碼
- oracle中undo表空間丟失處理方法Oracle
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- oracle 控制檔案及引數檔案何時自動備份Oracle
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- 檔案或目錄損壞且無法讀取怎麼辦?
- 禪道備份處理
- RMAN備份恢復典型案例——資料檔案存在壞快
- 【BLOCK】Oracle壞塊處理命令參考BloCOracle
- freemarker生成複雜樣式圖片並無檔案損壞的excelExcel
- system資料檔案頭損壞修復
- linux檔案系統損壞如何修復Linux
- oracle 如何不備份已經備份的歸檔Oracle
- sql檔案備份SQL
- u盤檔案損壞怎麼恢復資料 u盤損壞無法讀取怎麼恢復資料
- Mercury Research:2021年 x86處理器市場份額情況
- Serv-u 備份處理
- 雙擊時它說“檔案或目錄損壞且無法讀取"
- oracle dg 歸檔日誌恢復情況Oracle
- [重慶思莊每日技術分享]-在自動UNDO管理情況下,如何手工增加undo段
- win10不管解壓什麼都損壞怎麼辦 win10檔案損壞無法解壓解決方法Win10
- Networker備份windows檔案Windows