undo表空间删除后,数据库只能启动到mount状态

修改了undo表空间之后 数据库只能启动到mount了
对于undo表空间 做了以下操作

在一个telnet会话中运行了语句:
SQL>conn scott/tiger
SQL>insert into dept values(10,'microsoft','America')
1 row created.

在另一个telnet会话中以sys身份执行以下语句,
SQL>alter system set undo_tablespace='UNDOTBS02' SCOPTE=BOTH;
System altered.
执行完这命令后,前一个telnet会话不知觉什么时候已断开,在此会话执行了
SQL>drop tablespace undotbs01 including contents and datafiles;
本来是期待出现以下结果,但是悲剧了,由于前一个会话不知道什么时候结束了,导致undotbs01被删除了。
ERROR at line 1:
ORA-30013: undo tablespace 'UNDOTBS' is currently in use

然后,shutdown了数据库重新启动。只是能够启动到mount状态,提示如下
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-30012: undo tablespace 'UNDO_TBS' does not exist or of wrong type

将数据库打开到mount状态(startup mount),执行以下命令:
发现undo的value为空。
SQL> show parameter undo;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace         

于是就创建了一个同名的undotbs01表空间(创建语法就省略了)
可在打开数据时,仍只能启动到mount状态。
突然想起来在执行以上所有操作之前,还进行了一个操作:
SQL>create spfile from pfile;

于是想到:
create spifle from pfile;
使得spfile引导使用了原来的undotbs空间信息(因为10g以后oracle默认使用spfile启动数据库)
还是spfile的问题,得重新create pfile from spfile,然后看一下pfile文件,undo_tablespace那里对应的是不是新建立的undo表空间,如果不是(果然是这里的问题,还一直以为是undo表空间修改的问题呢,虽然归根到底是它的原因,但是没有想到是pfile和spfile这里, 哎……太菜了,不过相信自己总有一天也会是大神,,呵呵呵呵呵呵),改过来,重新用pfile引导数据库启动,启动后再重建spfile

这样再次启动,OK!

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

转载于:http://blog.itpub.net/26451903/viewspace-731510/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值