• Oracle Trace文件的创建表(create table)语句显示不完整


    Oracle Trace文件的创建表(create table)语句显示不完整

    版本:11.2.0.4.0

    在生产的某个用户上,发现重建索引后,多了个job在执行授权操作但是一直失败报表不存在。

     

      

    实际上,这个是触发了该用户下新创建表后将该表的查询权限授权到另外个用户下的触发器动作。

    由于该触发器是通过创建job来达到授权操作的(详情参考:【Oracle】如何让一个用户能够访问另外一个用户下所有的表),因此猜想重建索引过程内部有中间表SYS_JOURNAL_129096产生导致触发该动作。

    于是在测试环境对索引rebuild重建的时候做10046想验证猜想。

    在做10046的时候,发现create table的语句在trace信息中显示不完全。

    查询mos后发现这个是个BUG。

    mos文档:Trace does not Show Complete Create Table Command (文档 ID 2699142.1)

    创建测试表,创建测试索引后,开启10046。

    select value from v$diag_info where name like '%De%';
    alter session set events '10046 trace name context forever,level 12';

    然后执行重建索引动作。

    alter index idx_id rebuild online

    查看trace文件信息。

    .......
    PARSING IN CURSOR #139675731324240 len=162 dep=1 uid=256 oct=1 lid=256 tim=1628646603043867 hv=2894664243 ad='cc894a18' sqlid='cmb1thqq8k4jm'
    create table "ZKM"."SYS_J
    END OF STMT
    PARSE #139675731324240:c=2032,e=2290,p=0,cr=2,cu=0,mis=1,r=0,dep=1,og=1,plh=0,tim=1628646603043866
    ......
    =====================
    PARSING IN CURSOR #139675731345368 len=42 dep=1 uid=0 oct=12 lid=0 tim=1628646603184203 hv=1682030665 ad='7f08ca55b888' sqlid='6zx6s1pk43h29'
    drop table "ZKM"."SYS_JOURNAL_96891" purge
    END OF STMT
    PARSE #139675731345368:c=386,e=386,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1628646603184202

    可以看出,create table的sql是不全的。

    不过已经可以看出,重建索引是会产生中间表的。

    根据mos文档确定这是Bug 18705302 - 10046 TRACE DOES NOT SHOW COMPLETE CREATE TABLE COMMAND.

    有对应的补丁,打上后再试试看。

    由于补丁是个热补丁(Online Patch),通过如下命令打上。

    opatch apply online -connectString zkm:sys:oracle:

    查看补丁信息:

    [oracle@zkm ~]$ opatch lspatches
    18705302;
    18034737;
    31668908;OJVM PATCH SET UPDATE 11.2.0.4.201020
    31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)
    29938455;OCW Patch Set Update : 11.2.0.4.191015 (29938455)
    
    OPatch succeeded.
    [oracle@zkm ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 13 15:13:13 2021
    
    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
    
    15:13:13 SYS@zkm(1012)> oradebug patch list
    
    Patch File Name                                   State
    ================                                =========
    bug18705302.pch                                  ENABLED

      

    再次对重建索引过程做10046,这个时候的trace文件信息:

    ......
    =====================
    PARSING IN CURSOR #139675728531096 len=162 dep=1 uid=256 oct=1 lid=256 tim=1628646745736758 hv=2894664243 ad='cc894a18' sqlid='cmb1thqq8k4jm'
    create table "ZKM"."SYS_JOURNAL_96891" (C0 NUMBER(*,0),  opcode char(1), partno number,  rid rowid, primary key( C0 , rid )) organization index TABLESPACE "USERS"
    END OF STMT
    PARSE #139675728531096:c=1328,e=1381,p=0,cr=2,cu=0,mis=1,r=0,dep=1,og=1,plh=0,tim=1628646745736756
    ......
    =====================
    PARSING IN CURSOR #139675730049784 len=42 dep=1 uid=0 oct=12 lid=0 tim=1628646745813321 hv=1682030665 ad='7f08ca55b888' sqlid='6zx6s1pk43h29'
    drop table "ZKM"."SYS_JOURNAL_96891" purge
    END OF STMT
    PARSE #139675730049784:c=444,e=444,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=1628646745813320
    ......

    至此。

  • 相关阅读:
    css3圆角细节
    css3伪元素
    使用vscode在谷歌上运行代码
    SpringCloud-技术专区-Gateway优雅的处理Filter抛出的异常
    SpringCloud-技术专区-Gateway全局通用异常处理
    Mybatis-技术专区-插件开发指南
    消息中间件-技术专区-RabbitMQ基本介绍
    SpringBoot-技术专区-自定义TaskExecutor线程池
    MySQL-技术专区-Binlog和Redolog的介绍
    SpringBoot-技术专区-Redis同数据源动态切换db
  • 原文地址:https://www.cnblogs.com/PiscesCanon/p/15137533.html
Copyright © 2020-2023  润新知