OEMS作业和智能代理详解
在Sql*plus中提交作业与在OEMS中提交作业有如下区别: 1、在DBA_JOBS视图中查找不到在OEMS中提交并添加到库中的作业,同样,在OEMS的作业窗口中也不显示DBA_JOBS视图中的作业。OEMS中提交的作业在视图SMP_VIEW_JOBS、SMP_VIEW_JOB_EXECUTIONS、SMP_VIEW_JOB_HISTORY、SMP_VIEW_JOB_STATUS、SMP_VIEW_AGENT_JOBS中存在记录。 2、在Sql*plus中提交的作业不受OEMS中的诸多限制。 3、尽管作业在OEMS控制台提交,但作业脚本本身却存储在目标节点的智能代理中,作业的运行独立于智能代理。 原因在于在OEMS中从规划到完成作业顺序发生下列步骤: 1、从作业面板控制台,规划针对一个或多个节点定做的相同类型的一个或多个任务。 2、OEMS在资料档案库中存储作业信息并检查目标节点是否运行。如果节点或它的智能代理已经停止,则OEMS把作业列入队列。 3、一旦联系上目标节点,OEMS就把作业提交给该节点上的智能代理。作业可以并发地提交到多个节点。 4、智能代理按计划执行作业。 5、智能代理返回所有的作业相关信息到OEMS的与管理员访问级别相对应的控制台如果,智能代理不能联系到OEMS,则把作业相关信息列入队列。 配置智能代理 在ORACLE_HOME\network\admin路径下存储着网络配置文件,为智能代理生成两个文件snmp_ro.ora和snmp_rw.ora。前一个文件为只读,不必修改,只可以修改第二个文件。文件snmp_rw.ora中以"dbsnmpj"为前缀的选项为作业系统设置项。智能代理文件存储在目录ORACLE_HOME\network\agent中,所有被智能代理处理的作业和事件都位于此目录下,文件以".q"为扩展名。智能代理自动发现的服务注册在services.ora文件中。 
其它相关错误信息
发生错误"Could not fork or create job process. "或提示下列信息,则问题出在Windows NT下OEMS不能使用在多线程服务器(MTS)数据库的资料档案库,应该使运行资料档案库的数据库运行在独占服务器进程(dedicated server process)模式。 VNI-2016: Failed to fork job
Cause: The agent failed to create an operating system process for running the job.
Action: In the administrator preferences preferred credentials page, set the correct 
operating system user credentials for the target node. Check the number of processes 
running on the agent's machine. The operating system may restrict the number of 
processes.
VNI-2017: Agent restarted while job running.
Cause: The agent was restarted while the job process was running.
Action: Submit the job again.
VNI-2018: Job output lost.
Cause: The job output could not be written because of file errors.
Action: On the agent machine, check space availability, the permissions on the 
directory, and the system resources.
VNI-2019: Could not resume thread
Cause: Internal error
Action: Contact Oracle Worldwide Customer Support.
VNI-2020: System resources shortage
Cause: The job process could not be started after trying several times because of 
system resource shortage.
Action: Reduce the system work load by reducing the number of jobs.
 

解决方案 »

  1.   

    Go to the "$ORACLE_HOME/network/agent" directory. 
    In this directory, delete the following files: 
    SERVICES.ORA, *.q, *.inp, *.jou, out*, tcl*,DBSNMP.VER Go to the "$ORACLE_HOME/network/admin" or "TNS_ADMIN" 
    directory. 
    In this directory, delete the following files: 
    SNMP_RO.ORA, SNMP_RW.ORA Start agent with following command: 
    $ agentctl start
      

  2.   

    就修改主机名之后,服务就启不动了吧. (把 Oracle 的相关文件改回来就可以啦)不用急,就两三步可以搞定. :)
    在 Oracle 里修改相关的文件,把名字改回来就可以了~解决方法:
        1. 修改监听器的文件.
           ...Oracle目录 \Ora81\network\admin\listener.ora
           把里头的 Host = ... 改你现在的计算机名就可以啦~
        2. 修改服务名文件.
           ...Oracle目录\Ora81\network\admin\tnsnames.ora
           同样方法,把对应的 Host = ... 修改.
        3. 重启机子就可以啦~
      

  3.   

    NET8里面填机器名的地方换上IP就行了牧师呀牧师你的方法早就过时了,嘿嘿~~~今天专抬你的框~~~要是老换IP怎么办呀?重配呗
      

  4.   

    呵呵...是呀~   在配置Net8 的时候,在 主机名 这一项输入 IP 地址就可以 :)
      

  5.   

    如果需要老换IP的话,我建议你自己写一个这样的小工具
    只要你修改了IP以后,你运行这个工具,自动就把ORACLE的设置改过来就可以了
    不过:如果数据库的IP经常 改的话,下面的客户端还能连接的上来吗?
    不太可能吧!
      

  6.   

    是在net8 configuration assistant里对监听程序配置进行修改吗?怎么没找到改主机名的地方!
      

  7.   

    好了,现在服务可以启动了,但是我在manager console里的navigator右键单击某个控件进行编辑时,会提示:登陆时不具备sysdba权限,所有空间都是只读。
    可我还使用sysman登陆的啊,是不是主机名修改前后权限不一样啊,该怎么赋给他sysdba的权限呢?