总结 ?ORA-01548: 已找到活动回退段 '_SYSSMU1$', 终止删除表空间?
来源:互联网 发布:阿里云服务器稳定吗 编辑:程序博客网 时间:2024/05/02 14:08
总结 ?ORA-01548: 已找到活动回退段 '_SYSSMU1$', 终止删除表空间?
出现的原因:由于服务器自动重新启动造成回滚事务没有及时提交造成数据库块的损坏,及后面造成一系列的问题。
/* :
Wed Dec 08 15:20:03 2010
Errors in file d:/oracle/product/10.2.0/admin/taxdev/bdump/taxdev_smon_2572.trc:
ORA-01578: ORACLE data block corrupted (file # 48, block # 1919)
ORA-01110: data file 48: 'F:/UNDO0001'
*/
前提已经建立好表空间undo2:
--DROP TABLESPACE UNDOTB1 INCLUDING CONTENTS AND DATAFILES;
CREATE UNDO TABLESPACE undo2 DATAFILE
'F:/UNDO02' SIZE 1000M AUTOEXTEND ON NEXT 50M MAXSIZE 8000M,
'F:/UNDO03' SIZE 1000M AUTOEXTEND ON NEXT 50M MAXSIZE 8000M,
'F:/UNDO04' SIZE 1000M AUTOEXTEND ON NEXT 50M MAXSIZE 8000M,
'F:/UNDO05' SIZE 1000M AUTOEXTEND ON NEXT 50M MAXSIZE 8000M
ONLINE
RETENTION NOGUARANTEE
BLOCKSIZE 8K
FLASHBACK ON;
-- 删除回滚段
DROP TABLESPACE UNDO2 INCLUDING CONTENTS AND DATAFILES;
?ORA-01548: 已找到活动回退段 '_SYSSMU1$', 终止删除表空间
--CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE 'F:/UNDOTBS1.DBF' SIZE2000M;
/*
Wed Dec 08 15:20:03 2010
Errors in file d:/oracle/product/10.2.0/admin/taxdev/bdump/taxdev_smon_2572.trc:
ORA-01578: ORACLE data block corrupted (file # 48, block # 1919)
ORA-01110: data file 48: 'F:/UNDO0001'
*/
可是这里没有备份啊,那就先确定损坏的是什么
SELECT segment_name, segment_type, owner, tablespace_name
FROM dba_extents
WHERE file_id = 48 AND 1919 BETWEEN block_id AND block_id + blocks - 1
查询结果如下
---------------------------------------------------------------------
segment_name segment_type owner tablespace_name
_SYSSMU18$ TYPE2 UNDO SYS UNDO2
--------------------------------
第 1 行出现错误:
ORA-12008: 实体化视图的刷新路径中存在错误
ORA-01578: ORACLE 数据块损坏 (文件号 48, 块号 1919)
ORA-01110: 数据文件 48: 'F:/UNDO0001'
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2255
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2461
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2430
ORA-06512: 在 "BLTS.XIMPORT", line 811
ORA-06512: 在 line 1
12-08 16:59 问题未解决 没有头绪
---------------------------------------
http://blog.csdn.net/roland_wg/archive/2010/04/11/5471770.aspx 参考网站
/***
ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间 解决办法
http://smfflynj.itpub.net/post/31928/289863
验证过程:
1 查看所有回滚段信息:
select segment_name,status,tablespace_name from dba_rollback_segs;
***/
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU2$OFFLINEUNDO01
_SYSSMU3$OFFLINEUNDO01
_SYSSMU4$OFFLINEUNDO01
_SYSSMU5$OFFLINEUNDO01
_SYSSMU6$OFFLINEUNDO01
_SYSSMU7$OFFLINEUNDO01
_SYSSMU8$OFFLINEUNDO01
_SYSSMU57$OFFLINEUNDO01
_SYSSMU1$PARTLY AVAILABLEUNDO01
_SYSSMU56$OFFLINEUNDO01
_SYSSMU55$OFFLINEUNDO01
_SYSSMU54$OFFLINEUNDO01
_SYSSMU53$OFFLINEUNDO01
_SYSSMU52$OFFLINEUNDO01
_SYSSMU51$OFFLINEUNDO01
_SYSSMU34$PARTLY AVAILABLEUNDO01
_SYSSMU33$OFFLINEUNDO01
_SYSSMU18$ONLINEUNDO2
_SYSSMU9$ONLINEUNDO2
_SYSSMU20$ONLINEUNDO2
_SYSSMU21$ONLINEUNDO2
_SYSSMU22$ONLINEUNDO2
_SYSSMU23$PARTLY AVAILABLEUNDO2
_SYSSMU24$PARTLY AVAILABLEUNDO2
_SYSSMU17$ONLINEUNDO2
_SYSSMU16$ONLINEUNDO2
_SYSSMU15$ONLINEUNDO2
_SYSSMU14$ONLINEUNDO2
_SYSSMU13$ONLINEUNDO2
_SYSSMU12$ONLINEUNDO2
_SYSSMU11$ONLINEUNDO2
_SYSSMU10$ONLINEUNDO2
_SYSSMU19$ONLINEUNDO2
已选择49行。
说明是有问题的。
处理过程
--------------------------------
1、 -- create undo tablespace undo2 datafile 'D:oracleoradataPS30710UNDOTBS2.DBF' size 1000M; 已经建立不需要在建立
-- alter system set undo_tablespace=undotBS2;
alter system set undo_tablespace=undo2;
drop tablespace UNDO2 including contents; (进行这部操作的时候会报下面的错):
ORA-01548: 已找到活动回退段 '_SYSSMU1$', 终止删除表空间
2、 修改文件init.ora.926200993317,如下:
D:/oracle/product/10.2.0/admin/taxdev/pfile
undo_management=manual
undo_retention=10800
undo_tablespace=undo02
_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU10$,_SYSSMU57$,_SYSSMU56$,_SYSSMU55$,_SYSSMU54$,_SYSSMU53$,_SYSSMU52$,_SYSSMU51$,_SYSSMU34$,_SYSSMU33$)
3、启动服务
startup pfile= 'D:/oracle/product/10.2.0/admin/taxdev/pfile/init.ora.926200993317'
4、删除表空间
drop tablespace UNDO01 including contents;
5、 修改init.ora.926200993317,如下:
undo_management=auto
undo_retention=10800
undo_tablespace=undo2
_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU18$,_SYSSMU9$,_SYSSMU20$,_SYSSMU21$,_SYSSMU22$,_SYSSMU23$,_SYSSMU24$,_SYSSMU10,_SYSSMU11,_SYSSMU12,_SYSSMU13,_SYSSMU14
,_SYSSMU15,_SYSSMU16,_SYSSMU17,_SYSSMU19)
6 关闭服务,并且用下面的命令重新启动服务
startup pfile=' D:/oracle/product/10.2.0/admin/taxdev/pfile/init.ora.92620099331'
7/拷贝spfile文件,原先的spfile文件做好备份
8 关闭服务器,重新启动服务器,即可。
select segment_name,status,tablespace_name from dba_rollback_segs;
-------------------------------------------------------------------------
SEGMENT_NAMESTATUSTABLESPACE_NAME
SYSTEMONLINESYSTEM
_SYSSMU9$OFFLINEUNDO2
_SYSSMU10$ONLINEUNDO2
_SYSSMU11$ONLINEUNDO2
_SYSSMU12$ONLINEUNDO2
_SYSSMU13$ONLINEUNDO2
_SYSSMU14$ONLINEUNDO2
_SYSSMU15$ONLINEUNDO2
_SYSSMU16$ONLINEUNDO2
_SYSSMU17$ONLINEUNDO2
_SYSSMU18$NEEDS RECOVERYUNDO2
_SYSSMU19$ONLINEUNDO2
_SYSSMU20$NEEDS RECOVERYUNDO2
_SYSSMU21$NEEDS RECOVERYUNDO2
_SYSSMU22$NEEDS RECOVERYUNDO2
_SYSSMU23$NEEDS RECOVERYUNDO2
_SYSSMU24$NEEDS RECOVERYUNDO2
--表空间已经删除 undo01已经删除里面的回滚事务也删除
2010-12-08- 18:30 晚上开始备份数据库
2010-12-09 早晨解决备份
-------------------------------------------------------------------
/*检查日志数据库出现ORA-01578错误:数据块损坏(文件号 26, 块号 3283302)
[error][ora-01578]数据块损坏后重建索引? */
--------------------------------------------------------
2010-12-09 早晨检查数据库备份发现有数据库报错 提示如下:
....
. . 正在导出表 T_DJ_TFYXX
EXP-00056: 遇到 ORACLE 错误 1578
ORA-01578: ORACLE 数据块损坏 (文件号 6, 块号 320089)
ORA-01110: 数据文件 6: 'D:/BK_DEV01.ORA'
. . 正在导出表
/* 查询出错的块*/
SELECT segment_name, segment_type
FROM dba_extents
WHERE file_id = 6 AND 320089 BETWEEN block_id AND block_id + blocks - 1;
结果为:
segment_name segment_type
----------------------- ------------------------
T_DJ_TFYXX TABLE
说明:T_DJ_TFYXX为物化视图,直接把数据 Truncate 掉,重新导入数据。ok!
---------------------------------------------------------------------------------------------------
2010-12-09 早晨检查数据库日志发现
ORA-12012: 自动执行作业 81 出错
ORA-01578: ORACLE 数据块损坏 (文件号 26, 块号 3283302)
ORA-01110: 数据文件 26: 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/TAXDEV/BKDEV02'
ORA-06512: 在 "BLTS.XIMPORT", line 527
ORA-06512: 在 "BLTS.XIMPORT", line 745
ORA-06512: 在 line 1
--查询出错的块
SELECT *
FROM dba_extents
WHERE file_id = 26 AND 3283302 BETWEEN block_id AND block_id + blocks - 1;
---------------------------------------------
SEGMENT_NAME SEGMENT_TYPE
IDX_SB_DECLARE_YJKQX_CS INDEX
用以下语句查询:上面SQL和下面的效果一样
/* Formatted on 2010/12/09 09:58 (Formatter Plus v4.8.8) */
SELECT segment_name, segment_type
FROM dba_extents
WHERE file_id = 26 AND 3283302 BETWEEN block_id AND block_id + blocks - 1;
结果为:
segment_name segment_type
----------------------- ------------------------
IDX_SB_DECLARE_YJKQX_CS INDEX
检查发现 BLT_WH_SB_DECLARE 中索引坏了
--重建索引 15分钟 OK
alter index IDX_SB_DECLARE_YJKQX_CS rebuild online;
------------------------------------------------------------------------------
- 总结 ?ORA-01548: 已找到活动回退段 '_SYSSMU1$', 终止删除表空间?
- ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间 解决办法
- ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间 的解决办法
- ORA-01548: 已找到活动回退段 '_SYSSMU6_1294219927$', 终止删除表空间
- 删除undo表空间报ORA-01548
- 删除undo表空间报ORA-01548
- ORA-01548删除undo表空间处理
- Oracle中的ORA-01548: active rollback segment '_SYSSMU1$' found
- Oracle中删除用户和表空间的常见问题(比如:ORA-01940无法删除当前已连接用户的解决方案)
- Oracle中删除用户和表空间的常见问题(比如:ORA-01940无法删除当前已连接用户的解决方案)
- 删除归档表空间、删除归档文件导致的报错 ORA-08881 ORA-01548
- 有关ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录的删除方法
- 删除表空间时报ORA-12919
- Oracle中的ORA-01548: active rollback segment '_SYSSMU1$' found
- 删除undo表空间遇到ORA-30013及ORA-01548的解决思路
- 删除表空间报错:ORA-00604 ORA-02429
- ora-01110,ora-01109删除表空间文…
- undo表空间故障特殊恢复(二)------ORA-01092: ORACLE 实例终止。强制断开连接
- FTP中主动模式(Active FTP)和被动模式(Passive FTP)的区别
- GTK Gossip: GtkFrame 與 GtkButtonBox
- WPF之页间导航与页间数据传递
- (java)a!=a在什么情况下为true?
- 新浪微博
- 总结 ?ORA-01548: 已找到活动回退段 '_SYSSMU1$', 终止删除表空间?
- shader
- 使用 Windows live writer 写 CSDN 博客
- Teamcenter8---开始1
- CISSP/CISA/CISP/ITIL/COBIT/ISO27001LA 培训易聆科12月开班邀请
- 恢复数据库错误“正在还原”
- Teamcenter8---开始1
- Fosstrak介绍
- POJ2373动态规划