日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 原理:UNDO表空间

發布時間:2024/10/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 原理:UNDO表空间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UNDO表空間又稱為,回滾表空間,撤銷表空間。Undo segment保存在UNDO 表空間,一個數據庫可以有多個UNDO表空間,但是在同一時刻中,只能使用同一個UNDO表空間。

一、UNDO表空間的作用和機制

對于DML語句,只要修改了數據塊,Oracle就會把原來修改前的數據塊保留下來,存儲在Undo segment (回滾段),當執行rollback操作時,把原先的數據重新覆蓋回來。回滾段存放在UNDO表空間中。UNDO表空間的管理分為手動管理和自動管理。在11g中默認是采用自動管理模式。

UNDO的作用:把原來修改前的數據塊保留下來。主要用于 一致性讀,回滾事務,實例恢復。

一致性讀的例子:用戶 A 執行一個SQL查詢操作select * from salary_tbl?.需要1分鐘。此時用戶B執行了

update?salary_tbl set?salary=2000 where?salary = 1000; 那么用戶A查詢的數據??salary 是1000 而不是2000,當前時刻查詢的數據。如果UNDO表空間大小不足會把UNDO的空間進行覆蓋,此時查詢原來的數據就查詢不到了,此時報ORA-1555錯誤:snapshoot too old? ?

數據庫coredown后的實例恢復:是在 SMON進程完成前滾并打開數據庫以后發生,SMON進程回去查看UNDO SEGMENT第一個數據塊中記錄的事務表,在數據庫宕機時將沒有提交也沒有回滾的事物全部回滾。

undo_retention :為UNDO塊中的屬性,決定了undo塊中的數據至少保存多少秒。例如一個100秒的查詢,undo_retention為50。如果在UNDO空間不足的情況下會優先重置過期的數據。如果沒重置則還可以查詢,如果重置了數據,那么此時100秒的查詢操作就會報ORA-1555錯誤。

retention garentee :?為UNDO塊中的屬性,10g開始的新特性。確保 UNDO段中的數據未到?undo_retention 絕不會被覆蓋。

所以利用UNDO表空間的優先順序是: 空undo數據塊 >undo_retention 到期的數據塊 >未設置retention garentee的數據塊 >報錯

?

二、UNDO表空間的相關操作

查詢表空間select * from dba_tablespaces. 。 只要字段??CONTENTS的值是UNDO 就是UNDO表空間 ,

查看UNDO表空間管理方式? : >>??show parameter undo_management

創建UNDO表空間:

create undo tablespace temp2 tempfile 'D:\ORACLE\ORADATA\ORCL\undo2_01.dbf' size 10m autoextend on;

給表空間分配臨時文件: alter tablespace <spacesname> add tempfile '<路徑/文件名.dbf>' size? [100m] autoextend on ;

查看默認UNDO表空間:? ??show parameter undo

系統默認UNDO表空間切換 alter system? set undo_tablespace = '<spacesname>';

啟用[取消]?retention garentee: alter tablespace <spacename>?retention [ [garentee]? or [nogarentee] ];

查詢?retention garentee 狀態:?select tablespace_name,a.retention from dba_tablespaces a ;

更改undo_retention :??alter system set undo_retention ? =1000;

查詢UNDO 表空間使用情況 :?select * from v$undostat ;? (UNDOBLKS 使用的數據塊? ?TXNCOUNT 事物數? BEGIN_TIME 和END_TIME UNDO生效時間和結束時間)

?

三、11g 的UNDO表空間的新特性

?RMAN備份恢復UNDO表空間:是一個關于UNDO表空間的備份優化,在11g之前,都是自動把UNDO表空間的所有進行備份。現實的生產環境中,UNDO表空間的歷史數據都是十分龐大的,備份用不上的數據不緊占空間,而且影響執行效率。RMAM備份:已經提交數據就不需要再備份了 。

總結

以上是生活随笔為你收集整理的Oracle 原理:UNDO表空间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。