zoukankan      html  css  js  c++  java
  • oracle rac logminer有限制用法及session_info为unknown情况

    这里只记录下有条件的情况如何使用     

     BEGIN

           dbms_logmnr.start_logmnr(

              dictfilename => '/u01/arch/logminer_dict.ora',
              starttime => to_date('20090808 22:00:00','yyyymmdd hh24:mi:ss'),
              endtime => to_date('20090808 23:40:00','yyyymmdd hh24:mi:ss')

           );

           END;

           /

    logminer中v$logmnr_contents实际也是根据v$session等视图对出来的,跟自己做的方法一样,所以想要在session_info字段中有client_info这个里有IP,就必须使用登录触发器,

    登录触发器:

    CREATE OR REPLACE TRIGGER on_logon_trigger
      AFTER logon ON DATABASE
    BEGIN
      dbms_application_info.set_client_info(sys_context('userenv',
                                                        'ip_address'));
    END;

    在那里添加IP,这样v$session中就有IP了,项目没问题是因为使用了登录触发器,也这么做了,所以有IP地址,但是session_info有时会有unknown的情况,原因查找可能如下:

    Problem:
    ========

    You have just built the LogMiner dictionary and started LogMiner. You query
    V$LOGMNR_CONTENTS expecting to see the USERNAME and SESSION_INFO for some
    particular redo or undo operation. However, the USERNAME field is NULL.
    This is NOT a recursive operation, and the USERNAME column is expected to
    contain a non-null value.


    Solution:
    =========

    This can result from your database parameter settings and also from the method
    you are using to mine redo logs using LogMiner.

    1. Ensure that database was in minimum supplemental logging at the time that
    the redo information was created:

    SQL> SELECT name, supplemental_log_data_min FROM v$database;

    NAME SUPPLEME
    ------------------------------ --------
    M10202WA YES

    2. Ensure that all archive redo logs containing the necessary redo
    information have been added to the LogMiner session.

    3. Ensure that the COMPATIBLE initialization parameter is set to 8.1.0
    or higher.

    SQL> show parameter compatible

    NAME TYPE VALUE
    ------------------------------------ ----------- ----------
    compatible string 10.2.0.2.0

    4. For Oracle8i and Oracle9i only: ensure that the TRANSACTION_AUDITING
    initialization parameter is set to TRUE (default).

    SQL> show parameter transaction_autiting

    NAME TYPE VALUE
    ------------------------------------ ----------- ----------
    transaction_auditing boolean TRUE


    Explanation:
    ============

    1. If minimum supplemental logging was not active at the time when the
    redo records were created, then LogMiner won't be able to obtain all
    the required information. The Oracle10g Database Utilities manual mentions:

    "By default, Oracle Database does not provide any supplemental logging,
    which means that by default LogMiner is not usable. Therefore, you must
    enable at least minimal supplemental logging prior to generating log
    files which will be analyzed by LogMiner."

    So, we have to Enable supplemental logging by using a command like this then
    the redolog that will be generated will contain the information:
    SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

    2. LogMiner does not store USERNAME and SESSION_INFO for all redo records.
    In order to have all necessary information available, LogMiner must have
    the appropriate logs added to the session. If the transaction being
    tracked spans multiple logs and you have not specified all archived redo
    logs, then LogMiner won't be able to obtain the value for the USERNAME.
    Also, if the log containing the initial user connection was not added,
    the SESSSION_INFO won't be available to LogMiner.

    3. LogMiner was first available in Oracle8i (8.1.x). If COMPATIBLE is set
    below 8.1.0 you will not have access to its full functionality.

    4. In Oracle9i and below, TRANSACTION_AUDITING is set to TRUE by default.
    It generates a redo record containing the user logon name, user name,
    session id, and some operating system (including client) information.
    When transaction_auditing is set to FALSE, this redo record is not written
    and the user information is not available to LogMiner.


    References:
    ===========

    B14215-01 - Oracle Database Utilities 10g Release 2 (10.2)

    Bug:1959969 "LOGMNR SHOWING NULL VALUES FOR USERNAME COLUMN IN
    V$LOGMNR_CONTENTS
    Bug:2998128 "NO INFORMATION ON V$LOGMNR_CONTENTS.SESSION_INFO FOR SOME ENT"
  • 相关阅读:
    Oracle:SQL语句--对表的操作——删除表
    Oracle:SQL语句--对表的操作——修改表名
    Oracle:SQL语句--对表的操作——修改表名
    Oracle:SQL语句--对表的操作—— 删除字段(即删除列)
    网络配置4:vlan间通信配置
    网络配置3:动态路由配置
    网络配置2:静态路由配置
    网络配置0:网络设备基础知识
    网络配置1:VLAN配置
    T-SQL之数据操作(一):增删改
  • 原文地址:https://www.cnblogs.com/zmlctt/p/3770571.html
Copyright © 2011-2022 走看看