oracle数据库断电后不能打开 解决

过了八天国庆,花了三天整数据库。

数据库突然断电后,不能打开。或者偶尔能打开,但是很快就关闭。

原因可能很多。但是解决问题只有一种办法:看trace日志,alert错误日志

简单写下我的解决过程:

1,在alert日志中:

错误如下两种:

ORA-00600: internal error code, arguments: [4193], [1526], [1543], [], [], [], [], []

。。。

ORA-00600: internal error code, arguments: [4194], [151], [543], [], [], [], [], []

2,查看alert日志:

Errors in file e:\oracle\product\10.2.0\db_1\admin\orcl\udump\orcl_ora_2540.trc:
ORA-00600: 内部错误代码, 参数: [4194], [37], [26], [], [], [], [], []

3,去查看orcl_ora_2540.trc日志文件,

通过错误信息确定当前出错的回滚段:0~10,

4,修改pfile(注意保存以前pfile):

加入如下代码:

*.undo_management='MANUAL'(将auto修改为MANUAL)
_corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
5,现在输入命令:

SQL>startup;

就可以看到数据库正常启动了。

6,新建新的undo表空间

create undo tablespace undotbs2  datafile 'D:\ORACLE\PRODUCT\10.0.2\ORADATA\orcl\undotbs2.dbf';(自己的目录)

7,重定位到新的表空间:

alter system set undo_tablespace=undotbs2;
8,删除旧的表空间:

drop tablespace undotbs2;

9,修改pfile,将undo_management 由手动改回自动,修改undo_tablespace指向新的表空间,去掉

_corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
修改如下:

*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS2'
*.user_dump_dest='E:\oracle\product\10.2.0\db_1/admin/orcl/udump'

10,输入命令:

startup pfile='.....ora'

11,create spfile from pfile (注意备份)。( spfile = E:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\SPFILEORCL.ORA)


12,shutdown immediate;

13,startup ;ok

一些有用的命令:

host lsnrctl status;查看当前例程状态

show parameter undo; 查看当前使用的undo表空间

SELECT SEGMENT_NAME, OWNER, TABLESPACE_NAME, STATUS  FROM DBA_ROLLBACK_SEGS; 





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值