日期:2014-05-17  浏览次数:21082 次

如何提取oracle日志文件的更新信息。并将它提取出来作为历史记录插入数据库
如题。

主要是将日志中的update insert 信息的记录提取出来,然后再将这个记录作为历史记录插入历史数据库,最好可以增加时间字段。
用LOGMNR如何?具体如何?
thanks,guy!

------解决方案--------------------
用oracle的审计功能,轻松实现。

------解决方案--------------------
ORACLE审计小结(ZT):http://hi.baidu.com/%C8%FD%B7%C9%D4%C6/blog/item/75e2818ba06fc1789f2fb4c1.html
------解决方案--------------------
一 审计功能的参数控制
audit_trail 参数的值可以设置为以下几种

1. NONE:不开启
2. DB:开启审计功能
3. OS:审计记录写入一个操作系统文件。
4. TRUE:与参数DB一样
5. FALSE:不开启审计功能。
这个参数是写道spfile里面的,需要重启数据库

二 查看是否审计功能是否启动
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE

三 开启审计


SQL> conn /as sysdba
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE

SQL> alter system set audit_sys_operations=TRUE scope=spfile; --审计管理用户(以sysdba/sysoper角色登陆)
SQL> alter system set audit_trail=db,extended scope=spfile;

重启实例 
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean TRUE
audit_syslog_level string
audit_trail string DB, EXTENDED
(完成)

四 关闭审计
SQL> conn /as sysdba
SQL> show parameter audit
SQL> alter system set audit_trail=none;
重启实例

五 检查各个节点的audit_trail 是否都是none
------解决方案--------------------
探讨
在大型oracle应用上,开启审计功能是不是会影响数据库的效率?