ITPub博客

首页 > 数据库 > Oracle > UNDO表空间丢失报错:ORA-01157

UNDO表空间丢失报错:ORA-01157

原创 Oracle 作者:fengsongtao123 时间:2016-05-30 13:10:19 0 删除 编辑
SQL> startup
ORACLE instance started.

Total System Global Area 2505338880 bytes
Fixed Size            2215944 bytes
Variable Size         1392513016 bytes
Database Buffers     1107296256 bytes
Redo Buffers            3313664 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file
ORA-01110: data file 3:
'/u01/app/oracle/oradata/EISOO/datafile/o1_mf_undotbs1_cnq9gsym_.dbf'


在mount状态下查看数据文件信息,发现数据文件3位UNDO回滚段表空间

解决思路:由于undo表空间数据文件损坏,所以决定使用SYSTEM表空间作为临时undo,将数据库open,然后删除原来的undotbs1表空间,重建undotbs2表空

间,并修改参数文件,重新启动数据库。

具体步骤:
1、修改参数文件
*.undo_management='manual'
*.undo_tablespace='SYSTEM'
#_allow_resetlogs_corruption=true
#_corrupted_rollback_segments=

(_SYSSMU1_3780397527$,_SYSSMU2_2232571081$,_SYSSMU3_2097677531$,_SYSSMU4_1152005954$,_SYSSMU5_1527469038$,_SYSSMU6_2443381498$,_SYSSMU7_3

286610060$,_SYSSMU8_2012382730$,_SYSSMU9_1424341975$,_SYSSMU10_3550978943$)

备注:上面的undo回归段是在原来数据库open时查询V$rollname视图得到的。

2、启动数据库到mount状态
SQL> startup mount;

SQL> alter database datafile 3 offline;

SQL> alter database open;

SQL> drop tablespace undotbs1 including contents and datafiles;

SQL> create undo tablespace undotbs2 datafile '/u01/app/oracle/oradata/EISOO/datafile/undo02.dbf' size 100M;

3、关闭数据库,重新更改参数文件如下:

*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS2'

4、重新启动数据库

SQL> show parameter undo

NAME                     TYPE                   VALUE
------------------------------------ --------------------------------- ------------------------------
undo_management              string                   AUTO
undo_retention                 integer                   900
undo_tablespace              string                   UNDOTBS2

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30373263/viewspace-2109202/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-07-25

  • 博文量
    96
  • 访问量
    259433