正常操作数据库N次后,现在 要恢复到其中的第J(j

treamboy 2005-05-16 06:39:00
正常操作数据库N次后,现在 要恢复到其中的第J(j<N)次时的数据状态。
问:用事务回滚可以实现么?怎样实现?
oracle里有一种文件,重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件,那么理论上是否可以找到当初的日志文件来进行类比可以恢复?
...全文
171 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwjghhh 2005-05-25
  • 打赏
  • 举报
回复
如果你要使用JAVA程序控制,而不是直接使用ORACLE提供的工具,我建议你还是写程序时,将每次修改都写入你建立的专门一个表(比如修改日志),记录下每一次修改的新旧值和时间点。 回滚时,你直接利用你建立的修改日志表来进行处理。
treamboy 2005-05-24
  • 打赏
  • 举报
回复
上述确是logminor的分析语句,它的分析语句可以得到所有的操作视图,问题是我怎样在JAVA程序中调用分析语句呢?
treamboy 2005-05-23
  • 打赏
  • 举报
回复
按照重做日志:
如果按照开始日期结束日期scn,过后的数据集
EXECUTE dbms_logmnr.start_logmnr(
DictFileName => ' e:\oracle\logs\ v816dict.ora ',
StartTime => to_date('2001-9-18 00:00:00','YYYY-MM-DD HH24:MI:SS')
EndTime => to_date(''2001-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS '));



如果我们想知道某个用户对于某张表的操作,可以通过下面的SQL查询得到,该查询可以得到用户DB_ZGXT对表SB_DJJL所作的一切工作。

SQL> SELECT sql_redo FROM v$logmnr_contents WHERE username='DB_ZGXT' AND tablename='SB_DJJL'

1.按照这上面说的,似乎是可以做到对某些特定的人的操作做恢复的??

2.程式是用JAVA编写,怎样将上述操作重做日志的语句用JAVA实现?

nowait 2005-05-23
  • 打赏
  • 举报
回复
treamboy(亲月) 是对的,用logmnr分析联机重作日志,得到反向sql语句。
ipv 2005-05-23
  • 打赏
  • 举报
回复
如果是经常性的这样
这个只能写程序控制了
数据库端不好实现阿
写程序用临时表
最后再插入真正的表中
lijietz 2005-05-21
  • 打赏
  • 举报
回复

只能利用不完全恢复来恢复了。
回滚段只是保存数据的前像,保证一致性读。事务完成之后的一定时间内要被wrap。
treamboy 2005-05-20
  • 打赏
  • 举报
回复
提供个思路,怎样解决这个问题?
nebulaly 2005-05-19
  • 打赏
  • 举报
回复
不可以
因为“正常操作数据库N次后”的“正常操作”是和应用程序有关的
也只能通过应用程序来做逻辑上的恢复
treamboy 2005-05-18
  • 打赏
  • 举报
回复
我需求提的不够精准,
正常m个人操作数据库N次后,现在要恢复到其中的某一人的第J(j<N)次时的数据状态。
这个用rollback好像不行吧?
railgunman 2005-05-17
  • 打赏
  • 举报
回复
利用回滚段的话,只能是在短时间内的操作,并且数据量不大的情况下.
当然最好的还是恢复日志,
但是恢复日志就需要很高的技巧了.
我一直没有恢复过日志,因为弄不来,
还得向高手学习
ipv 2005-05-17
  • 打赏
  • 举报
回复
可以实现
比如操作 a b c d
每次操作都记录一个savepoint a b c d
回滚的时候可以rollback C
具体的语法你去查查
很简单
treamboy 2005-05-16
  • 打赏
  • 举报
回复
利用回滚段?首先大数据量的操作很难不被覆盖,再说commit后再回滚就比较麻烦吧?我想更应该是结合日志文件来做的,但不知道怎样实现。但据了解这种技术已经被实现了。
希望大家多讨论讨论给个思路:)
railgunman 2005-05-16
  • 打赏
  • 举报
回复
Oracle 有日志记录,应该可以恢复到你想要的状态,
还有就是Oracle有回滚段,如果回滚段足够大,里面的数据还没有被完全覆盖时,
都可以从里面找回未被修改过的数据.
不过这些我都没有操作过,只是知道而已.

3,492

社区成员

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

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