12C -- DDL日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12C -- DDL日志相关的知识,希望对你有一定的参考价值。

DDL日志和alert日志有相似的格式和行为。但是只包含DDL语句日志。
oracle只是为数据库组件提供DDL日志,且需要将参数enable_ddl_logging设置为true。

在DDL日志中,每个DDL语句对应一条日志。一种是以xml文件形式、一种是txt文本形式。日志位于ADR目录下的log/ddl子目录。

当开启DDL日志后,将会为以下ddl语句记录ddl日志:

·alter/create/drop/truncate cluster
·alter/create/drop function
·alter/create/drop index
·alter/create/drop outline
·alter/create/drop package
·alter/create/drop package body
·alter/create/drop procedure
·alter/create/drop profile
·alter/create/drop sequence
·create/drop synonym
·alter/create/drop/rename/truncate table
·alter/create/drop trigger
·alter/create/drop type
·alter/create/drop type body
·drop user
·alter/create/drop view

 

写入日志的ddl语句可能会被截取,可以使用ddl触发器来实现查看整个ddl语句。

 

示例:

SQL> alter system set enable_ddl_logging=true;

System altered.

SQL> create table t1(id int);

Table created.

SQL> 

  

查看xml格式日志:

# more log.xml 
<msg time=‘2017-04-17T20:58:01.218+08:00‘ org_id=‘oracle‘ comp_id=‘rdbms‘
 msg_id=‘opiexe:4695:2946163730‘ type=‘UNKNOWN‘ group=‘diag_adl‘
 level=‘16‘ host_id=‘db‘ host_addr=‘20.20.20.210‘
 pid=‘20234‘ version=‘1‘ con_uid=‘1‘
 con_id=‘1‘ con_name=‘CDB$ROOT‘>
 <txt>create table t1(id int)
 <t>
</msg>

  

查看txt格式日志:

# more ddl_DB.log 
2017-04-17T20:58:01.218335+08:00
diag_adl:create table t1(id int)

  

创建一个比较长的表:

create table t2(
t1 varchar2(20),
t2 varchar2(20),
t3 varchar2(20),
t4 varchar2(20),
t5 varchar2(20),
t6 varchar2(20),
t7 varchar2(20),
t8 varchar2(20),
t9 varchar2(20),
t10 varchar2(20),
t11 varchar2(20),
t12 varchar2(20),
t13 varchar2(20),
t14 varchar2(20),
t15 varchar2(20),
t16 varchar2(20),
t17 varchar2(20),
t18 varchar2(20),
t19 varchar2(20),
t20 varchar2(20),
t21 varchar2(20),
t22 varchar2(20),
t23 varchar2(20),
t24 varchar2(20),
t25 varchar2(20),
t26 varchar2(20),
t27 varchar2(20),
t28 varchar2(20),
t29 varchar2(20),
t29 varchar2(20),
t30 varchar2(20)
)

 

从日志中可以看出日志发生了truncate:

# more ddl_DB.log
2017-04-17T20:58:01.218335+08:00
diag_adl:create table t1(id int)
2017-04-17T21:00:18.468123+08:00
diag_adl:truncate table wri$_adv_addm_pdbs

  

 

以上是关于12C -- DDL日志的主要内容,如果未能解决你的问题,请参考以下文章

如何对oracle11g日志分析

oracle12C 重做日志

oracle12c的日志查看

argparse 代码片段只打印部分日志

12c DataGuard 无法删除归档日志

第十五章:Oracle12c 数据库 警告日志