windows系统崩溃后,oracle控制文件、数据文件、日志文件、参数文件都在,但重装系统并重装oracle数据库装,把原来的所有oracle文件覆盖后,启动oracle几分钟后就自动关闭,再重启就报错ora-00472。查看alert日志发现
ORA
-
00600
: 内部错误代码, 参数:
[
4194
]
,
[
15
]
,
[
8
]
,
[]
,
[]
,
[]
,
[]
,
[]
ORA-00472: PMON 进程因错误而终止
通过查找网上 资料,得知引起原因是 A mismatch has been detected between Redo records and rollback (Undo)
records.
ARGUMENTS:
Arg [a] Maximum Undo record number in Undo block
Arg [b] Undo record number from Redo block
通过查找网上 资料,得知引起原因是 A mismatch has been detected between Redo records and rollback (Undo)
records.ARGUMENTS:
Arg [a] Maximum Undo record number in Undo block
Arg [b] Undo record number from Redo block
解决方法:
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 5月 5 14:28:31 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
第一步:启动到nomount状态,创建pfile,将pfile里面的自动undo管理改为手工管理,并打开数据库
SQL> startup nomount
ORACLE 例程已经启动。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
SQL> create pfile='d:\1.ora' from spfile;
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
SQL> create pfile='d:\1.ora' from spfile;
文件已创建。
SQL> shutdown immediate
ORA-01507: ??????
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> startup mount pfile='d:\1.ora';
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> show parameter undo
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter database open;
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter database open;
数据库已更改。
第二步:先创建一个回滚段并使用,再新建一个新的undo表空间,并将老的undo表空间drop
SQL> Create rollback segment rr ;
SQL> Create rollback segment rr ;
回退段已创建。
SQL>
SQL> Alter rollback segment rr online ;
SQL> Alter rollback segment rr online ;
回退段已变更。
SQL> Create undo tablespace undotbs2 datafile 'D:\oracle\product\10.2.0\oradata\suredd\untotbs_01.dbf' size 50M;
表空间已创建。
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
表空间已删除。
第三步:关闭数据库,使用spfile启动到nomount状态(其实就是让undo继续自动管理),
将undo表空间指向新创建的undo表空间,再关闭数据库再启动数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
将undo表空间指向新创建的undo表空间,再关闭数据库再启动数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
SQL> alter system set undo_tablespace=undotbs2 scope=spfile;
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
SQL> alter system set undo_tablespace=undotbs2 scope=spfile;
系统已更改。
SQL> shutdown immediate
ORA-01507: ??????
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from ff.test;
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from ff.test;
ID NAME
---------- ----------
1 ff
2 jj
---------- ----------
1 ff
2 jj
SQL> /
ID NAME
---------- ----------
1 ff
2 jj
---------- ----------
1 ff
2 jj
SQL> alter system checkpoint;
系统已更改。
SQL> alter system archive log current;
系统已更改。
SQL> select * from ff.test;
ID NAME
---------- ----------
1 ff
2 jj
---------- ----------
1 ff
2 jj
SQL> /
ID NAME
---------- ----------
1 ff
2 jj
---------- ----------
1 ff
2 jj
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS2
以上参考http://www.blogjava.net/KingKong/archive/2011/05/05/349593.html
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS2
以上参考http://www.blogjava.net/KingKong/archive/2011/05/05/349593.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27135177/viewspace-745441/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27135177/viewspace-745441/
本文介绍了一种解决Oracle数据库启动时报ORA-00600和ORA-00472错误的方法。通过调整为手动undo管理、创建新的undo表空间等步骤,最终解决了由于redo记录与rollback记录不匹配导致的问题。
3054

被折叠的 条评论
为什么被折叠?



