[20210527]rman與undo表空間備份.txt

lfree發表於2021-06-02

[20210527]rman與undo表空間備份.txt

--//UNDO表空間主要用於儲存前映象資料,這些資料在回滾以及恢復過程中可能被用到。

--//一般生產資料庫的UNDO表空間可能會變得非常巨大,甚至包括多個資料檔案,而備份完整的UNDO資料檔案在恢復時一般可能用到的比
--//例很小。所以UNDO的很大一部分備份是多餘的,在Oracle11g中,Oracle引入了一個新的特性RMAN UNDO備份最佳化。

--//在RMAN備份UNDO表空間時,提交事務的UNDO資訊將不再備份,這個特性隨RMAN強制啟用,看來這一特性的好處是不容置疑的。

--//我以前做過這方面的測試,實際上當時想驗證如果使用這個備份來恢復後執行select * from t as of scn XXXXX的操作會報ora-01555錯誤.
--//結果似乎沒有再現問題.差不多一個半小時後的備份才會出現ora-01555錯誤.

--//我看了我當時的測試:http://blog.itpub.net/267265/viewspace-2122341/

SCOTT@book> select current_scn,sysdate from v$database ;
 CURRENT_SCN SYSDATE
------------ -------------------
 13244616644 2016-07-21 09:50:04

SCOTT@book> update t set name='1234567890' ;
100 rows updated.

SCOTT@book> commit ;
Commit complete.
--//我已經提交。
....

$ strings /home/oracle/backup/UNDOTBS1_6crb8fk0_1_1 | grep abcdefghijklmnz|wc
      0       0       0
--//這樣備份相關的資訊已經不存在。無法找到abcdefghijklmnz字串。
$ ls -l UNDOTBS1*
-rw-r----- 1 oracle oinstall 6127616 2016-07-21 10:32:28 UNDOTBS1_6arb8c9r_1_1
-rw-r----- 1 oracle oinstall 6397952 2016-07-21 11:06:24 UNDOTBS1_6brb8e9g_1_1
-rw-r----- 1 oracle oinstall 2940928 2016-07-21 11:29:04 UNDOTBS1_6crb8fk0_1_1
--//可以發現備份UNDOTBS1_6crb8fk0_1_1比原來小一些。
--//注:第一次備份集我已經刪除了。
$ strings /home/oracle/backup/UNDOTBS1_6brb8e9g_1_1 | grep abcdefghijklmnz|wc
    100     100    1865
--//而11:06分的備份還存在。

--//有朋友介紹,Undo optimization 改變從all undo not needed到undo not in use older than 1 hour,很明顯我的測試還是存在一些
--//差異,我當時的測試11:06備份還可以找到對應的字串abcdefghijklmnz,直到11:29分的備份才沒有對應的字串abcdefghijklmnz.
--//也許還有什麼別的因素控制這個改變.

--//找到一個連結:

Bug 6399468: UNDO OPTIMIZATION
====> Undo optimization was changed from 'all undo not needed' to 'undo not in use older than 1 hour'

In unpublished bug , the Undo optimization was changed from 'all undo not needed' to 'undo not in use older than 1
hour'.

--//不想花時間做這方面的測試,僅僅做一個記錄.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2775023/,如需轉載,請註明出處,否則將追究法律責任。

相關文章