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)。切记切记。

clip_image001

 

重建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:执行下面脚本

SQLexec 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;

clip_image002

相关文章
|
存储 缓存 Linux
百度搜索:蓝易云【如何在Linux系统服务器中测试存储/磁盘I/O性能?】
这些工具可以帮助你测试磁盘的读取和写入性能,并提供各种性能指标和统计数据。请注意,在运行这些测试时,确保没有重要的数据存储在被测试的磁盘上,并谨慎操作以避免对系统和数据造成不必要的影响。
399 0
|
12月前
|
缓存 安全 Windows
错误代码0x80070570步骤
针对错误代码 ‌0x80070570‌(文件或目录损坏错误),以下是详细解决步骤:
|
NoSQL Java Redis
【Azure Redis Cache】对StackExchange.Redis IOCP错误消息的解读
【Azure Redis Cache】对StackExchange.Redis IOCP错误消息的解读
421 0
|
Linux 网络安全 网络协议
|
Oracle 关系型数据库
impdp导入卡住,等待事件wait for unread message on broadcast channel
impdp导入卡住,等待事件wait for unread message on broadcast channel
3718 0
|
6天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1917 6
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
5天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
651 111