EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS的删除创建

     在最近的一次优化过程中发现了ORACLE
10g中一个作业EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS执行相当频繁,其实以前也看到过,只是没有做过多
的了解和关注。这个任务在某些版本或某些情况会引起一些性能问题。其实
EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS这个作业是为Database
Control收集相关数据的一个作业,如果没有使用Database Control,完全可以删除。下面是官方介绍资料

 

The
EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS job performs all the
necessary maintenance tasks for the database control repository. These
tasks include :

+ Agent Ping Verification (EM_PING.MARK_NODE_STATUS)

+ Job Purge (MGMT_JOB_ENGINE.APPLY_PURGE_POLICIES)

+ Metric Rollup (EMD_LOADER.ROLLUP)

+ Purge Policies (EM_PURGE.APPLY_PURGE_POLICIES)

+ Repository Metric Severity Calculation (EM_SEVERITY_REPOS.EXECUTE_REPOS_SEVERITY_EVAL)

+ Repository Side Collections (EMD_COLLECTION.RUN_COLLECTIONS)

+ Send Notifications

This job should be running every minute for performing all the above operations.

 

如下所示,它执行的频繁相当频繁,一分钟执行一次

SQL> SELECT SCHEMA_USER, WHAT, INTERVAL FROM DBA_JOBS 
  2  WHERE WHAT='EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS();';
 
SCHEMA_USER          WHAT                                        INTERVAL
----------- -------------------------------------------- -------------------------
SYSMAN       EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS();   sysdate + 1 / (24 * 60)
 
SQL> 

移除EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS

 

如何移除这个任务呢,一般情况下使用要用sysman用户登录操作,具体步骤如下所示:

 

1:首先检查用sysman账号是否锁定了,如果锁定了需要解锁,如果没有的话,直接跳过这一步

SQL> show user;
USER is "SYS"
SQL> select username,account_status from dba_users where username='SYSMAN';
 
USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
SYSMAN                         EXPIRED & LOCKED
 
SQL> alter user sysman account unlock;
 
User altered.
 
SQL> alter user sysman identified by newpassword;
 
User altered.

 

2:查看并设置参数job_queue_processes为0(当设定该值为0的时候则任意方式创建的job都不会运行)

SQL> show parameter job_queue_processes;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     10
SQL> alter system set job_queue_processes=0;
 
System altered.
 
SQL> select * from dba_jobs_running;
 
no rows selected
 
SQL> select * from dba_jobs_running;
 
no rows selected
 
SQL> select * from dba_jobs_running;
 
no rows selected

 

3. 以sysman登录执行下面脚本,移除该作业

SQL> exec sysman.emd_maintenance.remove_em_dbms_jobs;
 
PL/SQL procedure successfully completed.
 
SQL> commit;
 
Commit complete.
 
SQL> 

当然也可以执行下面脚本来移除任务

SQL> @<ORACLE_HOME>\sysman\admin\emdrep\sql\core\latest\admin\admin_remove_dbms_jobs.sql;

 

4:查询DBA_JOBS视图,确认任务是否移除,重设参数job_queue_processes值

If the EM jobs were submitted as SYS (or another SYSDBA account), the removal must be done as SYS (or that specific) account.

注意:如果EM的作业是以sys或者其他sysdba
提交的,则必须使用sys账号登录才能移除,上面以sysman登录执行的脚本并不能移除该任务。具体可以在查询作业的时候留意LOG_USER字段
(LOG_USER的值为sysman的才是sysman提交的,否则为其它sysdba)。切记切记。

 

重建EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS

 

1:以sysman用户登录,确认参数job_queue_processes不为0

SQL> show user;
USER is "SYSMAN"
SQL>  show parameter job_queue_processes
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     0
SQL> alter system set job_queue_processes=10;
 
System altered.

 

2:执行下面脚本

SQL>  exec emd_maintenance.submit_em_dbms_jobs; 
 
PL/SQL procedure successfully completed.
 
SQL>@<ORACLE_HOME>\sysman\admin\emdrep\sql\core\latest\admin\ 
admin_submit_dbms_jobs.sql; 

 

3:重编译无效对象

PL/SQL procedure successfully completed.
 
SQL> exec emd_maintenance.recompile_invalid_objects;
 
PL/SQL procedure successfully completed.
 
SQL> 
 
For 11.1.0.7.0 and above databases:
SQL> exec emd_maint_util.recompile_invalid_objects;

时间: 2024-09-19 08:58:41

EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS的删除创建的相关文章

java调用存储过程-Java执行删除/创建临时表的存储过程时,获取的影响行数总是-1,求大师指点

问题描述 Java执行删除/创建临时表的存储过程时,获取的影响行数总是-1,求大师指点 如题所述,使用Java代码执行删除.创建临时表的存储过程时总是执行不成功(不报错, 但是获取的影响行数为-1),别的存储过程都可以执行成功,求大师指点啊, 存储过程和Java代码如下: 1.存储过程代码 ALTER PROCEDURE [dbo].[PROC_TEMP] AS BEGIN if object_id('tempdb..##temp') is not null Begin DROP TABLE #

php目录删除创建遍历

php教程目录删除创建遍历 实例目录结构:php执行文件与leaps教程oulcn目录处在同一级,创建的子目录处在leapsoulcn目录下. 第一步:使用php目录函数创建相关目录 复制代码 代码如下: <? mkdir("leapsoulcn",0777); mkdir("leapsoulcn/leapsoul",0777); mkdir("leapsoulcn/php",0777); mkdir("leapsoulcn/ph

linux下,如何用shell实现 删除创建时间超过指定时间的文件?

问题描述 请问下如何用shell实现删除指定创建时间的文件?如,我想删除创建时间超过N小时的缓存文件,这个shell该如何写呢?谢谢! 问题补充:hao117 写道 解决方案 find . -name "backup_*.gz" -mtime +7 -exec rm {} ;n小时创建把-mtime +7 改为-cmin n -amin n 查找系统中最后N分钟访问的文件 -atime n 查找系统中最后n*24小时访问的文件 -cmin n 查找系统中最后N分钟被改变状态的文件 -c

关于EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS()的问题

http://www.itpub.net/showthread.php?threadid=684486 select * from v$version----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64biPL/SQL Release 10.2.0.2.0 - Production CORE 10.

php目录、文件 遍历 删除 创建 操作 (php教程四)

定义和用法 mkdir() 函数创建目录. 若成功,则返回 true,否则返回 false. 语法 mkdir(path,mode,recursive,context)参数 描述 path 必需.规定要创建的目录的名称. mode 必需.规定权限.默认是 0777. recursive 必需.规定是否设置递归模式. context 必需.规定文件句柄的环境.context 是可修改流的行为的一套选项.  代码如下 复制代码 <?php mkdir("testing"); ?>

Win8.1系统如何删除创建的电源计划?

1.在桌面模式下右键单击左下角的[开始].    2.选择[控制面板].    3.选择[硬件和声音].    4.选择[电源选项].    5. 如果活动计划是要删除的计划,需更改一个不同的计划成为活动计划(此处更改为"平衡").    6. 在需要删除的计划右侧(此处以"我的自定义计划1 "为例),单击[更改计划设置].    7.选择[删除此计划].    8. 在出现的提示中,单击[确定]即可.        

三星平板W700如何删除创建的电源计划?(Win10)

1.在桌面模式下,使用鼠标右键点击左下角的[开始]图标.    2.选择[控制面板].    3.选择[系统和安全].    4.选择[电源选项].    5.如果活动计划是要删除的计划,需更改一个不同的计划成为活动计划(此处更改为"平衡").    6.在需要删除的计划右侧(此处以"我的自定义计划1 "为例),单击[更改计划设置].    7.选择[删除此计划].    8.在出现的提示中,单击[确定]即可.   

基于dom编程中 动态创建与删除元素的使用_基础知识

复制代码 代码如下: <html><head><script type="text/javascript">    function test(){                //createElement()  创建一个指定标签名的元素[比如:动态创建超链接]        var createa=document.createElement("a");        createa.id="a1";  

mongodb 数据库操作详解--创建,切换,删除_MongoDB

mongodb安装就不说了,请参考:centos yum 安装 mongodb 以及php扩展 一,创建,切换,删除数据库 [root@localhost zhangy]# mongo MongoDB shell version: 2.4.6 connecting to: tank > use test //创建 or 切换数据库 switched to db test > db.dropDatabase() //删除数据库 { "dropped" : "test