现在我用c++程序每天插入大量数据,当天查的时候是没有问题的,但到了第二天,数据莫名其妙的减少一部分,不知是不是程序提交插入事务的时候,数据库没有处理完成事务的原因,但如果是这个原因,也不会到了第二天的时候,数据才丢失了,现在我可以肯定的是程序没有删除,没有人攻击,请高手列出具体方法指点一下。
解决方案 »
- 一个case when语句控制一个查询条件
- oracle单表统计 成功数 ,失败数,其他数
- 安装oracle时,出现了oracle universal installer怎么回事
- 请问VS2010(C#)连接Oracle11g的字符串是什么?
- 菜鸟求助:知道用户名、密码、IP地址和SID,我怎么配置ODBC啊?
- sql求助实现类似like in 组合查询
- oracle怎么回收表owner的权限
- 如何脚本来删除数据库中现有的job?
- oracle字符集问题
- .net 中怎样能把oracle数据进行整库导出?
- birt报表调用oracle存储过程!
- 用linux c++如何保证commit成功提交事务??在线等高手解决!
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'
查过了有大量的DELETE操作
SESSION_NUM USERNAME SESSION_INFO
0 UNKNOWN UNKNOWN
0 UNKNOWN UNKNOWN
0 UNKNOWN UNKNOWN不知是不是跟事务回滚有关系,如果是事务回滚了,请问在数据库里如何防止事务回滚呢?或者在程序上如何处理呢?请指数