Oracle undo表空間爆滿的處理方法
解決步驟:
1. 啟動SQLPLUS,並用sys登陸到資料庫。
#su - oracle
$>sqlplus / as sysdba
2. 查詢資料庫的UNDO表空間名,確定當前例程正在使用的UNDO表空間:
Show parameter undo_tablespace。
3. 確認UNDO表空間;
SQL> select name from v$tablespace;
NAME
------------------------------
UNDOTBS1
4. 檢查資料庫UNDO表空間佔用空間情況以及資料檔案存放位置;
SQL>select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS%';
5. 檢視回滾段的使用情況,哪個使用者正在使用回滾段的資源,如果有使用者最好更換時間(特別是生產環境)。
SQL> select s.username, u.name from v$transaction t,v$rollstat r, v$rollname u,v$session s
where s.taddr=t.addr and t.xidusn=r.usn and r.usn=u.usn order by s.username;
6. 檢查UNDO Segment狀態;
SQL> select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks
from v$rollstat order by rssize;USN XACTS RSSIZE/1024/1024/1024 HWMSIZE/1024/1024/1024 SHRINKS
1 0 0 0.000358582 0.000358582 0
2 14 0 0.796791077 0.796791077 735
3 44 1 0.00920867919921875 3.99295806884766 996這還原表空間中還存在3個回滾的物件。
7. 建立新的UNDO表空間,並設定自動擴充套件引數;
SQL> create undo tablespace undotbs2 datafile '/opt/oracle/oradata/ge01/UNDOTBS2.dbf' size 100m reuse autoextend on next 50m maxsize 5000m;Tablespace created.
8. 切換UNDO表空間為新的UNDO表空間 , 動態更改spfile配置檔案;
SQL> alter system set undo_tablespace=undotbs2 scope=both;
System altered.9.驗證當前資料庫的 UNDO表空間
SQL> show parameter undoNAME TYPE VALUE
------------------------------------ ----------- --------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS29. 等待原UNDO表空間所有UNDO SEGMENT OFFLINE;
select usn,xacts,status,rssize/1024/1024,hwmsize/1024/1024, shrinks from v$rollstat order by rssize;select t.segment_name,t.tablespace_name,t.segment_id,t.status from dba_rollback_segs t;
SEGMENT_NAME TABLESPACE_NAME SEGMENT_ID STATUS
1 SYSTEM SYSTEM 0 ONLINE
2 _SYSSMU1$ UNDOTBS1 1 OFFLINE
3 _SYSSMU2$ UNDOTBS1 2 OFFLINE
4 _SYSSMU47$ UNDOTBS1 47 OFFLINE上面對應的UNDOTBS1還原表空間所對應的回滾段均為OFFLINE
10.到$ORACLE_HOME/dbs/init$ORACLE_SID.ora如下內容是否發生變更:
#cat $ORACLE_HOME/dbs/initddptest.ora
……
*.undo_management=’AUTO’
*.undo_retention=10800
*.undo_tablespace=’UNDOTBS2’
……如果沒有發生變更請執行如下語句:
SQL> create pfile from spfile;
File created.
11. 刪除原有的UNDO表空間;
SQL> drop tablespace undotbs1 including contents;最後需要在重啟資料庫或者重啟計算機後到儲存資料檔案的路徑下刪除資料檔案(為什麼要手動刪除呢:以上步驟只是刪除了ORACLE中undo表空間的邏輯關係,即刪除了資料檔案在資料字典中的關聯,不會自動刪除項關聯的資料檔案)。drop tablespace undotbs1 including contents and datafiles;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2146707/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- undo 表空間滿了的處理方法
- ORACLE 中undo表空間爆滿的解決方法Oracle
- sysaux 表空間爆滿處理方法UX
- Oracle undo表空間爆滿的解決Oracle
- undo表空間佔用磁碟空間滿案例處理
- oracle中undo表空間丟失處理方法Oracle
- 記一次ORACLE的UNDO表空間爆滿分析過程Oracle
- undo表空間故障處理
- UNDO表空間損壞的處理
- system表空間爆滿解決方法
- oracle sysaux表空間滿了處理辦法OracleUX
- oracle undo 表空間Oracle
- undo表空間損壞的處理過程
- 處理TEMP表空間滿的問題
- Oracle undo 表空間管理Oracle
- oracle重建UNDO表空間Oracle
- oracle undo表空間管理Oracle
- 【UNDO】使用重建UNDO表空間方法解決UNDO表空間過大問題
- oracle UNDO表空間一個bug——undo表空間快速擴充套件Oracle套件
- Oracle - 回滾表空間 Undo 的整理Oracle
- Oracle的UNDO表空間管理總結Oracle
- undo表空間滿導致的ogg discard檔案寫滿
- UNDO表空間下的資料檔案被誤刪除後的處理方法
- UNDO表空間不足解決方法
- 18_深入解析Oracle undo原理(2)_undo表空間使用率100%問題處理Oracle
- 表空間滿的解決方法
- ORACLE線上切換undo表空間Oracle
- Oracle undo表空間切換(ZT)Oracle
- oracle回滾段 undo 表空間Oracle
- ORACLE撤銷表空間(Undo Tablespaces)Oracle
- UNDO表空間損壞,爆滿,ORA-600[4194]/[4193]錯誤解決
- Oracle Temp臨時表空間處理Oracle
- oracle 表空間 不足時如何處理Oracle
- undo表空間不能回收的解決方法
- oracle的還原表空間UNDO寫滿磁碟空間,解決該問題的具體步驟Oracle
- 自動undo表空間模式下切換新的undo表空間模式
- 理解UNDO表空間
- Oracle undo 表空間使用情況分析Oracle