12
返回列表 发新帖
楼主: d.c.b.a

[备份恢复] 在TRUNCATE/DROP后,没有备份的情况下数据的恢复例子

[复制链接]
论坛徽章:
114
授权会员
日期:2005-10-30 17:05:332013年新春福章
日期:2013-02-25 14:51:24奔驰
日期:2013-08-01 21:18:36宝马
日期:2013-12-04 21:52:282014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
11#
发表于 2005-2-21 22:12 | 只看该作者
最初由 d.c.b.a 发布
[B]就象以前DOS下, delete后,还可以将文件救回来一样,

至于放上来就算了吧,这样的东西如果免费放上来,那DBA还能吃什么? [/B]


也不至于这样把
用得到的用也不一定只用这个,用不到的,永远都想不这个
一个工具而已

使用道具 举报

回复
论坛徽章:
6
授权会员
日期:2005-11-15 16:59:54数据库板块每日发贴之星
日期:2005-11-27 01:01:32数据库板块每日发贴之星
日期:2006-01-02 01:02:21会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2006-09-05 22:13:342010广州亚运会纪念徽章:曲棍球
日期:2010-11-22 15:31:07
12#
发表于 2005-2-21 22:49 | 只看该作者
我认为,楼主有责任把原理、详细的讲解一下!大家看了你的贴子,是对你的一种认可。如果你只是在这儿做广告,说你有能力做这件事就不太好了!毕竟大家到这儿来是为了互相学习的!

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
13#
发表于 2005-2-21 22:54 | 只看该作者
最初由 yseraphi 发布
[B]我认为,楼主有责任把原理、详细的讲解一下!大家看了你的贴子,是对你的一种认可。如果你只是在这儿做广告,说你有能力做这件事就不太好了!毕竟大家到这儿来是为了互相学习的! [/B]


原理很简单,oracle的表在ddl发生的时候会把对应表的所有dirty buffer写回数据文件,而drop 本身仅仅修改的是数据字典 ,truncate是把 hwm 移动到 数据的第一个block ,并没有真正地清除数据,所以如果你了解block中的数据存储格式,就可以通过 os file 把数据读出来。

使用道具 举报

回复
招聘 : Linux运维
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
14#
发表于 2005-2-22 00:16 | 只看该作者
关键就是弄清楚,oracle的数据是以什么样的格式存储到物理文件中的,以前看过这方面的帖子,后来终没恒心,就没继续看了。每个大的版本的数据存储格式都是不同的,佩服dcba的精神,学习。

使用道具 举报

回复
论坛徽章:
42
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:022011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:08ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
15#
 楼主| 发表于 2005-2-22 10:29 | 只看该作者
对于truncate只是分配了一个新的extent,获得了一个新的data_object_id, 所以原来的还在。
对于truncate reuse stroage只是获得了一个新的data_object_id,并将segment header中的data_object_id改一下。
对于delete操作只是在row header的flag字节作了删除标志

对于truncate你可以用alter system dump来看看
对于delete你需要使用os的dump工具来看

这样讲不知可以了吗。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表