前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle DB Link问题诊断时候的10046 Trace收集方法

Oracle DB Link问题诊断时候的10046 Trace收集方法

作者头像
SQLplusDB
发布2022-12-20 12:03:19
4270
发布2022-12-20 12:03:19
举报

编者按:知识整理。

【免责声明】本公众号文章仅代表个人观点,与任何公司无关,仅供参考。

编辑|SQL和数据库技术(ID:SQLplusDB)

对于DB Link收集10046 Trace时需要在DBlink源端和目标端都进行设置,具体如下:

代码语言:javascript
复制
1. 在DB Link目标端定义一个存储过程用于触发10046。
1.1. 事先在DB Link目标端的远程数据库上,赋予登录用户 alter session权限。
  例:
  SQL> grant alter session to <用户名>;

1.2. 在DB Link目标端定义一个存储过程
例:
  CREATE OR REPLACE PROCEDURE set10046trace as
  BEGIN
   execute immediate 'alter session set timed_statistics=true';
   execute immediate 'alter session set max_dump_file_size = UNLIMITED';
   execute immediate 'alter session set tracefile_identifier =''10046''';
   execute immediate 'alter session set events ''10046 trace name context forever , level 12 ''';
  END;
  /

  CREATE OR REPLACE PROCEDURE end10046trace as
  BEGIN
   execute immediate 'alter session set events ''10046 trace name context off ''';
  END;
  /

2.DBlink源端执行如下10046设置操作

例:
    alter session set tracefile_identifier='10046';
    -- 启用DBlink源端的SQL Trace
    alter session set events '10046 trace name context forever, level 12';
    -- 启用DBlink目标端的SQL Trace
    EXECUTE set10046trace@DBLK1;

    -- 执行问题SQL
    <SQL语句执行>

    -- 关闭DBlink源端的SQL Trace
    EXECUTE end10046trace@DBLK1;
    -- 关闭DBlink目标端的SQL Trace
    alter session set events '10046 trace name context off';
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SQL和数据库技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档