电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:38日期: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 數據庫
主站蜘蛛池模板: 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | LINK FASHION 童装·青少年装展 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 99文库_实习生实用的范文资料文库站 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 火锅底料批发-串串香技术培训[川禾川调官网] | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 【同风运车官网】一站式汽车托运服务平台,验车满意再付款 | 电动高尔夫球车|电动观光车|电动巡逻车|电动越野车厂家-绿友机械集团股份有限公司 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 淘剧影院_海量最新电视剧,免费高清电影随心观看 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 首页 - 军军小站|张军博客| 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 直齿驱动-新型回转驱动和回转支承解决方案提供商-不二传动 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 阳光1号桔柚_无核沃柑_柑橘新品种枝条苗木批发 - 苧金网 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 |