真的求高手指教,现在第二天数据比昨天的数据都莫名其妙的减少一部分,不知原因!

garping 2011-09-29 09:07:25
现在我用c++程序每天插入大量数据,当天查的时候是没有问题的,但到了第二天,数据莫名其妙的减少一部分,不知是不是程序提交插入事务的时候,数据库没有处理完成事务的原因,但如果是这个原因,也不会到了第二天的时候,数据才丢失了,现在我可以肯定的是程序没有删除,没有人攻击,请高手列出具体方法指点一下。
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
garping 2011-09-29
  • 打赏
  • 举报
回复
如何查找事务回滚的地方?请教
dawugui 2011-09-29
  • 打赏
  • 举报
回复
如果是事务回滚,得找到事务回滚的地方,看看什么原因造成的?
garping 2011-09-29
  • 打赏
  • 举报
回复
TO 楼上:
查过了有大量的DELETE操作
SESSION_NUM USERNAME SESSION_INFO
0 UNKNOWN UNKNOWN
0 UNKNOWN UNKNOWN
0 UNKNOWN UNKNOWN

不知是不是跟事务回滚有关系,如果是事务回滚了,请问在数据库里如何防止事务回滚呢?或者在程序上如何处理呢?请指数
dawugui 2011-09-29
  • 打赏
  • 举报
回复
1.是不是有什么作业在定时运行,把数据给删除了?
2.下面的内容是查询操作记录的情况,你查查看是谁干的好事情?
begin 
SYS.DBMS_LOGMNR.ADD_LOGFILE('C:\oracle\oradata\jhoracle\REDO01.LOG', sys.dbms_logmnr.New);
end;

select min(low_time), max(high_time),
min(low_scn), max(next_scn) -1
from V$logmnr_logs;

begin
SYS.DBMS_LOGMNR.START_LOGMNR(Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG);
end;

Select
SCN,
timestamp,
sql_redo,
session# session_num,
username,
session_info
From V$LOGMNR_CONTENTS where sql_redo like '%update%'
Order by 1;


begin
SYS.DBMS_LOGMNR.END_LOGMNR();
end;

上面的'C:\oracle\oradata\jhoracle\REDO01.LOG'文件更改你自己对应的文件,一共三个:
'C:\oracle\oradata\jhoracle\REDO01.LOG'
'C:\oracle\oradata\jhoracle\REDO02.LOG'
'C:\oracle\oradata\jhoracle\REDO03.LOG'

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧