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