请大家帮我把幕后黑手揪出来

Shikoy 2009-07-06 08:06:15
公司用的是oracle数据库,前几天我建了几个数据表并在里面存了一些数据,但今天发现里面的数据全不见了,但表还在。
不知道是哪个黑心的家伙把我几天辛苦的成果全删除了。今天心情差透了T_T
请问有没有办法查到是谁干的??
公司用UNIX+LINUX操作系统,谢谢大家!
...全文
50 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
又是违规昵称 2009-07-07
  • 打赏
  • 举报
回复
如果是归档模式,用logminer可以查到执行操作的机器名,
很容易的,让你们DBA给查查

logminer是oracle的组件,不需要额外装的
cab1225 2009-07-07
  • 打赏
  • 举报
回复
如果开启了audit trail的话可以试试找找是那个用户做的
SQL> show parameter audit_trail
看看你的结果
如果结果为none,如下,就没有办法了。
audit_trail string NONE
asdf_ndsc 2009-07-07
  • 打赏
  • 举报
回复
oracle 哪个版的。

undo 里的数据要是还在。

可以用( as of timestamp sysdate-10/24 ) 查 10小时以前的数据。

select * from tb as of timestamp sysdate-10/24;

如果能查到就 insert into tb select * from tb as of timestamp sysdate-10/24;

如果是 truncate 就查不到了。
Shikoy 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 inthirties 的回复:]
引用楼主 Shikoy 的帖子:
公司用的是oracle数据库,前几天我建了几个数据表并在里面存了一些数据,但今天发现里面的数据全不见了,但表还在。
不知道是哪个黑心的家伙把我几天辛苦的成果全删除了。今天心情差透了T_T
请问有没有办法查到是谁干的??
公司用UNIX+LINUX操作系统,谢谢大家!



还有一个可能,就是你自己没有commit;
[/Quote]

commit是肯定有的,我用ETL工具把数据倒入数据库,整个job已经完成,我开另外一个session看到数据已经倒入
Shikoy 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 welyngj 的回复:]
不知道楼主有没有做归档处理,如果没有,希望很少。
如果有,用LogMiner分析日志文件。
http://www.eol.cn/shiti_jc_2256/20060323/t20060323_123801.shtml
[/Quote]

不好意思,我不是DBA,所以没办法看到日志文件。
而且不知道公司有没有装LogMiner.
我和DBA不熟...已经找他查过了,不过他说日志太大,很难找出是哪个用户删除的.

我用
select * from all_objects where object_name=?
看到表最后DDL的时间是7月3号凌晨4点多

PS,我竟然没有权限看 V$sqlarea
Shikoy 2009-07-07
  • 打赏
  • 举报
回复
谢谢大家的热心帮助先
jdsnhan 2009-07-07
  • 打赏
  • 举报
回复
最多能查出是哪个数据库用户,不能查出是哪个人
rockywu 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 welyngj 的回复:]
不知道楼主有没有做归档处理,如果没有,希望很少。
如果有,用LogMiner分析日志文件。
http://www.eol.cn/shiti_jc_2256/20060323/t20060323_123801.shtml
[/Quote]
学习了...关注后台黑手。。。
Shikoy 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lpc19598188 的回复:]
如果是归档模式,用logminer可以查到执行操作的机器名,
很容易的,让你们DBA给查查

logminer是oracle的组件,不需要额外装的
[/Quote]
select * from v$logmnr_contents显示
ORA-01306: dbms_logmnr.start_logmnr() must be invoked before selecting from v$logmnr_contents
估计还没选取日志文件吧?
我找过上级了,他说DBA比较忙,不会帮了...
我是想,我自己有没有办法查到呢?
无论如何,还是谢谢你们的方法
Shikoy 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 asdf_ndsc 的回复:]
oracle 哪个版的。

undo 里的数据要是还在。

可以用( as of timestamp sysdate-10/24 ) 查 10小时以前的数据。

select * from tb as of timestamp sysdate-10/24;

如果能查到就 insert into tb select * from tb as of timestamp sysdate-10/24;

如果是 truncate 就查不到了。
[/Quote]
版本是10g
用了您的方法,显示
ora-01466 unable to read data - table definition has changed
Shikoy 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 inthirties 的回复:]
引用楼主 Shikoy 的帖子:
公司用的是oracle数据库,前几天我建了几个数据表并在里面存了一些数据,但今天发现里面的数据全不见了,但表还在。
不知道是哪个黑心的家伙把我几天辛苦的成果全删除了。今天心情差透了T_T
请问有没有办法查到是谁干的??
公司用UNIX+LINUX操作系统,谢谢大家!



如果开启了audit trail的话可以试试找找是那个用户做的
SQL> show parameter audit_trail
看看你的结果
如果结果为n…
[/Quote]

[Quote=引用 12 楼 cab1225 的回复:]
如果开启了audit trail的话可以试试找找是那个用户做的
SQL> show parameter audit_trail
看看你的结果
如果结果为none,如下,就没有办法了。
audit_trail string NONE
[/Quote]

很奇怪csdn居然不允许连续回复3次,可能是防止灌水吧。
用了show parameter audit_trail
结果是
audit_trail string NONE
zl3450341 2009-07-06
  • 打赏
  • 举报
回复
呵呵 楼主运气真差
inthirties 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 Shikoy 的帖子:]
公司用的是oracle数据库,前几天我建了几个数据表并在里面存了一些数据,但今天发现里面的数据全不见了,但表还在。
不知道是哪个黑心的家伙把我几天辛苦的成果全删除了。今天心情差透了T_T
请问有没有办法查到是谁干的??
公司用UNIX+LINUX操作系统,谢谢大家!
[/Quote]

还有一个可能,就是你自己没有commit;
inthirties 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 Shikoy 的帖子:]
公司用的是oracle数据库,前几天我建了几个数据表并在里面存了一些数据,但今天发现里面的数据全不见了,但表还在。
不知道是哪个黑心的家伙把我几天辛苦的成果全删除了。今天心情差透了T_T
请问有没有办法查到是谁干的??
公司用UNIX+LINUX操作系统,谢谢大家!
[/Quote]

如果开启了audit trail的话可以试试找找是那个用户做的
SQL> show parameter audit_trail
看看你的结果
如果结果为none,如下,就没有办法了。
audit_trail string NONE
inthirties 2009-07-06
  • 打赏
  • 举报
回复
看有没有归档了,如果联机日志切换了,logminer也帮不了你了

welyngj 2009-07-06
  • 打赏
  • 举报
回复
不知道楼主有没有做归档处理,如果没有,希望很少。
如果有,用LogMiner分析日志文件。
http://www.eol.cn/shiti_jc_2256/20060323/t20060323_123801.shtml

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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