ORA-01555 快照号过旧,回退段号26(名称为“_SYSSMU26_1271644566$”)过小的错误。
刚开始以为是UNDO表空间太小,增加undo数据文件后,还是同样的错误,
使用这个用户kms做了rollback操作也是同样错误。
因为这个是测试数据库,尝试重新启动数据数据库后,还是报一样的错误。
使用这个用户kms做了rollback操作也是同样错误。
因为这个是测试数据库,尝试重新启动数据数据库后,还是报一样的错误。
alert 日志文件记录如下:
Mon Jun 21 09:51:09 2010
Errors in file d:\oracle\diag\rdbms\gztest\gztest\trace\gztest_p000_4220.trc (incident=57908):
ORA-00600: internal error code, arguments: [4198], [9], [], [], [], [], [], []
Incident details in: d:\oracle\diag\rdbms\gztest\gztest\incident\incdir_57908\gztest_p000_4220_i57908.trc
Mon Jun 21 09:51:10 2010
Trace dumping is performing id=[cdmp_20100621095110]
Mon Jun 21 09:51:15 2010
db_recovery_file_dest_size of 2048 MB is 8.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Mon Jun 21 09:51:26 2010
Doing block recovery for file 8 block 249
Block recovery from logseq 8314, block 7858 to scn 1984143087
Recovery of Online Redo Log: Thread 1 Group 1 Seq 8314 Reading mem 0
Mem# 0: D:\ORACLE\ORADATA\GZTEST\REDO01.LOG
Block recovery completed at rba 8314.7881.16, scn 0.1984143088
Doing block recovery for file 2 block 33719
Block recovery from logseq 8314, block 7901 to scn 1984143108
Recovery of Online Redo Log: Thread 1 Group 1 Seq 8314 Reading mem 0
Mem# 0: D:\ORACLE\ORADATA\GZTEST\REDO01.LOG
Mon Jun 21 09:51:26 2010
ORA-01555 caused by SQL statement below (SQL ID: 95m1t3u7u198n, Query Duration=18 sec, SCN: 0x0000.76439f32):
Select A.* From DB_TESTRESULTINFO A Where A.f_Branchofficecode=:BranchofficeCode and A.f_Requestid=:RequestID
Block recovery completed at rba 8314.7902.16, scn 0.1984143110
Mon Jun 21 09:51:44 2010
Errors in file d:\oracle\diag\rdbms\gztest\gztest\trace\gztest_p000_4220.trc (incident=57908):
ORA-00600: internal error code, arguments: [4198], [9], [], [], [], [], [], []
Incident details in: d:\oracle\diag\rdbms\gztest\gztest\incident\incdir_57908\gztest_p000_4220_i57908.trc
Mon Jun 21 09:51:10 2010
Trace dumping is performing id=[cdmp_20100621095110]
Mon Jun 21 09:51:15 2010
db_recovery_file_dest_size of 2048 MB is 8.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Mon Jun 21 09:51:26 2010
Doing block recovery for file 8 block 249
Block recovery from logseq 8314, block 7858 to scn 1984143087
Recovery of Online Redo Log: Thread 1 Group 1 Seq 8314 Reading mem 0
Mem# 0: D:\ORACLE\ORADATA\GZTEST\REDO01.LOG
Block recovery completed at rba 8314.7881.16, scn 0.1984143088
Doing block recovery for file 2 block 33719
Block recovery from logseq 8314, block 7901 to scn 1984143108
Recovery of Online Redo Log: Thread 1 Group 1 Seq 8314 Reading mem 0
Mem# 0: D:\ORACLE\ORADATA\GZTEST\REDO01.LOG
Mon Jun 21 09:51:26 2010
ORA-01555 caused by SQL statement below (SQL ID: 95m1t3u7u198n, Query Duration=18 sec, SCN: 0x0000.76439f32):
Select A.* From DB_TESTRESULTINFO A Where A.f_Branchofficecode=:BranchofficeCode and A.f_Requestid=:RequestID
Block recovery completed at rba 8314.7902.16, scn 0.1984143110
Mon Jun 21 09:51:44 2010
发帖请教网友后,知道4198错误是个UNDO出了问题了。需要删除这个undo表空间,重新建立新表空间。
新建立undotbs3表空间,删除Undotbs2时,提示如下错误
SQL> drop tablespace undotbs2 including contents and datafiles;
ORA-01548: 已找到活动回退段 '_SYSSMU26_1271644566$', 终止删除表空间
新建立undotbs3表空间,删除Undotbs2时,提示如下错误
SQL> drop tablespace undotbs2 including contents and datafiles;
ORA-01548: 已找到活动回退段 '_SYSSMU26_1271644566$', 终止删除表空间
和开发人员提供的错误一样。都是26号回退段出问题了。
通过dba_rollback_segs看到26回退段需要recovery了。
SQL> select segment_name,status,tablespace_name from dba_rollback_segs;
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU30_1271644566$ OFFLINE UNDOTBS2
_SYSSMU29_1271644566$ OFFLINE UNDOTBS2
_SYSSMU28_1271644566$ OFFLINE UNDOTBS2
_SYSSMU27_1271644566$ OFFLINE UNDOTBS2
_SYSSMU26_1271644566$ NEEDS RECOVERY UNDOTBS2
_SYSSMU20_1277087777$ ONLINE UNDOTBS3
_SYSSMU19_1277087777$ ONLINE UNDOTBS3
_SYSSMU18_1277087777$ ONLINE UNDOTBS3
_SYSSMU17_1277087777$ ONLINE UNDOTBS3
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU30_1271644566$ OFFLINE UNDOTBS2
_SYSSMU29_1271644566$ OFFLINE UNDOTBS2
_SYSSMU28_1271644566$ OFFLINE UNDOTBS2
_SYSSMU27_1271644566$ OFFLINE UNDOTBS2
_SYSSMU26_1271644566$ NEEDS RECOVERY UNDOTBS2
_SYSSMU20_1277087777$ ONLINE UNDOTBS3
_SYSSMU19_1277087777$ ONLINE UNDOTBS3
_SYSSMU18_1277087777$ ONLINE UNDOTBS3
_SYSSMU17_1277087777$ ONLINE UNDOTBS3
ORA-01548错误的解决方法参考这个帖子解决。
http://blog.csdn.net/roland_wg/archive/2010/04/11/5471770.aspx
http://blog.csdn.net/roland_wg/archive/2010/04/11/5471770.aspx
下面是具体的解决步骤。
1.创建一个pfile文件。
SQL> create pfile='d:\oracle\pfilegztest.ora' from spfile;
1.创建一个pfile文件。
SQL> create pfile='d:\oracle\pfilegztest.ora' from spfile;
文件已创建。
2.修改pfile文件的下面3个内容。
*.undo_management=manual
*.undo_tablespace='UNDOTBS3'
_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU26_1271644566$) -
2.修改pfile文件的下面3个内容。
*.undo_management=manual
*.undo_tablespace='UNDOTBS3'
_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU26_1271644566$) -
-记录下损坏 的回退段。
3.关闭数据库
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
4调用pfile参数启动数据库,
SQL> startup pfile='d:\oracle\pfilegztest.ora';
ORACLE 例程已经启动。
SQL> startup pfile='d:\oracle\pfilegztest.ora';
ORACLE 例程已经启动。
Total System Global Area 945786880 bytes
Fixed Size 1333956 bytes
Variable Size 469763388 bytes
Database Buffers 469762048 bytes
Redo Buffers 4927488 bytes
数据库装载完毕。
数据库已经打开。
Fixed Size 1333956 bytes
Variable Size 469763388 bytes
Database Buffers 469762048 bytes
Redo Buffers 4927488 bytes
数据库装载完毕。
数据库已经打开。
5.删除有问题的undo表空间
SQL> drop tablespace undotbs2 including contents and datafiles;
SQL> drop tablespace undotbs2 including contents and datafiles;
查看回退段,已经删除了undotbs2的信息了。
SQL> select segment_name,status,tablespace_name from dba_rollback_segs;
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU20_1277087777$ OFFLINE UNDOTBS3
_SYSSMU19_1277087777$ OFFLINE UNDOTBS3
_SYSSMU18_1277087777$ OFFLINE UNDOTBS3
_SYSSMU17_1277087777$ OFFLINE UNDOTBS3
_SYSSMU16_1277087777$ OFFLINE UNDOTBS3
_SYSSMU15_1277087777$ OFFLINE UNDOTBS3
_SYSSMU14_1277087777$ OFFLINE UNDOTBS3
_SYSSMU13_1277087777$ OFFLINE UNDOTBS3
_SYSSMU12_1277087777$ OFFLINE UNDOTBS3
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU11_1277087777$ ONLINE UNDOTBS3
SQL> select segment_name,status,tablespace_name from dba_rollback_segs;
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU20_1277087777$ OFFLINE UNDOTBS3
_SYSSMU19_1277087777$ OFFLINE UNDOTBS3
_SYSSMU18_1277087777$ OFFLINE UNDOTBS3
_SYSSMU17_1277087777$ OFFLINE UNDOTBS3
_SYSSMU16_1277087777$ OFFLINE UNDOTBS3
_SYSSMU15_1277087777$ OFFLINE UNDOTBS3
_SYSSMU14_1277087777$ OFFLINE UNDOTBS3
_SYSSMU13_1277087777$ OFFLINE UNDOTBS3
_SYSSMU12_1277087777$ OFFLINE UNDOTBS3
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU11_1277087777$ ONLINE UNDOTBS3
6。关闭数据库,重新正常启动。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 945786880 bytes
Fixed Size 1333956 bytes
Variable Size 469763388 bytes
Database Buffers 469762048 bytes
Redo Buffers 4927488 bytes
数据库装载完毕。
数据库已经打开。
Fixed Size 1333956 bytes
Variable Size 469763388 bytes
Database Buffers 469762048 bytes
Redo Buffers 4927488 bytes
数据库装载完毕。
数据库已经打开。
本文转自 gjm008 51CTO博客,原文链接:http://blog.51cto.com/gaoshan/336611,如需转载请自行联系原作者