遇到一个问题记录下来,呵呵
Shutdown immediate时候出现
SQL> shutdown immediate
ORA-00600: internal error code, arguments: [2032], [12587038], [12587038],
[8192], [2], [255], [0], [767], [], [], [], []
并且插入数据的时候出现
ORA-01110: 数据文件 3: '/data/Oracle/ORCL/undotbs01.dbf' 语句:insert into xxx(
xxx) values(xxx)
[2014-02-11 16:09:58] Connection::ExecSQL错误:ORA-01578: ORACLE数据块损坏 (文件号 3,块号 4126)
一般出现这个情况下是undo表空间损坏导致
更改系统undo表空间即可
查询undo表空间
SQL> show parameter undo_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> select tablespace_name,contents from dba_tablespaces where contents='UNDO';
TABLESPACE_NAME CONTENTS
------------------------------ ---------
UNDOTBS1 UNDO
查询位置
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/data/oracle/ORCL/system01.dbf
/data/oracle/ORCL/sysaux01.dbf
/data/oracle/ORCL/undotbs01.dbf
/data/oracle/ORCL/users01.dbf
/data/oracle/ORCL/example01.dbf
/data/oracle/ORCL/center/center01.dbf
/data/oracle/ORCL/test.dbf
/data/oracle/ORCL/test1.dbf
/data/oracle/ORCL/test2.dbf
/data/oracle/ORCL/system_02.dbf
添加文件
查询之前大小
SQL> select sum(bytes)/1024/1024 "current undo size(M)" from dba_data_files where tablespace_name='UNDOTBS1';
current undo size(M)
--------------------
2735
添加文件
SQL> create undo tablespace undo02 datafile '/data/oracle/ORCL/undotbs02.dbf' size 2800M;
系统已更改。
更改undo空间
SQL> alter system set undo_tablespace=undo02;
System altered.
SQL> show parameter undo_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDO02
验证
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 447778816 bytes
Fixed Size 1337128 bytes
Variable Size 310380760 bytes
Database Buffers 130023424 bytes
Redo Buffers 6037504 bytes
Database mounted.
Database opened.
当然可以手动模拟undo表空间损坏,这里不在演示