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日志:

  [html]

  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):

  加入如下代码:

  [html]

  *.undo_management='MANUAL‘(将auto修改为MANUAL)

  _corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

  5,现在输入命令:

  SQL>startup;

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

  6,新建新的undo表空间

  [html]

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

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

  [html]

  alter system set undo_tablespace=undotbs2;

  8,删除旧的表空间:

  [html]

  drop tablespace undotbs2;

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

  [html]

  _corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

  修改如下:

  [html]

  *.undo_management='AUTO'

  *.undo_tablespace='UNDOTBS2'

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

  10,输入命令:

  [html]

  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;


原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/219/12449719.shtml

原文地址:https://www.cnblogs.com/huyinyang/p/3023250.html