WEB开发网
开发学院数据库Oracle Oracle 11g闪回数据归档新功能解析 阅读

Oracle 11g闪回数据归档新功能解析

 2008-12-15 13:01:44 来源:WEB开发网   
核心提示: 表2.闪回数据归档:元数据使用闪回数据归档:审计和数据修复至此,闪回数据归档已经建立起来,Oracle 11g闪回数据归档新功能解析(7),但有什么用途呢?下面就列举几个情景来说明它的用途:审计历史事务现在我们已经在HR.APPLICANTS表上建立起FBDA跟踪了,所有发生变化的数据将会

表2.闪回数据归档:元数据

Oracle 11g闪回数据归档新功能解析

使用闪回数据归档:审计和数据修复

至此,闪回数据归档已经建立起来,但有什么用途呢?下面就列举几个情景来说明它的用途:

审计历史事务

现在我们已经在HR.APPLICANTS表上建立起FBDA跟踪了,所有发生变化的数据将会自动保留下来,这样我们就可以向同等雇佣机会委员会(EEOC)证明我们在招聘人员时没有歧视,因为我们最近和美国联邦政府签订了这样一份协议,以后我就可以拿事实数据进行说明了。

数据粉碎

相信大部分对于保留历史数据在法律上的重要性都有深刻的理解,好的记账原则要求至少保留关键财务数据达7年之久,方便国家税务机关审计。Oracle 11g将会自动删除超出保留期限的数据,在数据粉碎期间,只针对历史数据,而不是FBDA自身。

修复丢失的或错误修改的数据

以我过去30年的IT经历来看,很多时候用户、程序开发人员甚至DBA可能不经意错误地修改了关键数据,甚至物理地删除了关键表中的行,更可怕的是,这些错误可能过了很久才被发现,那个时候可能最希望能够如魔法般地重建数据,这放在过去,只能不完全恢复数据,闪回数据当然也支持不完全恢复,但它的粒度是数据库和指定的SCN(但前提是在犯错前已经开启了闪回日志功能),闪回表仍然受限于当前UNDO表空间UNDO保留的数量。下面给出一段代码显示如何使用闪回数据归档数据和闪回查询来找回丢失的数据的:

DELETE FROM hr.applicants
  WHERE application_date <= TO_DATE('11-10-2008','dd-mm-yyyy');
  COMMIT;
  INSERT INTO hr.applicants
  SELECT *
  FROM hr.applicants
  VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2008-12-04 10:00','yyyy-mm-dd hh24:mi')
  AND MAXVALUE
  WHERE VERSIONS_OPERATION = 'D';
  COMMIT;

上一页  2 3 4 5 6 7 8 9  下一页

Tags:Oracle 数据 归档

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接