Oracle误删Undo后恢复

转载 2016年05月31日 11:42:01
undo 表空间丢失之恢复(ORA-01548)
误删undo表空间,或者undo表空间无限增大最后需要删除 undo表空间,解决方法


1. $ startup
  ORACLE 例程已经启动。
   Total System Global Area   264241152 bytes
   Fixed Size                1296208 bytes
   Variable Size              92276912 bytes
   Database Buffers       163577856 bytes
   Redo Buffers             7090176 bytes
  数据库装载完毕。
   数据库已经打开。
  
   已用时间:   00: 00: 00.04
  
2. $ shutdown abort
   ORACLE 例程已经关闭。


3. 删除D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHE\UNDOTBS01.DBF
4. $ startup
   ORACLE 例程已经启动。
   Total System Global Area   264241152 bytes
   Fixed Size                1296208 bytes
   Variable Size              92276912 bytes
   Database Buffers       163577856 bytes
   Redo Buffers             7090176 bytes
   数据库装载完毕。
   ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件
   ORA-01110: 数据文件 2: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHE\UNDOTBS01.DBF'


5. $ alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHE\UNDOTBS01.DBF' offline 


drop;
   数据库已更改。
   已用时间:   00: 00: 00.07
  
   $ alter database open;
   数据库已更改。


   已用时间:   00: 00: 08.12
6. $ select FILE_NAME, BYTES from dba_data_files;                                           


               
   FILE_NAME                                                       BYTES                   


            
   ------------------------------------------------------------ ----------                   


            
   D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHE\USERS01.DBF           106168320                   


            
   D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHE\SYSAUX01.DBF       262144000                   


            
   D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHE\UNDOTBS01.DBF                                     


            
   D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHE\SYSTEM01.DBF       681574400                   


            


   已用时间:   00: 00: 00.12
7. $ create undo tablespace undotbs02 datafile 'D:\ORACLE\PRODUCT\10.2.0


\ORADATA\HUICHE\UNDOTBS02.DBF' size 25m;
   表空间已创建。  
   已用时间:   00: 00: 01.32
8. $ show parameter undo
   NAME                               TYPE                VALUE
   ------------------------------------ ---------------------- ------------------------------
   undo_management                   string                 AUTO
   undo_retention                       integer             900
   undo_tablespace                   string                 UNDOTBS1
9. $ alter system set undo_tablespace=undotbs02;
   系统已更改。
   已用时间:   00: 00: 00.10


10. $ select segment_name,status from dba_rollback_segs;
   SEGMENT_NAME                                              STATUS
   ------------------------------------------------------------ -----------------------------


-------------------------------
   SYSTEM                                                    ONLINE
   _SYSSMU10$                                                 NEEDS RECOVERY
   _SYSSMU9$                                                 NEEDS RECOVERY
   _SYSSMU8$                                                 NEEDS RECOVERY
   _SYSSMU7$                                                 NEEDS RECOVERY
   _SYSSMU6$                                                 NEEDS RECOVERY
   _SYSSMU5$                                                 NEEDS RECOVERY
   _SYSSMU4$                                                 NEEDS RECOVERY
   _SYSSMU3$                                                 NEEDS RECOVERY
   _SYSSMU2$                                                 NEEDS RECOVERY
   _SYSSMU1$                                                 NEEDS RECOVERY
   _SYSSMU20$                                                 ONLINE
   _SYSSMU19$                                                 ONLINE
   _SYSSMU18$                                                 ONLINE
   _SYSSMU17$                                                 ONLINE
   _SYSSMU16$                                                 ONLINE
   _SYSSMU15$                                                 ONLINE
   _SYSSMU14$                                                 ONLINE
   _SYSSMU13$                                                 ONLINE
   _SYSSMU12$                                                 ONLINE
   _SYSSMU11$                                                 ONLINE
  
   已选择21行。
  
   已用时间:   00: 00: 00.07
  
11. $ drop tablespace undotbs1 including contents and datafiles;
   drop tablespace undotbs1 including contents and datafiles
   *
   第 1 行出现错误:
   ORA-01548: 已找到活动回退段 '_SYSSMU1$', 终止删除表空间
  
  
   已用时间:   00: 00: 00.04






12. $ create pfile from spfile;  
  
   pfile 内容如下:
  
   huiche.__db_cache_size=163577856
   huiche.__java_pool_size=4194304
   huiche.__large_pool_size=4194304
   huiche.__shared_pool_size=83886080
   huiche.__streams_pool_size=0
  
   *.audit_file_dest='D:\oracle\product\10.2.0\admin\HUICHE\adump'
   *.background_dump_dest='D:\oracle\product\10.2.0\admin\HUICHE\bdump'
   *.compatible='10.2.0.3.0'
   *.control_files='D:\oracle\product\10.2.0


\oradata\HUICHE\control01.ctl','D:\oracle\product\10.2.0


\oradata\HUICHE\control02.ctl','D:\oracle\product\10.2.0\oradata\HUICHE\control03.ctl'
   *.core_dump_dest='D:\oracle\product\10.2.0\admin\HUICHE\cdump'
   *.db_block_size=8192
   *.db_cache_size=113246208
   *.db_domain='COM'
   *.db_file_multiblock_read_count=16
   *.db_name='HUICHE'
   *.db_recovery_file_dest='D:\oracle\product\10.2.0\flash_recovery_area'
   *.db_recovery_file_dest_size=4294967296
   *.dispatchers='(PROTOCOL=TCP) (SERVICE=HUICHEXDB)'
   *.java_pool_size=4194304
   *.job_queue_processes=10
   *.large_pool_size=4194304
   *.nls_language='SIMPLIFIED CHINESE'
   *.nls_territory='CHINA'
   *.open_cursors=300
   *.pga_aggregate_target=69206016
   *.processes=150
   *.remote_login_passwordfile='EXCLUSIVE'
   *.sga_max_size=262144000
   *.sga_target=264241152
   *.shared_pool_size=79691776
   *.streams_pool_size=0
   *.undo_management='auto'
   *.undo_tablespace='UNDOTBS02'
   *.user_dump_dest='D:\oracle\product\10.2.0\admin\HUICHE\udump'
   # 增加隐形参数
   _corrupted_rollback_segments=(_SYSSMU10$,_SYSSMU9$,_SYSSMU8$,_SYSSMU7$,_SYSSMU6$,_SYSSMU5


$,_SYSSMU4$,_SYSSMU3$,_SYSSMU2$,_SYSSMU1$)
   _offline_rollback_segments=true


13. $ startup pfile=D:\oracle\product\10.2.0\db_1\database\INIThuiche.ORA
   ORACLE 例程已经启动。
   Total System Global Area   264241152 bytes
   Fixed Size                1296208 bytes
   Variable Size              92276912 bytes
   Database Buffers       163577856 bytes
   Redo Buffers             7090176 bytes
   数据库装载完毕。
   数据库已经打开。
14. $ select segment_name,status from dba_rollback_segs ;
SEGMENT_NAME                                              STATUS
------------------------------------------------------------ ----------------------------


--------------------------------
SYSTEM                                                    ONLINE
_SYSSMU10$                                                 NEEDS RECOVERY
_SYSSMU9$                                                 NEEDS RECOVERY
_SYSSMU8$                                                 NEEDS RECOVERY
_SYSSMU7$                                                 NEEDS RECOVERY
_SYSSMU6$                                                 NEEDS RECOVERY
_SYSSMU5$                                                 NEEDS RECOVERY
_SYSSMU4$                                                 NEEDS RECOVERY
_SYSSMU3$                                                 NEEDS RECOVERY
_SYSSMU2$                                                 NEEDS RECOVERY
_SYSSMU1$                                                 NEEDS RECOVERY
_SYSSMU20$                                                 ONLINE
_SYSSMU19$                                                 ONLINE
_SYSSMU18$                                                 ONLINE
_SYSSMU17$                                                 ONLINE
_SYSSMU16$                                                 ONLINE
_SYSSMU15$                                                 ONLINE
_SYSSMU14$                                                 ONLINE
_SYSSMU13$                                                 ONLINE
_SYSSMU12$                                                 ONLINE
_SYSSMU11$                                                 ONLINE


已选择21行。


已用时间:   00: 00: 00.31
15. $ drop tablespace undotbs1 including contents and datafiles;
   表空间已删除。
   已用时间:   00: 00: 01.39
  
16. $ select segment_name,status from dba_rollback_segs;
   SEGMENT_NAME                                              STATUS
   ------------------------------------------------------------ -----------------------------


-------------------------------
   SYSTEM                                                    ONLINE
   _SYSSMU20$                                                 ONLINE
   _SYSSMU19$                                                 ONLINE
   _SYSSMU18$                                                 ONLINE
   _SYSSMU17$                                                 ONLINE
   _SYSSMU16$                                                 ONLINE
   _SYSSMU15$                                                 ONLINE
   _SYSSMU14$                                                 ONLINE
   _SYSSMU13$                                                 ONLINE
   _SYSSMU12$                                                 ONLINE
   _SYSSMU11$                                                 ONLINE
  
   已选择11行。
  
   已用时间:   00: 00: 00.04
17. $ show parameter undo
NAME                               TYPE                VALUE
------------------------------------ ---------------------- ------------------------------
undo_management                   string                 AUTO
undo_retention                       integer             900
undo_tablespace                   string                 UNDOTBS02
$ create spfile from pfile;


文件已创建。


已用时间:   00: 00: 00.12


18. $ shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
19. $ startup
ORACLE 例程已经启动。
Total System Global Area   264241152 bytes
Fixed Size                1296208 bytes
Variable Size              92276912 bytes
Database Buffers       163577856 bytes
Redo Buffers             7090176 bytes
数据库装载完毕。
数据库已经打开。
20. $ show parameter undo
NAME                               TYPE                VALUE
------------------------------------ ---------------------- ------------------------------
undo_management                   string                 MANUAL
undo_retention                       integer             900
undo_tablespace                   string                 UNDOTBS02
$ alter system set undo_management=auto scope=spfile;


系统已更改。


已用时间:   00: 00: 00.03 

误删除UNDO表空间如何启动数据库

当你由于失误而把当前正在使用的UNDO表空间文件删除掉后。数据库会无法启动。这时可以启动数据库到MOUNT状态然后把一个现有的表空间该为UNDO表空间 然后把以前的UNDO表空间文件脱机drop掉al...
  • xiaoduan9678
  • xiaoduan9678
  • 2007年08月10日 00:27
  • 1163

Linux 平台下 误删 oracle 数据文件的恢复方法

1  问题描述 之前写过一篇删除oracle home目录的blog,参考:Linux 平台误删 home oracle 根目录的解决方法http://blog.csdn.net/tianlesoft...
  • tianlesoftware
  • tianlesoftware
  • 2015年03月05日 14:36
  • 11471

Oracle数据库数据文件rm -rf误删除后恢复

Oracle数据库中表空间的数据文件在基于OS系统级别被rm -rf 删除后,只要数据库在删除后一直未被shutdown,那么就可以手动恢复,恢复的前提是Oracle安装在Linux系统下,下面是一个...
  • a58457432
  • a58457432
  • 2014年05月30日 15:00
  • 1224

使用文件句柄方式恢复误删除的Oracle数据文件

环境说明: 操作系统:Linux 数据库版本:11.2.0.4begin~ 创建表空间test_tb SQL> create tablespace test_tb datafile '/u01/a...
  • yitu1314
  • yitu1314
  • 2017年05月26日 10:25
  • 308

linux下误删数据文件恢复

linux下文件被删除可以用很多工具进行恢复,例如undelete(适合ext2,ext3)、giis(不能恢复安装giis之前的文件)、ext3grep(仅限ext3)、R-linux(支持ext3...
  • u012512575
  • u012512575
  • 2014年11月04日 09:42
  • 1968

人工误删除innodb ibdata数据文件,如何恢复

1.用sysbench模拟数据写入 sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --max-r...
  • zengxuewen2045
  • zengxuewen2045
  • 2016年08月27日 07:03
  • 809

误删Oracle dbf 文件后的补救措施

scenario oracle主机上磁盘空间为0了,我查了一下,发现oracle的文件夹占用了 10g以上的空间,又发现有3个我以前创建的早就不用的.dbf文件占据了将近2G的空间,以前好像曾经做过...
  • weiling_shen
  • weiling_shen
  • 2015年04月08日 10:38
  • 1298

Oracle中利用undo进行数据的恢复操作

【说明】无意中看到一个同事的QQ留言上面写着“真累“,还没有过30分钟就接到这个同事的电话,如下:刚在做删除数据的时候,发现由于条件没有写好,导致删错了,有没有办法恢复;接到这个任务 ,首先是深深的感...
  • haitaofeiyang
  • haitaofeiyang
  • 2016年11月15日 09:48
  • 605

oracle数据文件被删除的恢复

当oraclek中的数据文件在OS系统下被误删除后,该如何恢复呢? 这时千万不要慌张重启数据库或者操作系统,可以通过dbwn进程相关句柄找回数据文件。 测试: 步骤1:用DBA身份登陆数据库并...
  • tchic
  • tchic
  • 2016年09月18日 19:08
  • 1615

误删 oracle 数据文件的恢复

虽然一再小心,但是还是发生人为误删除数据库文件.简单步骤,或许关键时刻可以帮大忙....
  • yangzhawen
  • yangzhawen
  • 2015年03月05日 16:44
  • 2077
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle误删Undo后恢复
举报原因:
原因补充:

(最多只允许输入30个字)