请教高手:
任务描述:
由于工作中经常遇到需要调整oracle的init参数配置文件(包括8i和9i),因此,需要记录这些init里面的parameter的修改情况到一张(或者多张)表里面。
要求:
1、某个数据库某一天的全部init的parameter值;(记录到指定的表中)
2、某个数据库某一天的某个parameter被修改了,需要实时的记录到指定的表中;请教开发高手给我解决方案。给出好的方案的给100分,完全解决的再另加100分,多谢

解决方案 »

  1.   

    1,创建一个表记录所有参数
    create table pp as select * from v$parameter;
    2,创建一个记录修改的表
    create table xg(NAME  VARCHAR2(64),NAME vRCHAR2(64));
    3,在pp表上创建一触发器;
    ceate trigger tg 
    after update
    on pp
    for each row
    begin
      insert into xg values(:new.name,:new.value);
      alter system set :new.name=:new.value;
    end;
    /
    同过修改pp表,来记录并修改系统
      

  2.   

    init参数配置   v$parameter
    然後對此數據進行審核,可以知道哪些記錄被修改過
      

  3.   

    tozhouguoling(zhou)
    你的方案我也考虑国,通过job是可以解决每天记录某个数据库的init参数;
    但是如何做到适时记录init参数的修改呢?
    你说的触发器是建立在表pp上的,可是pp表不是时时同步v$parameters视图的。如何做到pp表和v$parameters表同步呢,即:parameter被修改的时候,适时触发记录到表xg呢?
      

  4.   

    补充一下,需要提取某个数据库a的parameter的值,记录到数据库b中继续求助
      

  5.   

    每天把v$parameters视图更新到b库的表
    不可以吗?可以比较时间判断是否修改.
      

  6.   

    主要的难点在于:
    某个数据库某一天的某个parameter被修改了,需要实时的记录到另外一个数据库B指定的表中;主要就在实时上
      

  7.   

    最最最最笨的一个办法,写一个存储过程,里面放一个死循环,反复检测V$parameter,有变动马上更新到某某表,牺牲一部分系统资源,实现需求。想要结束,KILL SESSION。其他方法还没想出来
      

  8.   

    建立V_$PARAMETER上的触发器,我没有试过,楼主可以试下。
      

  9.   

    建立v$parameter上的触发器系统提示错误。
      

  10.   

    建立V_$PARAMETER上的触发器,我没有试过,楼主可以试下。
    ----------------
    今早试了一下,
    ORA-04089: 无法对 SYS 所有的对象创建触发器
    楼主再想办法吧.
      

  11.   

    建立同构表,在同构表上建立触发器,可能难点在于如何保持同构表和v$parameter视图保持一致。继续请教