Oracle12c新特性(2)记录DDL日志
1.1.1.1 DDL日志
在之前的版本中没有可选方法来对DDL操作进行日志记录。而在12c R1中,你现在可以将DDL操作写入xml和日志文件中。这对于了解谁在什么时间执行了create或drop命令是十分有用的。要开启这一功能必须对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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24179204/viewspace-2128155/