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

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

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

瀏覽:6日期:2023-11-24 11:02:59
我們都知道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 size44060 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 數據庫
主站蜘蛛池模板: 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 不锈钢发酵罐_水果酒发酵罐_谷物发酵罐_山东誉诚不锈钢制品有限公司 | 传爱自考网_传爱自学考试网 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 护栏打桩机-打桩机厂家-恒新重工 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 南京办公用品网-办公文具用品批发-打印机耗材采购 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 伺服电机维修、驱动器维修「安川|三菱|松下」伺服维修公司-深圳华创益 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 |