回滾段完蛋了的處理
背景: 使用者修改一些配置,shutdown immediate,但是系統很久也沒有關閉。等不及的使用者 shutdown abort 資料庫,然後startup。重新啟動之後的資料庫,在alert.log中不段出現類似的錯誤資訊:
SMON: about to recover undo segment 8
SMON: mark undo segment 8 as needs recovery
或者出現:
smon: undo segment 46 is avaliable
smon: need to recover undo segment 46
這些錯誤資訊,由SMON 程式喚醒,所以一般是5分鐘出現一次。
檢查 dba_rollback_segs 發現這些回滾段的狀態為:NEEDS RECOVERY 或者 PARTLY AVAILABLE。 A rollback segment in the PARTLY AVAILABLE state contains data for an in-doubt or recovered distributed transaction, or for yet to be recovered transactions.
原因: 使用者關閉系統的時候,還存在大量的活動事務,在shutdown abort 後,重新啟動的時候,系統要回滾這些事務,並且將這些回滾段置為不可用
解決:
1. 建立一個新的undo tablespace,並將系統切換到該UNDO tablespace 上。對系統進行耐心的等待,不斷檢視
dba_rollback_segs。等所有的回滾段的狀態為online 或者 offline 後,在drop 該UNDO tablespace,操作步驟如下:
create undo tablespace Undo2 datafile '' size 500M segment space management AUTO;
alter syste set undo_tablespace=Undo2;
drop tablespace Undo1;
在alert.log 中將會出現:
SMON: mark undo segment 8 as available,
SMON: Parallel transaction recovery tried
2. sql> alter session set "_smu_debug_mode"=4; 將回滾段設定為手工的debug模式
sql> alter rollback segment "_SYSSMU8$" online;
3. 在引數檔案中設定:._corrupted_rollback_segments='_SYSSMU11$','_SYSSMU12$','_SYSSMU13$' 先開啟資料
庫,然後進行步驟1中的全部操作
4. 新增 _offline_rollback_segments ='_SYSSMU11$','_SYSSMU12$','_SYSSMU13$' ,在重新啟動資料庫,刪除有問題
的回滾段
ref: http://carson.yculblog.com/post.1391582.html[@more@]
SMON: about to recover undo segment 8
SMON: mark undo segment 8 as needs recovery
或者出現:
smon: undo segment 46 is avaliable
smon: need to recover undo segment 46
這些錯誤資訊,由SMON 程式喚醒,所以一般是5分鐘出現一次。
檢查 dba_rollback_segs 發現這些回滾段的狀態為:NEEDS RECOVERY 或者 PARTLY AVAILABLE。 A rollback segment in the PARTLY AVAILABLE state contains data for an in-doubt or recovered distributed transaction, or for yet to be recovered transactions.
原因: 使用者關閉系統的時候,還存在大量的活動事務,在shutdown abort 後,重新啟動的時候,系統要回滾這些事務,並且將這些回滾段置為不可用
解決:
1. 建立一個新的undo tablespace,並將系統切換到該UNDO tablespace 上。對系統進行耐心的等待,不斷檢視
dba_rollback_segs。等所有的回滾段的狀態為online 或者 offline 後,在drop 該UNDO tablespace,操作步驟如下:
create undo tablespace Undo2 datafile '' size 500M segment space management AUTO;
alter syste set undo_tablespace=Undo2;
drop tablespace Undo1;
在alert.log 中將會出現:
SMON: mark undo segment 8 as available,
SMON: Parallel transaction recovery tried
2. sql> alter session set "_smu_debug_mode"=4; 將回滾段設定為手工的debug模式
sql> alter rollback segment "_SYSSMU8$" online;
3. 在引數檔案中設定:._corrupted_rollback_segments='_SYSSMU11$','_SYSSMU12$','_SYSSMU13$' 先開啟資料
庫,然後進行步驟1中的全部操作
4. 新增 _offline_rollback_segments ='_SYSSMU11$','_SYSSMU12$','_SYSSMU13$' ,在重新啟動資料庫,刪除有問題
的回滾段
ref: http://carson.yculblog.com/post.1391582.html[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-915069/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 回滾操作、回滾段的理解
- 回滾段表空間損壞處理(ORA-01552)處理方法
- ORACLE回滾段Oracle
- Oracle提交和回滾處理Oracle
- ORACLE回滾段(1)Oracle
- ORACLE回滾段(2)Oracle
- ORACLE回滾段(轉)Oracle
- ORACLE回滾段管理Oracle
- Oracle的回滾段介紹Oracle
- ORACLE 回滾段詳解Oracle
- SQL code----檢視回滾段名稱及大小 回滾段的管理SQL
- oracle回滾段 undo 表空間Oracle
- ORACLE技術專題-- 回滾段Oracle
- oracle 11g 回滾段的測試Oracle
- ORA-01552 非系統表空間不能使用系統回滾段處理
- ORACLE 回滾段表空間資料檔案丟失或損壞處理方法(1) (轉)Oracle
- 【UNDO】Oracle系統回滾段說明Oracle
- 調整系統用SYSTEM回滾段
- 鎖表時KILL SESSION及回滾段監控(回滾時間評估)Session
- 回滾段損壞後的引數設定
- 回滾段擴充套件資料檔案套件
- CoordinatorLayout與滾動的處理
- 段頭損壞的處理
- 用 CoordinatorLayout 處理滾動
- Oracle回滾段的概念,用法和規劃及問題的解決Oracle
- oracle 12c 新特性 Temporary UNDO 臨時回滾段Oracle
- spring boot 顯示處理事務回滾Spring Boot
- 閃回區滿的處理 - flashback
- oracle前滾和回滾Oracle
- ORACLE 前滾和回滾Oracle
- Oracle 11g 檢視資料庫回滾段的使用情況Oracle資料庫
- Oracle回滾段的概念,用法和規劃及問題的解決(轉)Oracle
- PHP處理字串的幾段程式碼PHP字串
- (譯)使用CoordinatorLayout處理滾動
- 【恩墨學院】運維經驗:回滾段異常的特殊救急方法運維
- 請教一下關於回滾段的擴充套件和收縮!套件
- 建立表空間、回滾段、使用者、表的詳細語法資訊
- 檢視Oracle回滾段的詳細情況,以及對效能的影響 -- 轉Oracle