Oracle 12c后enable_ddl_logging的日志位置变化

Oracle 12c后enable_ddl_logging的日志位置变化

先吐个槽,enable_ddl_logging功能是Oracle Change Management Pack 的一部分,需要作为单独的许可证购买,这是要单独花钱的吗......

开启enable_ddl_logging功能,

在11g中,我们在 ADR HOME/alert目录下仅以 XML 格式记录此 DDL 日志信息,而文本格式信息将记录在 ADR_HOME/trade/alert_<SID>.log 文件中

在12c及以后,日志位置换成了另外两个,同样分别以文本格式和XML格式存储。

具体为:

文本格式:ADR_HOME/log/ddl_<SID>.log

XML格式:ADR HOME/log/ddl/log.xml

其中,两种格式的记录有所区别,特别CDB模式下需要注意一个问题。

以19c为例子,获取ADR_HOME的值,

09:28:11 SYS@reposmdb(770)> col value for a100
09:28:17 SYS@reposmdb(770)> select name,value from v$diag_info where name = 'ADR Home';

NAME                      VALUE
------------------------- ----------------------------------------------------------------------------------------------------
ADR Home                  /u01/app/oracle/diag/rdbms/reposmdb/reposmdb

Elapsed: 00:00:00.00

启动enable_ddl_logging功能后,创建一张表(DDL操作)后查看日志,https://www.cnblogs.com/PiscesCanon/p/18366748

09:30:03 SYS@reposmdb(770)> show con_name

CON_NAME
------------------------------
CDB$ROOT
09:30:05 SYS@reposmdb(770)> show parameter enable_ddl_logging

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ----------------------------------------------------------------------------------------------------
enable_ddl_logging                   boolean                           TRUE
09:30:13 SYS@reposmdb(770)> create table zkm ( id int );

Table created.

Elapsed: 00:00:00.01

另外一个窗口查看日志:
[root@reposmdb log]# tail -200f ddl_reposmdb.log
...省略不相关部分...
2024-08-19T09:31:16.089350+08:00
diag_adl:create table zkm ( id int )

[root@reposmdb log]# tail -200f ddl/log.xml 
<msg time='2024-08-19T09:31:16.089+08:00' org_id='oracle' comp_id='rdbms'
 msg_id='opiexe:5154:2946163730' type='UNKNOWN' group='diag_adl'
 level='16' host_id='reposmdb' host_addr='192.168.1.100'
 pid='10658' con_uid='1' con_id='1'
 con_name='CDB$ROOT'>
 <txt>create table zkm ( id int )
 </txt>
</msg>

这里可以看出,文本格式的日志只会记录时间和ddl的语句,不能识别是哪个容器执行的,我试了切换其他容器数据库执行同样的ddl,无法看出区别。

而xml格式则比较详细,可以通过con_name指标看到容器名,从而区别开来,不过我个人感觉内容略显臃肿。

host_addr也并非client ip。

防。

参考:How to Enable and Monitor DDL Logging in 11g and 12c (文档 ID 2254010.1)

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值