转载地址:http://www.2cto.com/database/201312/261602.html
由于服务器断电,启动 oracle 时报ORA-00600 错误
查看 oracletrace 日志
sqlplus / as sysdba
2. 启动,报错信息如下
sql> startup ORACLE instance started. Total System Global Area 583008256 bytes Fixed Size 2022504 bytes Variable Size 184550296 bytes Database Buffers 394264576 bytes Redo Buffers 2170880 bytes Database mounted. ORA-00607: Internal error occurred while making a change to a data block ORA-00600: internal error code,arguments: [4194],[22],[39],[],[]
3. 找到 alert 日志
执行
sql>show parameter dump
红圈部分即为 oracle alert 日志路径
4. 查看 alert 日志
cd /opt/oracle/app/diag/rdbms/orcl/orcl/trace/ less alert_orcl.log
大概报错信息如下:
============================== 开始修复==============================
5. 设置undo表空间的管理方式为:手工,缺省undotbs 为空,实际上使用了 system 回滚段。
sql> alter system set undo_management = manual scope=spfile; System altered. sql> alter system set undo_tablespace='' scope=spfile; System altered. sql> startup force ORACLE instance started. Total System Global Area 583008256 bytes Fixed Size 2022504 bytes Variable Size 184550296 bytes Database Buffers 394264576 bytes Redo Buffers 2170880 bytes Database mounted. Database opened.
6.查询原始 undo 表空间路径
sql> select file_name,tablespace_name from dba_data_files;
7.创建新的undo表空间
sql> create undo tablespace undotbs2 datafile '/opt/oracle/app/oradata/orcl/undotbs2.dbf' size 100M;
8.设置undo管理方式为 ’自动‘:
sql> alter system set undo_management =auto scope=spfile; System altered.
9.设置undotbs 为新建的undotbs2:
sql> alter system set undo_tablespace = undotbs2 scope=spfile; System altered.
10.删除原来损坏的undo表空间 :
sql> drop tablespace undotbs02 including contents and datafiles; Tablespace dropped. sql> startup force; ORACLE instance started. Total System Global Area 583008256 bytes Fixed Size 2022504 bytes Variable Size 234881944 bytes Database Buffers 343932928 bytes Redo Buffers 2170880 bytes Database mounted. Database opened.
完毕!