利用AUL在没有任何备份的情况下恢复被truncate的表.docx

利用AUL在没有任何备份的情况下恢复被truncate的表.docx

ID:59362245

大小:17.51 KB

页数:6页

时间:2020-09-04

利用AUL在没有任何备份的情况下恢复被truncate的表.docx_第1页
利用AUL在没有任何备份的情况下恢复被truncate的表.docx_第2页
利用AUL在没有任何备份的情况下恢复被truncate的表.docx_第3页
利用AUL在没有任何备份的情况下恢复被truncate的表.docx_第4页
利用AUL在没有任何备份的情况下恢复被truncate的表.docx_第5页
资源描述:

《利用AUL在没有任何备份的情况下恢复被truncate的表.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、我们经常会因为各种误操作而truncate了表。这时,如果有rman备份或者是闪回,可以恢复这个表,否则,基本判定这个表的数据为不可找回了。但rman或者是闪回数据库都是把一个数据库恢复到一个点。这样后面至truncate表之后这段时间内的新数据都会丢失了,也不是最完美的解决办法。因此oracle的truncate跟linux的rm–rf*是有异曲同工之妙(害)。那有没有工具或者是办法来解决这个问题呢,答案是有的。首先是BBED,不过全二制码的操作,可直接对数据库的物理文件进行二进制修改,不过不是对Oracle非常自信的人,一

2、般是不敢使用。另外,Oracle自己开发一个dul的工具,然后淘宝的dcba团队跟恩墨的老熊分别进行了改造成了aul,可以方便的恢复数据,当然,你找他们完全是OK的,不过,¥,你懂的。因为我们的所有的库都不是我们自己掌管,因为如果发生了truncate的情况,基本是找不回来的。假如自己的一些QA库或者是可以远程可数据文件共享的,则可恢复。下面我用一个测试环境来演示下。假定我们现在truncate了一张表,模拟下:SQL>createtableabcasselect*fromdba_objectswhererownum<101;

3、Tablecreated.SQL>selectcount(*)fromabc;COUNT(*)----------100SQL>selectobject_idfromuser_objectswhereobject_name='ABC';OBJECT_ID----------18306SQL>ALTERSYSTEMCHECKPOINT;Systemaltered.SQL>TRUNCATETABLEABC;Tabletruncated.SQL>ALTERSYSTEMCHECKPOINT;Systemaltered.假设如果此表非常

4、重要,必须要恢复。我们先进行一下准备工作,获得这个库所包含的数据文件的具体路径:SQL>ALTERDATABASEBACKUPCONTROLFILETOTRACE;Databasealtered.SQL>selectvaluefromv$diag_infowherenamelike'Default%';VALUE--------------------------------------------------------------c:oraclediagrdbmsp2emonp2emontracep2emon

5、_ora_6716.trc我们看下转储出来的控制文件,截取到datafile部分:DATAFILE'D:ORADATAP2EMONSYSTEM01.DBF','D:ORADATAP2EMONSYSAUX01.DBF','D:ORADATAP2EMONUNDOTBS01.DBF','D:ORADATAP2EMONUSERS01.DBF'CHARACTERSETAL32UTF8;转储的控制文件已经告诉了我们们数据库的字符集,当然自己查也可以,我们把它转为编码模式:selectvaluefromnls_dat

6、abase_parameterswhereparameter=upper('nls_characterset');selectnls_charset_id('AL32UTF8')fromdual;结果是873,我们再设置下环境变量,AUL要读取当前数据库的实体数据文件,要编写一个小配制文件,来告诉它具体的路径:编写数据文件列表保存一个文件比如:db.txt,每行一个数据文件FILE#RFILE#FILENAME,FILE#,RFILE#不要求很准确,AUL能帮助我们搞定的;FILENAME一定要准确。文件内容如下:11D:O

7、RADATAP2EMONSYSTEM01.DBF21D:ORADATAP2EMONUNDOTBS01.DBF31D:ORADATAP2EMONSYSAUX01.DBF41D:ORADATAP2EMONUSERS01.DBF再看下AUL设置,主要是字节及字符集等,AUL下输入SET可以看到设置选项://oracle数据块的大小,可以从参数文件及showparameterblock_size查看SETBLOCK_SIZE{2048

8、4096

9、8192

10、16384

11、32768}//oracle数据文件所处平台字

12、节设置,windows下设置LITTLESETBYTE_ORDER{BIG

13、LITTLE}//设置恢复的数据文件中列间隔付,采用默认即可SETFIELD_TAGfield_tag//设置恢复的数据文件中行结束符,采用默认即可SETRECORD_TAGrecord_tag//恢

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。