0

oracle 数据库 11g中,该表FLASHBACK_TRANSACTION_QUERY提供了UNDO_SQLSQL 反转由先前执行的特定查询所做的修改的列。

但是,我需要(已执行REDO_SQL的原件)代替。SQL有没有办法(使用 SQL)从oracle 闪回REDO_SQL区域中提取信息?

4

1 回答 1

2

正如您在文档中看到的,Oracle 闪回功能专注于数据而不是 SQL 语句。因此,您无法从闪回数据中发现语句。

相反,您可以在数据库设置中启用AUDIT功能( AUDIT_TRAIL参数),然后使用此处AUDIT所述的语句管理审核设置。

可以使用DBA_AUDIT_TRAILUSER_AUDIT_TRAIL视图访问记录的语句。

达到相同目标的另一种方法是使用DBMS_FGA包来调整审计策略,然后参考DBA_FGA_AUDIT_TRAILV$XML_AUDIT_TRAIL获取已执行语句的列表。此选项涉及细粒度审计功能,仅适用于企业版 Oracle 数据库。

更新

抱歉最初的错误,审查审计记录的视图的真实名称是DBA_AUDIT_TRAIL(上面更正)。

该视图可以TRANSACTIONID与视场在字段XID上进行连接,FLASHBACK_TRANSACTION_QUERY以获得相应的闪回记录。

除了 Oracle 文档之外,Oracle-Base 站点上还有许多关于审计的好文章。

于 2013-05-22T17:20:06.960 回答