亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

關于Oracle數據庫熱備份腳本深入剖析

2024-08-29 13:51:07
字體:
來源:轉載
供稿:網友
我們都知道Oracle的備份有幾鐘方式,冷備,熱備,rman,imp等,我們注重到當我們采取熱備的時候,需要對每個要備份的表空間置為backup模式。通常的熱備腳本都是這樣的:
alter tablespace XXX begin backup;cp XXX ....alter tablespace XXX end backup;
(這里需要注重一點,Oracle的最小存儲單位是一個數據塊,一個塊的大小通常設置為8KB,而操作系統的塊通常是512B,這樣的話一個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 43408SQL> 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 44732SQL> 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 53560SQL> 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: 0x01SCN: 0x0000.19ed24f7 SUBSCN: 1 06/29/2004 15:05:32CHANGE #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.5KTB Redo (改動向量3,記載對數據塊的修改,也就是在數據塊上執行update test set a=a)op: 0x11 ver: 0x01 op: F xid: 0x0007.001.00014ece uba: 0x0840002e.0859.38Block cleanout record, scn: 0x0000.19ed24f7 ver: 0x01 opt: 0x02, entries follow... itli: 1 flg: 2 scn: 0x0000.19ed24e8KDO Op code: URP row dependencies Disabled xtype: XA bdba: 0x0cc0000f hdba: 0x0cc0000bitli: 2 ispac: 0 maxfr: 4858tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 0ncol: 1 nnew: 1 size: 0col 0: [ 2] c1 02CHANGE #4 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ: 0 OP:5.20......(改動向量4,一些標記)
我們看到了正常的日志記錄,此外還有些block cleanout及回滾段改變的日志記錄,但是相比較不是backup模式的日志來說多了這一部分。
Log block image redo entryDump of memory from 0x0AE48820 to 0x0AE4A808AE48820 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個操作系統塊組成(8KB 數據塊,512字節系統塊),這樣的話可能出現一個數據塊包含了幾個不同版本的操作系統塊,會導致數據塊的不一致,所以在備份模式下假如有語句對備份塊產生更新,那么Oracle會先把當前塊復制一份到redo,當恢復的時候假如碰到數據塊不一致就從redo把這個鏡像拷貝回去,然后在這個一致性的鏡像開始恢復。 假如使用rman來備份可以避免產生過多的塊,就像上面所說的,rman會去建議塊的一致性,所以不用復制鏡像塊到日志。


上一篇:Oracle中巧取指定記錄與巧用外關聯查詢

下一篇:Windows NT平臺下Oracle優化策略簡介

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男子天堂网| 色综合伊人色综合网| 91精品成人久久| 欧美在线视频网| 九九视频直播综合网| 久久亚洲精品一区| 欧美激情va永久在线播放| 亚洲精品电影久久久| 成人女保姆的销魂服务| 亚洲国模精品私拍| 亚洲第一在线视频| 国产日韩亚洲欧美| 91国偷自产一区二区三区的观看方式| 91精品国产99| 欧美激情欧美狂野欧美精品| 日韩欧美国产高清91| 国产精品午夜一区二区欲梦| 91高清在线免费观看| 亚洲老头同性xxxxx| 精品福利免费观看| 久久久久久久久久国产| 亚洲成人教育av| 亚洲国产一区二区三区在线观看| 欧美日韩在线影院| 色青青草原桃花久久综合| 欧美老肥婆性猛交视频| 亚洲美女又黄又爽在线观看| 国产日韩在线一区| 亚洲尤物视频网| 中文字幕亚洲欧美日韩在线不卡| 国模精品视频一区二区三区| 国产精品综合久久久| 日韩一级黄色av| 欧美激情视频给我| 亚洲成人在线网| 亚洲偷欧美偷国内偷| 日韩精品在线免费观看| 97国产在线观看| 一区二区欧美日韩视频| 国产精品一区二区女厕厕| 亚洲精品网站在线播放gif| 78色国产精品| 中文字幕亚洲欧美日韩2019| 国产精品小说在线| 欧美成人亚洲成人日韩成人| 国产精品久久久久国产a级| 日本高清不卡的在线| 亚洲小视频在线观看| 亚洲精品之草原avav久久| 欧美性猛交xxxx免费看久久久| 国产亚洲精品久久| 成人写真福利网| 狠狠躁夜夜躁久久躁别揉| 久久在精品线影院精品国产| 久久久女女女女999久久| 亚洲欧美中文字幕| 亚洲偷熟乱区亚洲香蕉av| 国产69精品久久久| 国产69精品久久久久9999| 亚洲男人天堂手机在线| 日韩中文字幕国产精品| 精品久久久999| 欧美噜噜久久久xxx| 国内精品视频久久| 国产精品扒开腿爽爽爽视频| 亚洲综合日韩中文字幕v在线| 色综合久久88色综合天天看泰| 日韩中文字幕免费看| 精品久久久久久久久中文字幕| 亚洲无线码在线一区观看| 日韩专区中文字幕| 一区二区三区四区在线观看视频| 国产精品自在线| 欧美黑人一区二区三区| 91久久夜色精品国产网站| 亚洲日本中文字幕免费在线不卡| 亚洲精品久久久久久下一站| 欧美精品精品精品精品免费| 91国产中文字幕| 精品久久久精品| 国产精品久久久久久av下载红粉| 国产精品日日做人人爱| 欧美午夜视频在线观看| 久久在线免费视频| 成人在线精品视频| 日韩影视在线观看| 国产精品网红福利| 亚洲欧美成人精品| 日韩av一区在线观看| 欧美乱妇高清无乱码| 久久影视电视剧免费网站| 色综合视频网站| 一本色道久久88亚洲综合88| 欧美日韩精品在线视频| 国产一区私人高清影院| 亚洲天堂网在线观看| 久久视频在线观看免费| 国产精品色午夜在线观看| 日韩在线中文视频| 国产欧美日韩综合精品| 国产精品久久国产精品99gif| 欧美黄色www| 综合激情国产一区| 国产欧美久久一区二区| 在线日韩第一页| 国产女精品视频网站免费| 亚洲精品狠狠操| 91免费精品国偷自产在线| 国色天香2019中文字幕在线观看| 国产在线视频欧美| 国产精品成人国产乱一区| 中日韩美女免费视频网址在线观看| 国产成人免费av电影| 福利二区91精品bt7086| 欧美激情免费观看| 国产精品video| 亚洲最大成人免费视频| 成人国产精品久久久| 国产视频亚洲精品| 国产欧美日韩精品在线观看| 7777免费精品视频| 国产精品稀缺呦系列在线| 久久国产精品久久精品| 亚洲国产欧美一区二区三区同亚洲| 日韩av大片免费看| 亚洲人午夜精品免费| 日本精品久久电影| 91av网站在线播放| 日本sm极度另类视频| 日本成熟性欧美| 精品福利在线看| 亚洲精品欧美日韩专区| 久久99精品久久久久久噜噜| 欧美精品久久久久久久免费观看| 亚洲一区二区在线播放| 日韩一区二区三区国产| 亚洲国产成人精品久久久国产成人一区| 国产成人精品免费久久久久| 久久精品国产成人精品| 亚洲精品国产精品国自产观看浪潮| 国产精品高潮呻吟视频| 91影视免费在线观看| 在线激情影院一区| 欧美国产激情18| 91探花福利精品国产自产在线| 欧美国产日产韩国视频| 欧美一级在线播放| 亚洲精品综合久久中文字幕| 国产精品一香蕉国产线看观看| 国产精品视频一| 人妖精品videosex性欧美| 欧美激情a在线| 欧美电影免费观看电视剧大全| 久久国产精品久久国产精品| 国产精品夜间视频香蕉| 亚洲精品视频免费| 精品人伦一区二区三区蜜桃免费| 欧美理论电影在线观看| 日韩在线视频网站| 亚洲电影免费观看高清完整版在线观看| 揄拍成人国产精品视频| 国产成人在线亚洲欧美| 成人在线免费观看视视频| 国产精品视频永久免费播放|