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

  

最新文章

  1. 利用python将二值csv格式转换为矩阵
  2. 使用TFHelp解析Html
  3. spring 框架通过new Object()获取applicationContext 中的bean方案
  4. Log4Cplus的介绍
  5. 第十四章 红黑树——C++代码实现
  6. Javascript base64加密 解密
  7. 2016年,总结篇 之 VueJS 如何入门(一)
  8. E - Coin Change UVA - 674 &amp;&amp;(一些记录路径的方法)
  9. pdf转eps后存在大片空白的处理
  10. Java面向对象之多态的静态和动态实现
  11. springmvc与fastjson的整合,注解@RequestBody的使用
  12. SQLServer语言之DDL,DML,DCL,TCL
  13. FetchType.LAZY和FetchType.EAGER什么区别
  14. ap、map值计算
  15. Java静态变量的初始化(static块的本质)
  16. (转)UI设计实战篇——利用Bootstrap框架制作查询页面的界面
  17. js script type 部分属性值分析
  18. 使用laravel实现用户的登陆
  19. 老笔记本装xubuntu+win7
  20. net对象的克隆

热门文章

  1. 【BZOJ4927】第一题 双指针+DP
  2. Python join方法
  3. 6-15 给任务排序 uva10305
  4. Linux系统命令符01
  5. POJ 1384 Piggy-Bank【完全背包】+【恰好完全装满】(可达性DP)
  6. 浅谈CSS和JQuery实现鼠标悬浮图片放大效果
  7. Bootstrap 分页、标签、徽章、超大屏幕、页面标题
  8. flask-include标签使用标签
  9. CF1039C.Network Safety
  10. Nowcoder 提高 Day1