我们快到 2012 年底了,我仍然发现自己依靠数据库导出来维持执行行级还原操作的能力。虽然这是一种行之有效的方法,但摆脱每天占用大量数据库资源的所有导出操作肯定会很好。
一个典型的场景是客户不小心从创作系统中删除了项目或文档。为了解决这个问题,我需要找到并放回那些已删除的行。
我将从意外删除之前的日期提取客户模式的数据库转储,将数据导入新模式。现在我可以识别丢失的数据,并将其重新选择到生产模式中。
我意识到您可以直接使用闪回恢复来做到这一点,但是我们可以在快速恢复区域中保留多少数据是有限的,而且客户往往不会总是在规定的时间内找出他们的错误。
有没有使用 Oracle RMAN 完成这些任务的好方法?
你的问题的答案是否定的,但是......
听起来你需要一个闪回查询。查询数据存在的时间,当返回正确的数据时,插入到当前表中。此解决方案确实需要 UNDO 表空间中的空间来满足您的
UNDO_RETENTION
要求。它也不使用 RMAN,但比导入整个模式要简单得多。您的需求看起来像是Oracle 的闪回数据存档(Total Recall)特性的一个很好的案例。
免责声明:我还没有使用过这个功能。
描述如下:
您可以在表级别启用它。您可以指定撤消保留;尽管我找不到限制,但它可能比您需要的要大,因为目标是出于法律目的保留记录。
有一个可能适用于您的特定情况的场景示例:使用闪回数据存档恢复数据。
Oracle Total Recall 是企业版中提供的Advanced Compression Option的一部分。