溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle UNDO表空間的管理

發布時間:2020-07-19 03:01:17 來源:網絡 閱讀:373 作者:你瞅啥Zz 欄目:關系型數據庫

UNDO表空間的管理是Oracle DBA最重要的日常工作之一,UNDO表空間用來暫時存儲DML操作的數據,其主要作用有:

1、事務回滾

2、實例恢復

3、讀一致性

4、閃回

下面是對UNDO表空間的一些操作

1、查看某個實例都有哪些表空間:select tablespace_name, contents from dba_tablespaces where contents = 'UNDO';

Oracle UNDO表空間的管理

我們也可以用show parameter undo_tablespace名稱查看,此命令只能查看當前默認UNDO表空間:

Oracle UNDO表空間的管理

當然,我們也可以查看表空間及其對應的數據文件:select substr(file_name,1,60) UNDO_FILES from dba_data_files where tablespace_name = 'UNDOTBS1' order by 1;

Oracle UNDO表空間的管理

查看UNDO表空間的大小、可用空間:

select * from (select

     a.tablespace_name,

     sum(a.bytes)/(1024*1024) total_space_MB,

     round(b.free,2) Free_space_MB,

     round(b.free/(sum(a.bytes)/(1024*1024))* 100,2) percent_free

    from dba_data_files a,

     (select tablespace_name,sum(bytes)/(1024*1024) free  from dba_free_space

     group by tablespace_name) b

   where a.tablespace_name = b.tablespace_name(+)

     group by a.tablespace_name,b.free)

 where tablespace_name = 'UNDOTBS1';

Oracle UNDO表空間的管理

2、創建UNDO表空間:

create undo tablespace undotbs3 datafile '/data1/oradata/undotbs03_1.dbf' size 100M autoextend on next 20M maxsize 500M;

上面命令中,指定UNDO表空間名稱、對應數據文件、初始大小、自動擴展、每次擴展大小、最大擴展到多大

給UNDO表空間增加數據文件:

ALTER TABLESPACE UNDOTBS3 ADD DATAFILE ''/data1/oradata/undotbs03_2.dbf' SIZE 1024M AUTOEXTEND ON NEXT 100M MAXSIZE 2048M;

3、切換默認UNDO表空間:

alter system set undo_tablespace = UNDOTBS3;

4、刪除不用的UNDO表空間:

首先查找都有哪些UNDO表空間及其名字;

然后查找默認UNDO表空間;

之后查找要刪除的UNDO表空間的數據文件;

刪除不用的UNDO表空間:drop tablespace UNDOTBS2;

Oracle UNDO表空間的管理

這還不算完,在數據庫中刪除表空間后,其數據文件還在物理磁盤上存在,需要刪除:

Oracle UNDO表空間的管理

5、我們可以通過dba_undo_extents查看UNDO表空間的狀態:

Oracle UNDO表空間的管理

其中STATUS的狀態有三個:UNEXPIRED、EXPIRED、ACTIVE

ACTIVE說明此時有大量的DML操作在寫UNDO,UNEXPIRED狀態是由ACTIVE狀態的數據轉換過來的,至于UNEXPIRED狀態何時轉換成EXPIRED,這個由當前系統的undo retention決定。

我們也可以通過v$UNDOSTAT來查看詳細的UNDO信息:

SELECT TO_CHAR(BEGIN_TIME, 'MM/DD/YYYY HH24:MI:SS') BEGIN_TIME,TO_CHAR(END_TIME, 'MM/DD/YYYY HH24:MI:SS') ND_TIME,

UNDOTSN, UNDOBLKS, TXNCOUNT, MAXCONCURRENCY AS "MAXCON" FROM v$UNDOSTAT WHERE rownum <= 100;

Oracle UNDO表空間的管理

上面各列中:

BEGIN_TIME表示每條記錄UNDO事務開始的時間

END_TIMEE表示每條記錄UNDO事務結束的時間

上面每條記錄的間隔是10分鐘

UNDOTSN 在這段時間undo事務的數量

UNDOBLKS在這段時間占用的undo塊的數量

TXNCOUNT事務的總數量

MAXCON這些UNDO事務過程中的最大數據庫連接數

6、更改UNDO RETENTION

alter system set UNDO_RETENTION = 1800;

7、涉及到UNDO表空間的系統表:

    V$UNDOSTAT

    V$ROLLSTAT

    V$TRANSACTION

    DBA_UNDO_EXTENTS

    WRH$_UNDOSTAT

    WRH$_ROLLSTAT


更多精彩Oracle內容 請關注我:

Oracle UNDO表空間的管理

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女