is902ea1量产工具-(is903量产工具)
来源:191路由网 2022-11-20 07:11:35
本文的truncate恢复仅针对堆表(非堆表)lob)实际上,对于分区表和lob段的恢复原理是一样的。
根据之前对truncate原理分析,truncate是否不能通过闪回查询或闪回查询logminer恢复的方法,因为truncate操作不会对数据块进行任何操作。那么truncate如何恢复?以下是几种常见的方法供参考。
数据库闪回(要求flashback database打开,必要的闪回日志和归档日不能丢失,因为闪回数据库不仅需要闪回日志,还需要归档日志。)异机恢复(需要可用的备份和必要的归档日志)TSPITR(需要可用的备份和必要的归档日志)数据库闪回和TSPITR对数据库影响很大。
假如数据库flashback database如何在没有备份的情况下恢复?
本文介绍了两种不常见的修复元数据方法:
ODU(要求数据不被覆盖,如果数据被覆盖,也可以最大限度地恢复数据)通过修复元数据来恢复truncate(要求有truncate操作时的redo而且数据不被覆盖,如果数据被覆盖,也可以最大限度地恢复数据)01
ODU的方式
ODU是前Oracle ACED 熊军开发的专业强大Oracle恢复工具适用于所有场景的恢复,具体查看http://www.oracleodu.com/cn/,这里简单介绍一下ODU恢复truncate的原理。
ODU恢复truncate原理是通过scan生成一个数据文件ext.odu根据表格的文件dataobj#具体扫描extent然后通过信息ext.odu需要恢复的表数据可以导出,最后导入数据库。
02
修复元数据的方法
根据之前对truncate原理分析,truncate本质是修改数据块而不修改数据块segment header的data_object_id,hwm,extent map,aux map实现清空表等信息的目的,还涉及数据字典基表和L1、L修改2位图块,需要确认哪些元数据块和数据字典需要通过修改元数据进行恢复。
通过10046的跟踪发现(可以验证,需要flush shared pool和buffer cache),全表扫描查询或通过全表扫描查询rowid查询一定会访问segment header,但是没有访问L1、L2位图块的,访问的数据字典基表包括user$、obj$、tab$、tab_stats$、ts$、seg$、ind$、ind_stats$、col$、objauth$、cdef$、histgrm$、hist_head$,以10046跟踪为重点truncate操作有变更的基表obj$、tab$、seg$、tab_stats$(不管统计信息)seg$只要经过测试block#、file#、ts#不被改变就不需要理会,但是truncate操作不会修改seg$的ts#、file#、block#的,具体测试过程如下:
SYS@TEST(test):1>select obj#,dataobj# from obj$ where owner# in (select user# from user$ where name='TEST') and name='T1'; OBJ# DATAOBJ#---------- ---------- 17284 17284SYS@TEST(test):1>select TS#,FILE#,BLOCK# from tab$ where OBJ#=17284; TS# FILE# BLOCK#---------- ---------- ---------- 9 4 290 SYS@TEST(test):1>update seg$ set blocks=1,extents=1,minexts=1,maxexts=1,extsize=1,bitmapranges=1,hwmincr=1,type#=1 where ts#=9 and file#=4 and block#=290; 1 row updated. SYS@TEST(test):1>commit; Commit complete. SYS@TEST(test):1>alter system flush shared_pool; System altered. SYS@TEST(test):1>select count(*) from test.t1; COUNT(*)---------- 14164 SYS@TEST(test):1>delete from seg$ where ts#=9 and file#=4 and block#=290; 1 row deleted. SYS@TEST(test):1>commit;Commit complete. SYS@TEST(test):1>select count(*) from test.t1;select count(*) from test.t1 *ERROR at line 1:ORA-00600: internal error code, arguments:[ktsircinfo_num1],[9],[4],[290],[],[],[],[],[],[],[],[]
因此,需要恢复的元数据块、数据字典基表和内容如下:
segment header(dataobj#、LHWM、HHWM、extent map、aux map以及extents个数)tab$(dataobj#)obj$(dataobj#)下面提供segment header信息对应offset:
segment header dump:
Extent Control Header ----------------------------------------------------------------- Extent Header:: spare1: 0 spare2: 0 #extents: 28 #blocks: 1664 last map 0x00000000 #maps: 0 offset: 2716 Highwater:: 0x01405b83 ext#: 27 blk#: 3 ext size: 128 #blocks in seg. hdr's freelists: 0 #blocks below: 1539 mapblk 0x00000000 offset: 27 Unlocked -------------------------------------------------------- Low HighWater Mark : Highwater:: 0x01405b83 ext#: 27 blk#: 3 ext size: 128 #blocks in seg. hdr's freelists: 0 #blocks below: 1539 mapblk 0x00000000 offset: 27 Level 1 BMB for High HWM block: 0x01405b80 Level 1 BMB for Low HWM block: 0x01405b80 -------------------------------------------------------- Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0 L2 Array start offset: 0x00001434 First Level 3 BMB: 0x00000000 L2 Hint for inserts: 0x01400769 Last Level 1 BMB: 0x01405b81 Last Level II BMB: 0x01400769 Last Level III BMB: 0x00000000 Map Header:: next 0x00000000 #extents: 28 obj#: 16840 flag: 0x10000000 Inc # 0 Extent Map ----------------------------------------------------------------- 0x01400768 length: 8 0x01402f48 length: 8 0x01402f50 length: 8 0x01402f58 length: 8 0x01402f60 length: 8 0x01402f68 length: 8 0x01402f70 length: 8 0x01402f78 length: 8 0x01402e80 length: 8 0x01402e88 length: 8 0x01402e90 length: 8 0x01402e98 length: 8 0x01402ea0 length: 8 0x01402ea8 length: 8 0x01402eb0 length: 8 0x01402eb8 length: 8 0x01403f80 length: 128 0x01404000 length: 128 0x01404080 length: 128 0x01404180 length: 128 0x01405800 length: 128 0x01405880 length: 128 0x01405900 length: 128 0x01405980 length: 128 0x01405a00 length: 128 0x01405a80 length: 128 0x01405b00 length: 128 0x01405b80 length: 128 Auxillary Map -------------------------------------------------------- Extent 0 : L1 dba: 0x01400768 Data dba: 0x0140076b Extent 1 : L1 dba: 0x014007路由知识68 Data dba: 0x01402f48 Exten
t
相关阅读
-
-
win7识别不到u盘启动u盘启动-(win7识别不了u盘启动)
win不识别u盘启动u盘启动u盘(win7不能识别u盘启动)当计算机使用u盘重新安装系统时,我们必须首先设置它bios启动项目,否则重新安装系统时,计算机路由知识无法识别u盘。以下小系列将教您如何解决戴尔电脑重新安装找不到u盘启动的问题。不同的型号不...
2022-11-20
-
-
清华同方电脑boot如何设置-(清华同方电脑boot如何设置密码)
清华同方电脑boot如何设置(清华同方电脑boot如何设置密码)性能优异的清华同方电脑一直受到用户的欢迎。然而,无论计算机量有多好,总有一天会出现问题。当计算机出现问题时,我们可以通过重新安装系统来解决。重新安装...
2022-11-20
-
-
蓝屏win7系统还原-(win7蓝屏怎么还原系统)
蓝屏win7系统还原(win7如何恢复蓝屏系统?半夜一点半,肝图/Debug/做PPT/你写论文的时候,面对电脑桌面上20多个窗昏昏欲睡。这时,一片蓝色映入眼帘,屏幕上出现了一个二维码和几行字:“:(当您的计算机出...
2022-11-20
-
-
win10取消登陆用户名密码怎么办-(win10取消登陆用户名密码怎么办)
win取消登录用户名密码怎么办?(win取消登录用户名密码怎么办?)Win11去掉开机pin码Win如何删除登录帐户?Win10删除登录账号的方法目的:节省启动密码输入的几秒钟。参考链接:1.找到设置,右键进入任务栏。关掉这个!为提高安全性…….点击关闭(推荐)。路由知识在右侧找到登录选项,点击进入。若未见删除,则重启!重启电脑后才能看到pin...
2022-11-20
-
-
苹果怎么把文件移到u盘-(苹果怎么把文件移到u盘里)
苹果如何将文件转移到u盘(苹果如何将文件转移到u盘里)手机摄影功能越来越强大。生活中,很多朋友都喜欢拍照。不知不觉中拍了很多照片,占用了很大的空间。手机照片和视频是我们非常重要的记忆,很多人不愿意删除。为了节省我们手机的空间,很多人会选择导出手机照片保存备份。如何快速将手机上的照片和视频保存到U盘中?路由知识让我们一起来看看吧。先说常规方法:1.通过软件上传到计算机,然后复制U盘。很...
2022-11-20
191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程
版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除