Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

21

积分

0

好友

0

主题
1#
发表于 2012-4-25 12:19:15 | 查看: 11454| 回复: 4
发现有人修改了数据库中的某张表里面的数据,但是不知道是谁做了什么样的操作,请问如何进行查询?
想了解修改之前的数据值,以及修改数据的SQL语句,如何能知道修改者的IP就更好了。

重点是了解修改之前的数据值,因为现有的数据与系统的配置文件不符,考虑是否需要恢复数据。
2#
发表于 2012-4-25 13:15:25
action plan:

select     * from  v$version;

archive log list ;



检查  DB 版本和 是否启用了归档,

"想了解修改之前的数据值,以及修改数据的SQL语句,如何能知道修改者的IP就更好了。"

如果没有做审计的话  一般只能通过log miner获得修改的语句 以及USERNAME 信息 , 使用logminer的前提是 打开了数据库归档, 且相关归档日志仍保留着。



其他思路

利用 SQL cursor 缓存或历史数据 定位SQL语句

通过 匹配 V$SQL 或 DBA_HIST_SQLTEXT 中SQL_TEXT  SQL文本 是否存在相关 表名 来找到  对应的SQL语句



10g以后在短时间内 还可以利用 闪回事务查询   flashback_transaction_query 来定位LOGON_USER

回复 只看该作者 道具 举报

3#
发表于 2012-4-25 14:25:42
刘的功力相当的全面呀,佩服佩服

回复 只看该作者 道具 举报

4#
发表于 2012-4-25 15:04:08

谢谢版主

查看oracle数据库是否归档和修改归档模式
select name,log_mode from v$database;

archive log list;(该方法需要as sysdba)
目前我没有这个帐号的权限。

已经查过状态,NOARCHIVELOG。没开归档。

回复 只看该作者 道具 举报

5#
发表于 2012-4-25 22:21:58
你的时间应该也闪回不了,   如果有备份的话, 在别的机器上恢复试试

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-25 00:00 , Processed in 0.048204 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569