欢迎来到天天文库
浏览记录
ID:36806859
大小:1.61 MB
页数:36页
时间:2019-05-15
《基于Oracle数据库的数据防护》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Oracle数据库的数据防护演讲嘉宾:熊军magic007cn@gmail.comAboutMe云和恩墨西区技术总监OracleACE超过10年数据库专业经验独立开发出Oracle恢复软件ODU个人网站:http://www.laoxiong.net数据有多重要?四个小故事之一某准金融系统,使用了两套存储,其中一套存储掉电,大量数据损坏。没有物理备份,只有数天前的逻辑备份。在线日志文件在两套存储上有冗余,挽救了很多数据。四个小故事之二某公司生产机房在香港,容灾机房在广州,通过异步LVM同步的方式进行容灾。生产系统存储故障,以为容灾机房已经同步到最新,
2、实际并没有。由于维护操作不当,丢失一个归档文件,导致约10分钟的数据丢失。四个小故事之三某省级系统跨三个机房容灾。由于某机房网络故障,进行切换,切换后数据文件丢失。用RMAN备份恢复时,发现磁带介质上归档备份丢失。四个小故事之四某运营商的一套重要系统,个别数据文件损坏。恢复时发现某些归档的备份信息已经不在catalog中,但实际备份文件还在磁带库上。用了比正常恢复多得多的时间。备份时rman的输出日志帮助恢复归档。数据面临的风险人为误操作应用软件BUG数据库BUG文件损坏或丢失磁盘损坏灾难或自然灾害如何保护数据?备份重于一切容灾正确的处理方法备份恢复原理
3、事务级一致性使用日志前滚所有更改使用UNDO回滚未提交事务crashrecovery任意时刻,内存修改过的块的数据总是比数据文件上的块新。Buffer事务提交时,redo会从logbuffer写cache入到onlineredologfileCrash时,buffercache中修改过的块的事务可能被提交,也可能没有Crash时,buffercache中修改过的数据日志文件文件块的日志可能已经写入日志文件,也可能没有写入数据文件的块,其redo一定是写入到了日志文件中crashrecovery恢复时,使用onlineredologfileBu
4、ffer恢复数据块到崩溃时的状态。cache有可能崩溃时修改过的块的日志没有写入onlineredologfile,因此不能得到恢复。但是这样的块的事务一定是没有提交的。数据日志文件文件transactionrecoveryCrashrecovery完成后,使用UNDO段头事务表查找未提交事务。回滚未提交事务。此时数据库已经可以打开。Open阶段报错,可能是一致性读出错,UNDO表而不是因为smon在事务回滚。空间关于redo的例外PL/SQL循环中的commitcommit_write参数:'{IMMEDIATE
5、BATCH},{WAIT
6、N
7、OWAIT}'Commitwrite语句介质恢复数据文件头的checkpointcount控制文件中记录的数据文件的checkpointcount文件头上的checkpointrbaRMAN备份在线热备份物理备份可以进行数据回溯要求归档模式RMAN备份检查点T1时间开始备份T2时间备份完成T1至T2时间点的归档不可缺少V$backup_datafile中的ABSOLUTE_FUZZY_CHANGE#列exp/expdp备份表之间数据可能不一致只能恢复到备份时刻恢复部分数据时较快跨平台和版本支持备份介质备份一定不要放在生产库所在硬盘上备份要放在专用的存储介
8、质上备份的catalog尽量使用catalog库control_file_record_keep_time参数Blockchangetracking提高增量备份速度Alterdatabaseenableblockchangetrackingusingfile‘’;BCT文件每个实例1个BCT文件32K可以记录7686M大小数据块的变更信息BCT文件的变化增加数据文件时,BCT中分配新的空间删除表空间/数据文件时,清除数据更改块时,如果相应位还没设成1,就设置成1BCT文件的变化增量备份时,BCT分配一个新的位图版本(一共8个版本)新的版本(current
9、version)startSCN为此次增量备份的checkpointscn上一个版本的startSCN为前一次增量备份的checkpointscn,endscn为本次增量备份的checkpointscn防范误操作和应用软件BUG权限限制和操作限制闪回Flashback日志挖掘logminer权限限制和操作限制最小权限化原则使用触发器限制DDL操作createorreplacetriggerSYS.DDL_AUDIT_TRIGGERbeforeddlondatabasedeclare...selectcount(*)intol_tracefromdualw
10、herelower(l_str_stmt)like'%drop%table%'o
此文档下载收益归作者所有