Oracle12c新特性(2)記錄DDL日誌

ultradb發表於2016-11-09

Oracle12c新特性(2)記錄DDL日誌

1.1.1.1  DDL日誌

  在之前的版本中沒有可選方法來對DDL操作進行日誌記錄。而在12c R1中,你現在可以將DDL操作寫入xml和日誌檔案中。這對於瞭解誰在什麼時間執行了createdrop命令是十分有用的。要開啟這一功能必須對ENABLE_DDL_LOGGING 初始引數加以配置。這一引數可以在資料庫或會話級加以設定。當此引數為啟用狀態,所有的DDL命令會記錄在$ORACLE_BASE/diag/rdbms/DBNAME/log|ddl 路徑下的xml和日誌檔案中。一個xml中包含DDL命令,IP地址,時間戳等資訊。這可以幫助確定在什麼時候對使用者或表進行了刪除亦或是一條DDL語句在何時觸發。

  開啟DDL日誌功能

SQL> ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;

  以下的DDL語句可能會記錄在xml或日誌檔案中:

·         CREATE|ALTER|DROP|TRUNCATE TABLE

·         DROP USER

·         CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENCE

1.1.1.1.1具體操作

SQL> show parameter enable

 

NAME                              TYPE    VALUE

------------------------------------ ----------- ------------------------------

enable_ddl_logging                   boolean FALSE

enable_goldengate_replication           boolean TRUE

enable_pluggable_database         boolean TRUE

java_jit_enabled                 boolean TRUE

max_enabled_roles             integer   150

optimizer_features_enable          string    12.1.0.2

parallel_io_cap_enabled            boolean FALSE

query_rewrite_enabled               string    TRUE

star_transformation_enabled       string    FALSE

temp_undo_enabled                   boolean FALSE

trace_enabled                     boolean TRUE

SQL> alter session set enable_ddl_logging=true ;

Session altered.

SQL> create table ultradb (name varchar(10),old number);

Table created.

SQL> alter table ultradb  add(comments varchar(200));

Table altered.

SQL>

1.1.1.1.2檢視日誌內容

[oracle@inmsh02 ddl]$ more log.xml

<msg time='2016-11-09T15:56:36.408+08:00' org_id='oracle' comp_id='rdbms'

 msg_id='opiexe:4383:2946163730' type='UNKNOWN' group='diag_adl'

 level='16' host_id='inmsh02' host_addr=' *'

 version='1'>

 <txt>create table ultradb (name varchar(10),old number)

 </txt>

</msg>

<msg time='2016-11-09T16:00:28.120+08:00' org_id='oracle' comp_id='rdbms'

 msg_id='opiexe:4383:2946163730' type='UNKNOWN' group='diag_adl'

 level='16' host_id='inmsh02' host_addr='*'>

 <txt>alter table ultradb  add(comments varchar(200))

 </txt>

</msg>

[oracle@inmsh02 ddl]$

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24179204/viewspace-2128155/,如需轉載,請註明出處,否則將追究法律責任。

相關文章