由于电脑经常非法关机,导致数据关闭时,出现以下错误。
Errors in file c:\oracle\product\10.1.0\admin\orcl\bdump\orcl_smon_5140.trc:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4194], [24], [22], [], [], [], [], []
经在网上查询4194错误通常说明UNDO段出现问题,但我的oracle数据库版本为10.1.0.2。由于这个版本己经没有undo 段,用undo表空间进行管理,所以网上有说undo段,那都是针对oracle 9i的。这里只是采用新建undo表空间进行替换进行的,这种方法也用undo表空间不回收时使用。
SQL>shutdown immediate; -- 正常关不掉
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4194], [24], [22], [], [], [], [], []
SQL> shutdown abort -- 强制关
SQL> startup
SQL> create undo tablespace undotbs2 datafile 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS02.DBF' size 200m;
SQL> alter system set undo_tablespace=undotbs2; -- 修改数据库的undo表空间
SQL> shutdown immediate --正常关库
-- 手动改初始化文件,
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS2
###########################################
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup pfile='C:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.10152011101227';
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 144964076 bytes
Database Buffers 25165824 bytes
Redo Buffers 1048576 bytes
数据库装载完毕。
数据库已经打开。
--恢复原来的表空间
SQL> drop tablespace undotbs1 including contents;
表空间已删除。
SQL>create undo tablespace undotbs1 datafile 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF' size 200m;
表空间已创建。.
SQL> alter system set undo_tablespace=undotbs1;
系统已更改。
SQL> shutdown immediate; -- 关库
--修改参数文件,变更undo表空间回原来的值 .undo_tablespace=undotbs1
SQL> startup pfile='C:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.10152011101227';
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 144964076 bytes
Database Buffers 25165824 bytes
Redo Buffers 1048576 bytes
数据库装载完毕。
数据库已经打开。
SQL> drop tablespace uundotbs2 including contents;
表空间已删除。