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/
,如需转载,请注明出处,否则将追究法律责任。