How to drop and recreate SYS.SYS$SERVICE_METRICS_TAB

简介: How to drop and recreate SYS.SYS$SERVICE_METRICS_TAB
  1. Check the existence of the SYS$SERVICE_METRICS_TAB
    SQL> col object_name for a30
    SQL> select object_name, object_type from dba_objects
    where objectname like '%SYS$SERVICE%';
    OBJECT_NAME OBJECT_TYPE

AQ$_SYS$SERVICE_METRICS_TAB_S TABLE
AQ$_SYS$SERVICE_METRICS_TAB_V EVALUATION CONTEXT
AQ$_SYS$SERVICE_METRICS_TAB_T TABLE
AQ$SYS$SERVICE_METRICS_TAB_S VIEW
AQ$_SYS$SERVICE_METRICS_TAB_N SEQUENCE
AQ$_SYS$SERVICE_METRICS_TAB_H TABLE
AQ$_SYS$SERVICE_METRICS_TAB_G TABLE
AQ$_SYS$SERVICE_METRICS_TAB_I TABLE
AQ$_SYS$SERVICE_METRICS_TAB_E QUEUE
AQ$_SYS$SERVICE_METRICS_TAB_F VIEW
AQ$SYS$SERVICE_METRICS_TAB VIEW
AQ$SYS$SERVICE_METRICS_TAB_R VIEW
SYS$SERVICE_METRICS_R RULE SET
SYS$SERVICE_METRICS_TAB TABLE
SYS$SERVICE_METRICS_N RULE SET
SYS$SERVICE_METRICS QUEUE

  1. Modify parameter job_queue_processes to 0 so that none of the AQ jobs start.
    alter system set job_queue_processes=0 scope=both sid='*';
  1. Drop Table SYS.SYS$SERVICE_METRICS_TAB:
    exec dbms_aqadm.drop_queue_table(queue_table=>'SYS.SYS$SERVICE_METRICS_TAB',force => TRUE);

NOTE: If this is a PDB, then connect to it and execute:

alter session set "_ORACLE_SCRIPT" = true;
exec dbms_aqadm.drop_queue_table(queue_table=>'SYS.SYS$SERVICE_METRICS_TAB',force => TRUE);

  1. Check whether the table,SYS$SERVICE_METRICS_TAB, dropped or not
    SQL> col object_name for a30
    SQL> select object_name, object_type from dba_objects
    where objectname like '%SYS$SERVICE%';
    no rows selected
  1. Recreate Queue tables:
    @$ORACLE_HOME/rdbms/admin/execsvr.sql
  1. Check whether the table SYS$SERVICE_METRICS_TAB, recreated or not:
    SQL> col object_name for a30
    SQL> select object_name, object_type from dba_objects
    where objectname like '%SYS$SERVICE%';
    OBJECT_NAME OBJECT_TYPE

AQ$_SYS$SERVICE_METRICS_TAB_S TABLE
AQ$_SYS$SERVICE_METRICS_TAB_V EVALUATION CONTEXT
AQ$_SYS$SERVICE_METRICS_TAB_T TABLE
AQ$SYS$SERVICE_METRICS_TAB_S VIEW
AQ$_SYS$SERVICE_METRICS_TAB_N SEQUENCE
AQ$_SYS$SERVICE_METRICS_TAB_H TABLE
AQ$_SYS$SERVICE_METRICS_TAB_G TABLE
AQ$_SYS$SERVICE_METRICS_TAB_I TABLE
AQ$_SYS$SERVICE_METRICS_TAB_E QUEUE
AQ$_SYS$SERVICE_METRICS_TAB_F VIEW
AQ$SYS$SERVICE_METRICS_TAB VIEW
AQ$SYS$SERVICE_METRICS_TAB_R VIEW
SYS$SERVICE_METRICS_R RULE SET
SYS$SERVICE_METRICS_TAB TABLE
SYS$SERVICE_METRICS_N RULE SET
SYS$SERVICE_METRICS QUEUE

  1. Modify parameter job_queue_processes
    alter system set job_queue_processes= scope=both sid='*';

Example:

alter system set job_queue_processes=10 scope=both sid='*';
If you explicitly set aq_tm_processes = 10 then there will be no processes available to maintain buffered messages.

Instance bounce might be required.

  1. Check AQ table is getting populated or not.
    SQL> select count(), msg_state, queue from
    AQ$SYS$SERVICE_METRICS_TAB
    group by msg_state,queue;
    COUNT(
    ) MSG_STATE QUEUE

   105 PROCESSED        SYS$SERVICE_METRICS            
     5 READY            SYS$SERVICE_METRICS       
相关文章
|
SQL
In order to run a trace against SQL Server you must be a member of sysadmin fixed server role or have the ALTER TRACE permission.
SQL用PROFILER时产生的权限问题。不用大开到SYSADMIN的权限吧。 用以下方法完美解决。只给TRACE权限。   SQL Server Profiler and ALTER TRACE permission Yesterday, I wanted to use SQL S...
1948 0
|
Oracle 关系型数据库 数据库
ORA-12537 if Listener (including SCAN Listener) and Database are Owned by Different OS User [ID 1069
ORA-12537 if Listener (including SCAN Listener) and Database are Owned by Different OS User [ID 1069517.
1435 0
|
SQL 存储 Oracle
【Oracle】-【show_space和show_space_asm】-执行存储过程show_space和show_space_asm报错
Sys建立show_space()和show_space_asm()。 Bisal执行提示: SQL> exec show_space('MY_OBJECTS', 'BISAL'); BEGIN show_space('MY_OBJECTS', '...
1037 0

热门文章

最新文章