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

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

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

  1. ·alter/create/drop/truncate cluster
  2. ·alter/create/drop function
  3. ·alter/create/drop index
  4. ·alter/create/drop outline
  5. ·alter/create/drop package
  6. ·alter/create/drop package body
  7. ·alter/create/drop procedure
  8. ·alter/create/drop profile
  9. ·alter/create/drop sequence
  10. ·create/drop synonym
  11. ·alter/create/drop/rename/truncate table
  12. ·alter/create/drop trigger
  13. ·alter/create/drop type
  14. ·alter/create/drop type body
  15. ·drop user
  16. ·alter/create/drop view

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

示例:

  1. SQL> alter system set enable_ddl_logging=true;
  2.  
  3. System altered.
  4.  
  5. SQL> create table t1(id int);
  6.  
  7. Table created.
  8.  
  9. SQL>

  

查看xml格式日志:

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

  

查看txt格式日志:

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

  

创建一个比较长的表:

  1. create table t2(
  2. t1 varchar2(20),
  3. t2 varchar2(20),
  4. t3 varchar2(20),
  5. t4 varchar2(20),
  6. t5 varchar2(20),
  7. t6 varchar2(20),
  8. t7 varchar2(20),
  9. t8 varchar2(20),
  10. t9 varchar2(20),
  11. t10 varchar2(20),
  12. t11 varchar2(20),
  13. t12 varchar2(20),
  14. t13 varchar2(20),
  15. t14 varchar2(20),
  16. t15 varchar2(20),
  17. t16 varchar2(20),
  18. t17 varchar2(20),
  19. t18 varchar2(20),
  20. t19 varchar2(20),
  21. t20 varchar2(20),
  22. t21 varchar2(20),
  23. t22 varchar2(20),
  24. t23 varchar2(20),
  25. t24 varchar2(20),
  26. t25 varchar2(20),
  27. t26 varchar2(20),
  28. t27 varchar2(20),
  29. t28 varchar2(20),
  30. t29 varchar2(20),
  31. t29 varchar2(20),
  32. t30 varchar2(20)
  33. )

 

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

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

  

12C -- DDL日志的更多相关文章

  1. oracle 12c 新特性之(相同字段上的多重索引、ddl 日志、限制PGA的大小、分页查询)

    1. 相同字段上的多重索引   在Oracle 12c R1之前,一个字段是无法以任何形式拥有多个索引的.或许有人会想知道为什么通常一个字段需要有多重索引,事实上需要多重索引的字段或字段集合是很多的. ...

  2. Oracle 12C -- ADRCI查看DDL日志

    $ adrci ADRCI: Release - Production on Tue Nov :: Copyright (c) , , Oracle and/or its affiliates. Al ...

  3. oracle 12c 警告日志位置

    Oracle 12c环境下查询,alert日志并不在bdump目录下,看到网上和书上都写着可以通过初始化参数background_dump_dest来查看alter日志路径,还说警告日志文件的缺省位置 ...

  4. Oracle 12c RAC 日志体系结构的变化

    1    说明 在11g中,查看GRID的日志,会进入$ORACLE_HOM/log. [grid@cndba.cn ~]$ cd $ORACLE_HOME/log/ [grid@cndba.cn l ...

  5. ENABLE_DDL_LOGGING 参数使用 监控对象的DDL(在alter 日志记录DDL语句)

    启用 DDL 日志记录 功能--支持动态调整 alter system set enable_ddl_logging=true; alter system set enable_ddl_logging ...

  6. Hibernate---基础配置之日志信息slf 及搭建日志环境

    slf日志接口, 实现有slf4j nodep, log4j hibernate里我们一般用 log4j,所以删除之前创建的hibernate 包里的 slf4j-nop包, 加入log4j-1.2. ...

  7. MySQL8.0 原子DDL

    Edit MySQL8.0 原子DDL 简介 MySQL8.0 开始支持原子 DDL(atomic DDL),数据字典的更新,存储引擎操作,写二进制日志结合成了一个事务.在没有原子DDL之前,DROP ...

  8. MySQL的日志(一)

    本文目录:1.日志刷新操作2.错误日志3.一般查询日志4.慢查询日志5.二进制日志 5.1 二进制日志文件 5.2 查看二进制日志 5.2.1 mysqlbinlog 5.2.2 show binar ...

  9. MySQL8.0新特性——支持原子DDL语句

    MySQL 8.0开始支持原子数据定义语言(DDL)语句.此功能称为原子DDL.原子DDL语句将与DDL操作关联的数据字典更新,存储引擎操作和二进制日志写入组合到单个原子事务中.即使服务器在操作期间暂 ...

随机推荐

  1. 【读书笔记】《深入浅出Webpack》

    Webpack版本 分析版本为3.6.0 4.0为最近升级的版本,与之前版本变化较大,编译输出的文件与3.0版本会不一致,目前项目中使用的版本3.0版本,所以基于3.0版本进行分析学习. Webpac ...

  2. 【AtCoder】CODE FESTIVAL 2017 qual A

    A - Snuke's favorite YAKINIKU -- #include <bits/stdc++.h> #define fi first #define se second # ...

  3. BZOJ1800 [Ahoi2009]fly 飞行棋 其他

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1800 题意概括 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请 ...

  4. 6-8 树 uva548

    read 的方式值得学习 当不知道每一行有多少个输入的时候 getline  在弄成stringstream!一个一个处理 用built递归的方式化大为小进行建立树 dfs 遍历整个树来求最值 变量的 ...

  5. Python - 常用更新命令以及常见库安装

    库的安装方式一般有两种: 一. pip直接安装(或使用豆瓣源) pip install scrapy pip install -i https://pypi.douban.com/simple/ sc ...

  6. linux shell cut 命令

    cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field,并提取 ...

  7. [OpenCV-Python] OpenCV 中的图像处理 部分 IV (六)

    部分 IVOpenCV 中的图像处理 OpenCV-Python 中文教程(搬运)目录 23 图像变换 23.1 傅里叶变换目标本小节我们将要学习: • 使用 OpenCV 对图像进行傅里叶变换 • ...

  8. windows下端口映射(端口转发)

    windows下端口映射(端口转发) 转载: https://blog.csdn.net/i1j2k3/article/details/70228043 本文是对网文的归纳整理,算不上原创,摸索过程亲 ...

  9. macos下mongoDB 3.4.5 添加用户、设置权限

    macos下mongoDB 3.4.5 添加用户.设置权限   在项目中需要根据项目运行环境访问,以不同的身份访问各自的db,所以研究了一下MongoDB的 需求: 给MongoDB添加两个用户分别用 ...

  10. 李宏毅机器学习笔记2:Gradient Descent(附带详细的原理推导过程)

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...