oracle partly available,總結 ?ORA-01548: 已找到活動回退段 '_SYSSMU1$', 終止刪除表空間?...

總結 ?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;

------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值