签到成功

知道了

CNDBA社区CNDBA社区

Oracle 配置 日志记录 DDL 操作

2024-01-15 21:17 321 0 原创 Oracle 19c
作者: dave

1 enable_ddl_logging 参数说明

正常情况下,Oracle 的 log 日志中是不会记录 DDL 操作的,所以对于 DDL 操作的分析,只能通过审计平台来进行。 http://www.cndba.cn/dave/article/131500

如果要跟踪 Oracle 的 DDL 操作记录,可以启动 DDL Logging 功能,配置ENABLE_DDL_LOGGING参数即可。 官网对该参数的说明如下:

https://docs.oracle.com/en/database/oracle/oracle-database/23/refrn/ENABLE_DDL_LOGGING.htmlhttp://www.cndba.cn/dave/article/131500

http://www.cndba.cn/dave/article/131500
http://www.cndba.cn/dave/article/131500

该参数默认为 False,支持在 PDB中修改。 启动改功能后,如下 DDL 会记录到 log 日志中:http://www.cndba.cn/dave/article/131500

ALTER/CREATE/DROP/TRUNCATE CLUSTER
ALTER/CREATE/DROP FUNCTION
GRANT
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
REVOKE
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

这里注意日志位置的不通:

http://www.cndba.cn/dave/article/131500
http://www.cndba.cn/dave/article/131500
http://www.cndba.cn/dave/article/131500http://www.cndba.cn/dave/article/131500

  1. 在 Oracle 11g 中,DDL 也会记录到 alert log 中。
  2. 在 Oracle 12c 中,会有个单独的 ddl 文件,注意有 xml 和文本两种格式的。

2 操作示例

2.1 11g

[dave@www.cndba.cn ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jan 15 21:03:07 2024

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

SQL> alter system set enable_ddl_logging=true scope=both;

System altered.

SQL> create table cndba as select * from dba_users;

Table created.

SQL>

查看日志:http://www.cndba.cn/dave/article/131500

[dave@www.cndba.cn trace]$ pwd
/data/app/oracle/diag/rdbms/orcl/orcl/trace
[dave@www.cndba.cn trace]$ tail -20 alert_orcl.log 
Private strand flush not complete
  Current log# 3 seq# 51 mem# 0: /data/app/oracle/oradata/orcl/redo03.log
Thread 1 advanced to log sequence 52 (LGWR switch)
  Current log# 1 seq# 52 mem# 0: /data/app/oracle/oradata/orcl/redo01.log
Mon Jan 15 09:06:39 2024
Thread 1 cannot allocate new log, sequence 53
Private strand flush not complete
  Current log# 1 seq# 52 mem# 0: /data/app/oracle/oradata/orcl/redo01.log
Thread 1 advanced to log sequence 53 (LGWR switch)
  Current log# 2 seq# 53 mem# 0: /data/app/oracle/oradata/orcl/redo02.log
Mon Jan 15 15:16:51 2024
Thread 1 cannot allocate new log, sequence 54
Private strand flush not complete
  Current log# 2 seq# 53 mem# 0: /data/app/oracle/oradata/orcl/redo02.log
Thread 1 advanced to log sequence 54 (LGWR switch)
  Current log# 3 seq# 54 mem# 0: /data/app/oracle/oradata/orcl/redo03.log
Mon Jan 15 21:03:44 2024
ALTER SYSTEM SET enable_ddl_logging=TRUE SCOPE=BOTH;
Mon Jan 15 21:04:00 2024
create table cndba as select * from dba_users
[dave@www.cndba.cn trace]$

2.2 19c

[dave@www.cndba.cn ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jan 15 21:05:21 2024
Version 19.21.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
BANNER_FULL
--------------------------------------------------------------------------------
BANNER_LEGACY
--------------------------------------------------------------------------------
    CON_ID
----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
         0

BANNER
--------------------------------------------------------------------------------
BANNER_FULL
--------------------------------------------------------------------------------
BANNER_LEGACY
--------------------------------------------------------------------------------
    CON_ID
----------


SQL> alter system set enable_ddl_logging=true scope=both;

System altered.

SQL>  create table cndba as select * from dba_users;

Table created.

SQL>

查看日志:有两种格式:

[dave@www.cndba.cn cndba]$ pwd
/data/app19c/oracle/diag/rdbms/cndba/cndba
[dave@www.cndba.cn cndba]$ grep -nr "create table cndba as" ./
./log/ddl/log.xml:6: <txt> create table cndba as select * from dba_users
./log/ddl_cndba.log:2:diag_adl: create table cndba as select * from dba_users
[dave@www.cndba.cn cndba]$ 


[dave@www.cndba.cn log]$ cat ddl_cndba.log 
2024-01-15T21:05:49.453536+08:00
diag_adl: create table cndba as select * from dba_users
[dave@www.cndba.cn log]$ 

[dave@www.cndba.cn ddl]$ pwd
/data/app19c/oracle/diag/rdbms/cndba/cndba/log/ddl
[dave@www.cndba.cn ddl]$ ll
total 4
-rw-r-----. 1 oracle19c oinstall 360 Jan 15 21:05 log.xml
[dave@www.cndba.cn ddl]$ cat log.xml 
<msg time='2024-01-15T21:05:49.453+08:00' org_id='oracle' comp_id='rdbms'
 msg_id='opiexe:5137:2946163730' type='UNKNOWN' group='diag_adl'
 level='16' host_id='www.cndba.cn' host_addr='fe80::3ad5:47ff:fec8:d139%bond0'
 pid='33016' version='2' con_uid='1'
 con_id='1' con_name='CDB$ROOT'>
 <txt> create table cndba as select * from dba_users
 </txt>
</msg>
[dave@www.cndba.cn ddl]$

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2237
    原创
  • 3
    翻译
  • 546
    转载
  • 186
    评论
  • 访问:6598374次
  • 积分:4242
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ