不小心删除了数据文件undo_small.dbf,现在数据库无法启动
SQL> startup
ORACLE instance started.Total System Global Area 784334848 bytes
Fixed Size 1282656 bytes
Variable Size 201330080 bytes
Database Buffers 578813952 bytes
Redo Buffers 2908160 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/export/home/oracle/oradata/test/undo_small.dbf'尝试着删除undo表空间,出现如下错误信息
SQL>drop tablespace undotbs1;
drop tablespace undotbs1
*
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU1$' found,terminate dropping tablespaceSQL>select segment_name,status,tablespace_name from dba_rollback_segs where status='NEED RECOVERY';
SEGMENT_NAME STATUS TABLESPACE_NAME
--------------------------------------------------------------------------------
_SYSSMU1$ NEEDS RECOVERY UNDOTBS1
_SYSSMU2$ NEEDS RECOVERY UNDOTBS1
_SYSSMU3$ NEEDS RECOVERY UNDOTBS1
......
_SYSSMU37$ NEEDS RECOVERY UNDOTBS1
_SYSSMU38$ NEEDS RECOVERY UNDOTBS1Oracle版本为10.2.0.2.0,有什么办法启动数据库吗?
SQL> startup
ORACLE instance started.Total System Global Area 784334848 bytes
Fixed Size 1282656 bytes
Variable Size 201330080 bytes
Database Buffers 578813952 bytes
Redo Buffers 2908160 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/export/home/oracle/oradata/test/undo_small.dbf'尝试着删除undo表空间,出现如下错误信息
SQL>drop tablespace undotbs1;
drop tablespace undotbs1
*
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU1$' found,terminate dropping tablespaceSQL>select segment_name,status,tablespace_name from dba_rollback_segs where status='NEED RECOVERY';
SEGMENT_NAME STATUS TABLESPACE_NAME
--------------------------------------------------------------------------------
_SYSSMU1$ NEEDS RECOVERY UNDOTBS1
_SYSSMU2$ NEEDS RECOVERY UNDOTBS1
_SYSSMU3$ NEEDS RECOVERY UNDOTBS1
......
_SYSSMU37$ NEEDS RECOVERY UNDOTBS1
_SYSSMU38$ NEEDS RECOVERY UNDOTBS1Oracle版本为10.2.0.2.0,有什么办法启动数据库吗?
解决方案 »
- 【面试题】某表定期删除之前的数据,求教该表设计要点
- 关于Oracle中存储过程的问题,执行总报错,有时编译不成功,使用工具是PLSQL
- 使用PLSQL Developer中的ODBC Importer
- 一个统计的问题
- jsp中如何调用数据库中的存储过程及函数?
- 我做了一个在oracle中创建自增字段的存储过程,执行时,提示我权限不足,不能运行,大家快快帮忙看看!!!!!!!!!100分赠送
- 谁有Oracle9i Database Concepts Release 2 ?
- 怎样用UPDATE写自增语句?
- oracle 8.1.7i (redhat linux 7.3)上,oracle报错。
- 怎样在proc c/c++ 中调用oracle存储过程?
- 关于存储过程的问题
- 求助,在线等!!
undo_management=MANUAL
undo_retention=10800
undo_tablespace=undo01
rollback_segments='SYSTEM'
2. 启动数据库
SQL> startup pfile = '你修改的那个init.ora';
3. alter database '/oracle/app/oracle/oradata/orcl/undo01.dbf' offline;
4. alter database datafile '/oracle/app/oracle/oradata/orcl/undo01.dbf' offline drop;
5. alter database open;
6. create spfile from pfile;
7. drop tablespace undo01;
8. create undo tablespace undotbs1 datafile '/oracle/app/oracle/oradata/orcl/undo01.dbf' size 200M autoextend on;
9. alter system set undo_management=auto scope=spfile;
10. shutdown immediate.
11. startup force.
操作系统是Solaris,init.ora文件在哪个目录下?
ORA-00371: not enough shared pool memory, should be atleast 62198988 bytes
需要alter system set undo_management=manual scope=spfile;
然后shutdown immediate;
然后 startup mount;
alter database datafile 6 offline drop ;
alter database open;
create undo tablespace undonew datafile '' size 100m autoextend on;
alter system set undo_tablespace=undonew scope=spfile;
alter system set undo_management=auto scope=spfile;
shutdown immediate;
startup;试试。。