UNDO表空间损坏处理案例(ORA-01110)

本文详细记录了一次处理Oracle数据库中UNDO表空间数据文件损坏的问题,通过离线损坏表空间、手动删除回退段、重建表空间等步骤,最终成功恢复数据库服务,确保了已提交数据的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最近处理一起因UNDO表空间的数据文件损坏,而导致数据库服务无法启动的情况。

     按理说,undo表空间数据文件的损坏,是不会影响到已提交的数据的,所以,该数据库能在没有备份的情况下恢复,并且不损失已提交的数据。

     以下是实验过程:

     1、破坏undotbs01.dbf(用ultraEdit编辑,将头部删除),然后启动数据库,报:

           SQL> startup
           ORACLE 例程已经启动。

           Total System Global Area  612368384 bytes
           Fixed Size                  1250428 bytes
           Variable Size             171969412 bytes
           Database Buffers          432013312 bytes
           Redo Buffers                7135232 bytes
           数据库装载完毕。
           ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件
           ORA-01110: 数据文件 2: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF'

       2、将UNDOTBS离线:

           SQL>ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF' OFFLINE DROP;

           数据库已更改

       3、创建pfile:

            SQL> create pfile='d:\init.ora' from spfile;

            文件已创建

       4、修改pfile,添加参数:

           *.undo_management='MANUAL'
            _corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

       5、用pfile重启数据库:      

             SQL> shutdown immediate
             ORA-01109: 数据库未打开
             已经卸载数据库。
             ORACLE 例程已经关闭。

             SQL> startup pfile='D:\init.ora'
             ORACLE 例程已经启动。

         &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值