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日志的更多相关文章

  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. js手机端和pc端加载不同的样式

    function loadCSS() {     if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android| ...

  2. 【Java】 剑指offer(38) 字符串的排列

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串ab ...

  3. char与unsigned char的区别

    #include <stdio.h> int main() { unsigned ; char b = a; printf("a = %d , b = %d",a,b) ...

  4. header 和http状态码

    select qg.*,gg.finalgrade,gi.itemname,gi.courseid,gi.itemmodule,gi.itemtype from mymdl_quiz_grades a ...

  5. 2n皇后问题【dfs】

    <题目链接> 题目描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后 ...

  6. 学机器学习,不会数据分析怎么行——数据可视化分析(matplotlib)

    前言 前面两篇文章介绍了 python 中两大模块 pandas 和 numpy 的一些基本使用方法,然而,仅仅会处理数据还是不够的,我们需要学会怎么分析,毫无疑问,利用图表对数据进行分析是最容易的, ...

  7. Jmeter脚本录制方法(二)手工编写脚本(jmeter与fiddler结合使用)

    jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...

  8. Spring Boot 入门详细分析

    推荐阅读: 我们为什么要学习 Spring Boot 我们搭建 Spring Boot 项目,可以使用 Spring 为我们提供的初始化网站,那个可能不太方便,今天呢,我们就来说说如何使用 IDEA ...

  9. 【Java并发核心三】CountDownLatch、CyclicBarrier及Phaser

    个人感觉,看书学习还是需要“不求甚解”,因为一旦太过于计较小的得失,就容易钻牛角尖,学习进度也慢.我们完全可以先学一个大概,等到真正用到的时候再把那些细节丰富起来,就更有针对性. 所以,针对java并 ...

  10. python——描述符

    本文主要介绍描述符的定义,个人的一些理解:什么是数据描述符:什么是非数据描述符:描述符的检测等.希望看完这篇文章后,你对描述符有了更清晰的认识.知道怎么判断一个对象是不是描述符,知道如果定义一个描述符 ...