我正在使用 oracle 11g r1。作为项目的一部分,我必须通过禁用一些约束(触发器和检查约束)来执行多个更新语句。这将导致数据库损坏。
当数据库损坏时,我必须重新导入整个数据库。这将是一项耗时的额外任务。
我对 oracle 闪回功能知之甚少。Is Flashback 将帮助我避免这些不必要的导入。这样我就可以设置一些稳定点并在出现任何问题时切换回那里。
如果它符合我的要求,我会努力学习。请帮我。
请给我这个功能的简要概述?
听起来您希望创建一个还原点,很可能是一个保证还原点,实施您想要测试的任何更改,然后闪回到该还原点。
就像是
CREATE RESTORE POINT some_name GUARANTEE FLASHBACK DATABASE;
然后进行任何您想要的更改。如果您想恢复到创建还原点时的数据库状态
FLASHBACK DATABASE TO RESTORE POINT 'some_name'
当您完成还原点并且不再希望能够闪回到它时
DROP RESTORE POINT some_name
但是,实际上并不清楚这是否真的是您想要的。如果您的问题仅仅是在您进行大量更改后您的约束无法验证,那么将约束创建为可延迟的,在进行更改之前延迟约束,将您的更改作为单个的一部分进行更改会更有意义事务,并在约束验证失败时回滚更改(可能除了记录验证失败的行,以便您可以更有效地调试脚本)。