Oracle备份审计表SYS.AUD$和SYS.FGA_LOG$


ORACLE的审计表不可以使用expdp和impdp导出和导入,如果使用,会报如下错误:

 

 

需要使用exp和imp进行导出和导出

导出语句:

exp " '/ as sysdba' "  file=/Data/expdp/AUD.dmp log=/Data/expdp/AUD.log tables=SYS.AUD\$

带导出条件的exp语句:

exp " '/ as sysdba' " file=/Data/expdp/FGA_LOG_88.dmp log=/Data/expdp/FGA_LOG_88.log tables=SYS.FGA_LOG\$ query=\"where FROM_TZ\(ntimestamp\#, \'00:00\'\) AT LOCAL BETWEEN TO_TIMESTAMP\(TO_CHAR\(SYSDATE - 123,\'YYYYMMDD\'\) \|\| \'073000000\',\'YYYYMMDDHH24MISSFF\'\) AND TO_TIMESTAMP\(TO_CHAR\(SYSDATE,\'YYYYMMDD\'\) \|\| \'073000000\',\'YYYYMMDDHH24MISSFF\'\)\"

1.FROM_TZ:将ntimestamp#栏位的timestamp类型转换为带时区的,市区为UTC(世界标准时间),之后再AT LOCAL转换为本地时间。ntimestamp#存入的不是本地时间,是UTC时间

2.to_timestamp:第一个参数是字符串类型的,如果直接传入日期类型,那么oracle会根据NLS_DATE_FORMAT进行隐式转换,所以需要使用to_char提前处理。

3.上述导出语句会有警告,需要在导出前设置一下NLS_LANG环境变量

 

解决方法

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

导入命令:

imp " '/ as sysdba' " file=/Data/expdp/FGA_LOG_88.dmp log=/Data/expdp/FGA_LOG_250.log fromuser=sys touser=monkey data_only=y

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM