12
返回列表 发新帖
楼主: liuqiang22

logminer恢复某电信误删除的700万条数据

[复制链接]
论坛徽章:
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-24 17:05 | 只看该作者
begin
for c in (select * from logmnr_content) loop
sql_str := replace(c.sql_undo,';','');
execute immediate sql_str;
end loop;
commit;

这样能够自动将 delete 语句转换为insert 语句吗
难道 sql_undo 已经自动保存为 insert 语句了?

我用  toad8 +utredit
批处理,估计 700万也就半天时间把

使用道具 举报

回复
论坛徽章:
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
12#
发表于 2005-2-24 17:13 | 只看该作者
最初由 花好月不圆 发布
[B]begin
for c in (select * from logmnr_content) loop
sql_str := replace(c.sql_undo,';','');
execute immediate sql_str;
end loop;
commit;

这样能够自动将 delete 语句转换为insert 语句吗
难道 sql_undo 已经自动保存为 insert 语句了?

我用  toad8 +utredit
批处理,估计 700万也就半天时间把 [/B]


logmnr 做的就是这样工作,转换成 sql ,注意是 sql_undo 不是 sql_redo  !

日常工作工具主要就是 sqlplus   和 ultraedit。

使用道具 举报

回复
论坛徽章:
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
13#
发表于 2005-2-24 17:16 | 只看该作者
昏,当时从 toad 中出来的是 原始语句 delete
还不知道oracle 中已经转换为undo 了

学习!

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2007-04-19 13:22:13ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
14#
发表于 2005-2-24 17:27 | 只看该作者
牛人

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
15#
发表于 2005-2-24 17:29 | 只看该作者
有機會試試

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
16#
发表于 2005-2-24 17:31 | 只看该作者
logmnr的确很易用的. 只要之前做过实验,不会有啥难度的.

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:01
17#
 楼主| 发表于 2005-2-24 17:46 | 只看该作者
v$logmnr中sql_redo是用户作的dml,sql_undo是相应sql_redo的倒退操作,如果误操作数据不是太多,可以一次分析全部的日志(当然首先要确定要分析哪些日志),然后把sql_undo选择出来生成脚本,执行就可以了。

我要恢复的有700多万条,所以要分多次分析日志,多次插入。

看了biti_rainy的恢复,又学到一种处理方法,我当时每次都是手工生成脚本,成批插入,现在看来还是太原始了,难怪我当时熬的那么辛苦,因为700万条作恢复时间还是挺长的,每次要人工干预,确实挺辛苦的。

感谢biti_rainy老大!

使用道具 举报

回复

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

本版积分规则 发表回复

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