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>
Oracle 无备份情况下undo文件损坏处理
来源:这里教程网
时间:2026-03-03 15:20:20
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 2套RAC环境修改scanip后客户端连接异常
2套RAC环境修改scanip后客户端连接异常
26-03-03 - 外键上有无索引的影响
外键上有无索引的影响
26-03-03 - Oracle 12c数据库安装
Oracle 12c数据库安装
26-03-03 - 28_bbed实战(1)_delete操作恢复
28_bbed实战(1)_delete操作恢复
26-03-03 - ORA-07445: 出现异常错误: 核心转储 [kupfuDecompress()+2279]
- ORA-00119: invalid specification for system parameter LOCAL_LISTENER
- 小程序客服消息接入微信教程
小程序客服消息接入微信教程
26-03-03 - 18C RAC DBCA建库找不到ASM磁盘组
18C RAC DBCA建库找不到ASM磁盘组
26-03-03 - 19c(19.3) 单机数据库安装
19c(19.3) 单机数据库安装
26-03-03 - 公益直播|DBA职业发展之路
公益直播|DBA职业发展之路
26-03-03
