成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

帶你深入了解Oracle數據庫的熱備份原理

瀏覽:103日期:2023-11-28 18:07:27
這篇論壇文章(賽迪網技術社區)深入分析了Oracle數據庫的熱備份原理,更多內容請參考下文。

我們都知道oracle的備份有幾鐘方式,冷備,熱備,rman,imp等,我們注意到當我們采取熱備的時候,需要對每個要備份的表空間置為backup模式。通常的熱備腳本都是這樣的:

alter tablespace XXX begin backup;

cp XXX ....

alter tablespace XXX end backup;

(這里需要注意一點,oracle的最小存儲單位是一個數據塊,一個塊的大小通常設置為8k,而操作系統的塊通常是512bytes,這樣的話一個oracle的數據由很多個操作系統的塊組成。而且對于一個數據文件來說,它的所有塊對應的操作系統的塊并不是按順序存儲的,當運行cp等操作系統命令時并不能指定從那個oracle數據塊開始拷貝。)當open數據庫的時候,oracle會去比較控制文件中數據文件記錄和數據文件頭的checkpoint cnt,如果兩者相同,則判斷不需要介質恢復,如果不同,這時候oracle就會報某某文件需要介質恢復。然后拷貝回數據文件備份我們開始recover,這時候就從上次做備份時的scn開始恢復,運用日志,直到恢復結束。當cp數據文件時,比如說我們拷貝的第一個塊可能是scn為100的數據塊,當我們完成這個塊的拷貝后,這個塊有可能被別的進程多次修改,scn變為900。我們知道當數據庫發生檢查點時會去更新數據文件頭和控制文件中的checkpoint scn,如果當我們在cp數據文件的同時發生了n次checkpoint,這時候數據文件頭的scn可能被更新了很多次。這時候cp的進程去拷貝數據文件頭所在的操作系統塊,可能這個數據文件頭的塊因為被checkpoint了很多次導致它的scn為1000,這時候整個數據文件會出現不一致,當用這個備份文件去恢復時,恢復進程會從scn=1000開始恢復,這樣的話開始那個scn=100的塊將丟失從scn100-scn1000的數據,因為數據塊并不應用scn在1000以前的日志,而且這樣做的話可能出現一些數據塊的corruption,所以不置成backup模式備份的話并不可取。當然,如果你能確保當cp的時候不發生checkpoint,或者你的操作系統塊的大小不小于oracle的數據塊大小,這些情況下不置backup mode拷貝出來的文件也是有效的。

現在我們知道了為什么不能不設置backup模式,下面來講講alter tablespace XXX begin backup做了什么?

當數據文件置于backup模式時,oracle會去鎖定數據文件頭,這時候數據庫發生檢查點的話將不會修改文件頭的checkpoint scn,而只是增加checkpoint cnt,所以不管執行cp的時候操作系統塊的拷貝順序是如何,oracle總會從文件頭的scn開始恢復,這樣的話也就避免了數據丟失和數據塊corruption.如果大家用的是rman來備份,那么就不會有這個問題,因為rman備份的時候rman會去對比數據塊的頭尾標志,如果發現不一致,那么它將會再去讀這個塊,直到讀到一致的塊才往備份集里寫。

但是alter tablespace XXX begin backup帶來的另一個問題是會導致產生多余的日志,通過一個小小的試驗就可以證明這一點。

SQL> select name,value from v$sysstat where name='redo size';

NAME VALUE

--------------------------------------------------- ----------

redo size 43408

SQL> update test set a=a;

1 row updated.

SQL> commit;

Commit complete.

SQL> select name,value from v$sysstat where name='redo size';

NAME VALUE

--------------------------------------------------------------

redo size 44060

SQL> ALTER SYSTEM DUMP LOGFILE '/netappredo/redo05.log';

System altered.

一個update的動作產生44060-43408=652bytes的redo,把表空間置為backup mode:

SQL> alter tablespace test begin backup;

Tablespace altered.

SQL> select name,value from v$sysstat where name='redo size';

NAME VALUE

------------------------------------------------------------------

redo size 44732

SQL> update test set a=a;

1 row updated.

SQL> commit;

Commit complete.

SQL> select name,value from v$sysstat where name='redo size';

NAME VALUE

-------------------------------------------------------------------

redo size 53560

SQL> alter tablespace test end backup;

Tablespace altered.

一個update的動作產生53560-44732=8828bytes的redo,看看到底是記了些什么?

SQL> ALTER SYSTEM DUMP LOGFILE '/netappredo/redo05.log';

System altered.

REDO RECORD - Thread:2 RBA: 0x00004e.000000b0.0128 LEN: 0x01b0 VLD: 0x01

SCN: 0x0000.19ed24f7 SUBSCN: 1 06/29/2004 15:05:32

CHANGE #1 TYP:0 CLS:29 AFN:33 DBA:0x08400029

SCN:0x0000.19ed24f2 SEQ: 1 OP:5.2

...... (改動向量1,記載對undo header事務表的修改)

CHANGE #2 TYP:0 CLS:30 AFN:33 DBA:0x0840002e

SCN:0x0000.19ed24f0 SEQ: 1 OP:5.1

...... (改動向量2,記載對undo block的修改)

CHANGE #3 TYP:2 CLS: 1 AFN:51 DBA:0x0cc0000f

SCN:0x0000.19ed24e8 SEQ: 1 OP:11.5

KTB Redo (改動向量3,記載對數據塊的修改,

也就是在數據塊上執行update test set a=a)

op: 0x11 ver: 0x01

op: F xid: 0x0007.001.00014ece uba: 0x0840002e.0859.38

Block cleanout record, scn: 0x0000.19ed24f7 ver: 0x01 opt: 0x02,

entries follow...

itli: 1 flg: 2 scn: 0x0000.19ed24e8

KDO Op code: URP row dependencies Disabled

xtype: XA bdba: 0x0cc0000f hdba: 0x0cc0000b

itli: 2 ispac: 0 maxfr: 4858

tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 0

ncol: 1 nnew: 1 size: 0

col 0: [ 2] c1 02

CHANGE #4 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ: 0 OP:5.20

......(改動向量4,一些標記)

我們看到了正常的日志記錄,此外還有些block cleanout及回滾段改變的日志記錄,但是相比較不是backup模式的日志來說多了這一部分。

Log block image redo entry

Dump of memory from 0x0AE48820 to 0x0AE4A808

AE48820 00280001 00002C32 19ED24E6 1FE80000 [..(.2,...$......]

AE48830 00321F02 0CC00009 00210005 000307F1 [..2.......!.....]

AE48840 0840000E 0021100C 00002001 19ED24E8 [..@...!.. ...$..]

AE48850 001F0016 0001A94C 0840007C 000D0C08 [....L...|.@.....]

AE48860 00008000 19ED2468 00000000 00000000 [....h$..........]

AE48870 00020100 00160001 1F791F8C 00001F79 [..........y.y...]

AE48880 1F920002 0F88FFFF 0ED00F2C 0E180E74 [........,...t...]

AE48890 0D600DBC 0CA80D04 0BF00C4C 0B380B94 [..`.....L.....8.]

AE488A0 0A800ADC 09C80A24 0910096C 085808B4 [....$...l.....X.]

AE488B0 07A007FC 06E40744 06240684 056405C4 [....D.....$...d.]

......

這一部分是對更改的數據塊做的一個鏡像,把這個塊完全記錄到redo里面去了,但是為什么要這么做呢。

這就又牽扯到一個概念,'block split',當數據文件在備份cp時,因為oracle數據塊和操作系統塊的差異,一個數據塊可能由16個操作系統塊組成(8k 數據塊,512bytes 系統塊),這樣的話可能出現一個數據塊包含了幾個不同版本的操作系統塊,會導致數據塊的不一致,所以在備份模式下如果有語句對備份塊產生更新,那么oracle會先把當前塊復制一份到redo,當恢復的時候如果碰到數據塊不一致就從redo把這個鏡像拷貝回去,然后在這個一致性的鏡像開始恢復。 如果使用rman來備份可以避免產生過多的塊,就像上面所說的,rman會去建議塊的一致性,所以不用復制鏡像塊到日志。

標簽: Oracle 數據庫
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲影音一区| 国产精品白丝jk黑袜喷水| 精品视频一区三区九区| 欧美人动与zoxxxx乱| 欧美国产精品专区| 亚洲一区在线视频| 国产真实乱偷精品视频免| 欧美日韩天堂| 91久久线看在观草草青青| 精品国产91久久久久久久妲己 | 精品国产伦一区二区三区观看方式| 麻豆精品一区二区综合av| 精品在线一区二区| 在线不卡视频| 在线精品视频一区二区三四| 欧美国产精品专区| 91论坛在线播放| 欧美性色欧美a在线播放| 国产精品久久久久久久久免费相片| 免费看欧美美女黄的网站| 欧美午夜影院| 国产精品嫩草99a| 国产在线精品一区二区三区不卡| 亚洲成人原创| 国产精品欧美极品| 好吊一区二区三区| 欧美一区二区成人| 亚洲精品乱码久久久久久日本蜜臀| 激情五月播播久久久精品| 久久综合九色| 中文字幕在线不卡视频| 夫妻av一区二区| 色综合久久久网| 国产精品第五页| 国产精品s色| 亚洲欧美色图小说| av中文字幕不卡| 欧美性一二三区| 久久精品国产秦先生| 国产精品手机在线| 国产精品免费aⅴ片在线观看| 欧美日韩日本国产亚洲在线| 中文字幕一区二区三区不卡 | 在线观看亚洲成人| 国产一区二区三区蝌蚪| 精品国产乱码久久久久久夜甘婷婷| 91亚洲精品乱码久久久久久蜜桃 | 欧美国产国产综合| 99re热精品| 久久久91精品国产一区二区精品| 日韩高清一级片| 亚洲欧洲在线一区| 久久久91精品国产一区二区精品| 欧美黄色大片网站| 欧美日韩大陆一区二区| 国产成a人无v码亚洲福利| 久久九九全国免费| 在线欧美三区| 天堂va蜜桃一区二区三区漫画版| 好吊色欧美一区二区三区视频| 樱桃国产成人精品视频| 91国模大尺度私拍在线视频| 国产成人免费视频网站 | 欧美日韩福利| 日韩欧美电影一二三| 久久成人18免费观看| 欧美变态tickling挠脚心| 国产精品原创巨作av| 国产免费成人在线视频| av网站免费线看精品| 自拍偷拍国产精品| 亚洲网站啪啪| 国产精品全国免费观看高清| 在线播放不卡| 久久99久久久久| 久久精品一区八戒影视| 亚洲尤物影院| 国产精品996| 国产精品久久看| 色婷婷综合久久久久中文一区二区| 国产传媒日韩欧美成人| 国产精品福利一区| 欧美在线高清视频| 欧美日韩国产综合视频在线| 五月婷婷久久丁香| 国产精品乱子乱xxxx| 免费在线观看视频一区| 久久久亚洲精华液精华液精华液 | 亚洲经典在线| 久久国产精品99精品国产 | 午夜精品久久久久久久| 日韩精品一区二| 新67194成人永久网站| 亚洲综合免费观看高清完整版在线| 欧美人妇做爰xxxⅹ性高电影 | 中文字幕一区二区三区av| 欧美性色黄大片| 欧美精品三级| 精品中文av资源站在线观看| 中文字幕在线播放不卡一区| 欧美性生活久久| 亚洲毛片网站| 国产激情一区二区三区四区| 国产精品久久网站| 在线播放日韩导航| 国产成人免费高清| 亚洲一二三四久久| 亚洲一区精彩视频| 99麻豆久久久国产精品免费| 亚洲国产中文字幕在线视频综合| 精品欧美一区二区久久| 久久一二三区| 影音先锋久久资源网| 高清国产一区二区三区| 亚洲成人av在线电影| 在线看一区二区| 国产中文一区| 国产伦精品一区二区三区免费迷| 亚洲视频免费在线| 精品电影一区二区| 欧美日韩精品欧美日韩精品一| 在线视频免费在线观看一区二区| 亚洲成人动漫av| 中文字幕精品三区| 欧美一级二级在线观看| 国产精品99一区二区| 黄色小说综合网站| 亚洲永久免费视频| 国产精品少妇自拍| 日韩三级在线观看| 欧美吞精做爰啪啪高潮| 国产日韩高清一区二区三区在线| 成人app在线| 亚洲码国产岛国毛片在线| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲精品系列| 欧美 日韩 国产在线| 国产毛片精品一区| 日本欧美韩国一区三区| 亚洲精品国产一区二区三区四区在线| 久久久久久免费毛片精品| 欧美伦理视频网站| 91成人免费在线| 欧美一区=区| 国产欧美日韩| 亚洲激情午夜| 国产精品国产精品| 不卡欧美aaaaa| 国产精品一区二区男女羞羞无遮挡| 亚洲成人免费观看| 一区二区三区加勒比av| 在线综合视频播放| 99xxxx成人网| 国产一区清纯| 午夜激情一区| 欧美一区二区在线| 不卡视频在线看| 国产91精品一区二区麻豆网站| 激情图区综合网| 免费成人av资源网| 日本伊人午夜精品| 日韩国产一区二| 午夜欧美视频在线观看| 亚洲国产综合色| 亚洲一区二区三区爽爽爽爽爽 | 欧美男人的天堂一二区| 日本精品视频一区二区| 久久一区二区三区四区五区 | 99国产精品99久久久久久粉嫩| 色综合久久中文字幕| 一区二区在线电影| 中文字幕一区在线观看视频| 国产女人18毛片水真多成人如厕| 久久久不卡网国产精品二区| 精品第一国产综合精品aⅴ| 精品日韩一区二区| www精品美女久久久tv| 久久综合九色欧美综合狠狠| 精品黑人一区二区三区久久| 精品国产乱码久久久久久免费| 久久色.com| 国产女人18毛片水真多成人如厕 | 久久se精品一区二区| 久久99蜜桃精品| 国产在线精品一区二区夜色| 国产一区二区精品久久| 国产精品1区2区3区| 成人av在线影院| 牛夜精品久久久久久久99黑人| 欧美福利电影在线观看| 欧美日韩在线不卡一区| 尤物在线精品| 亚洲一区二区三区欧美 | 久久久久久久久免费| 国产三级精品视频| 国产精品免费丝袜| 亚洲精选视频免费看| 天天综合网 天天综合色| 麻豆精品视频在线观看视频| 国产精品一区二区你懂的|