我的团队正在计划很快对我们的应用程序进行大量更新,包括一些大量的数据库更新(Oracle 11gR2)。当我编写脚本以恢复所有数据库更新(作为回滚意外事件)并研究潜在的Oracle功能时,我遇到了this Oracle documentation。我看到闪回使用“闪回日志”将数据库恢复到特定状态。我还看到还原点使用系统更改编号为DB添加书签。 \
This SO questions表示闪回会“将表格返回到10分钟前的状态”,但这是否意味着数据也会被还原? (我们也有很多参考表)
这些Oracle功能中的任何一个是否可用于撤消我们的数据库更新,同时保持生产数据的完整性?我不清楚这两个功能在实践中的作用以及它们的不同之处。
答案 0 :(得分:1)
主要区别在于闪回会将更改,包括整个表或数据库中其他人所做的更改回滚到过去闪回设置范围内的任何时间点。回滚到已恢复的点数只会回滚您在交易中更改的内容,而其他人的更改不会受到影响。
答案 1 :(得分:0)
当您创建保证还原点时,它将保留足够的闪回日志以将数据库闪回到保证还原点。
必须使用DROP RESTORE POINT语句手动删除保证的还原点。保证还原点不会过期。如果你不这样做,闪存恢复区将无限增长,直到文件系统或磁盘组变满......