Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 dba_object.object_type='UNDEFINED' 11.2  [new]
-2-
Member

Откуда:
Сообщений: 15330
11.2.0.2
Селект из all_scheduler_job_log и all_scheduler_job_run_details выдает ORA-01427 exact fetch...

Полез разбираться, накосячили во вьюхах с
FROM scheduler$_job_run_details j, scheduler$_event_log e
WHERE j.log_id = e.log_id
AND e.type# = 66 and e.dbid is null
AND ( e.owner = SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
      or  /* user has object privileges */
         ( select jo.obj# from obj$ jo, user$ ju where
             DECODE(instr(e.NAME,'"'),0, e.NAME,substr(e.NAME,1,instr(e.NAME,'"')-1)) = jo.name
             and e.type#=jo.type# /* 2010-11-26 fix ORA-01427 */
             and e.owner = ju.name and jo.owner# = ju.user#
             and jo.subname is null
         ) in
         ( select oa.obj#
             from sys.objauth$ oa
             where grantee# in ( select kzsrorol from x$kzsro )
         )
Так вот, объекты приводящие к ошибке висят в dba_objects как UNDEFINED и, судя по именам, связаны с шедулером. Часть из них есть и в 11.1.0.7. А кто это?
SYS.AQ_JOB$_448:
object_id=124436 type=JOB
object_id=124435 type=UNDEFINED
Еще меня смутил substr от начала строки до кавычки, но в данных не попадается.
26 ноя 10, 20:17    [9847876]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
-2-,

Интересно...

SELECT B.TYPE#
  FROM SYS.OBJ$ B
  WHERE B.OBJ# = 124435;

SELECT A.OWNER, A.OBJECT_NAME, B.TYPE#
  FROM DBA_OBJECTS A,
       SYS.OBJ$ B
  WHERE A.OBJECT_TYPE = 'UNDEFINED'
    AND B.OBJ# = A.OBJECT_ID;
26 ноя 10, 20:39    [9847971]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10045
Funny, but I was playing around with 11g and ran into same UNDEFINED type 77. There is a chance Orcale messed up and forgot to include it into XXX_OBJECTS definition (there are precedents). And type name would be something like SCHEDULER GLOBAL ATTRIBUTE since all objects of type 77 are of:

SQL> SELECT A.OWNER, A.OBJECT_NAME, B.TYPE#
  2    FROM DBA_OBJECTS A,
  3         SYS.OBJ$ B
  4    WHERE A.OBJECT_TYPE = 'UNDEFINED'
  5      AND B.OBJ# = A.OBJECT_ID;

OWNER                          OBJECT_NAME                         TYPE#
------------------------------ ------------------------------ ----------
SYS                            MAX_JOB_SLAVE_PROCESSES                77
SYS                            LOG_HISTORY                            77
SYS                            DEFAULT_TIMEZONE                       77
SYS                            EMAIL_SERVER                           77
SYS                            EMAIL_SENDER                           77
SYS                            LAST_OBSERVED_EVENT                    77
SYS                            EVENT_EXPIRY_TIME                      77
SYS                            FILE_WATCHER_COUNT                     77
SYS                            CURRENT_OPEN_WINDOW                    77

9 rows selected.

SQL> select * from dba_scheduler_global_attribute
  2  /

ATTRIBUTE_NAME                 VALUE
------------------------------ ------------------------------------------------------------
MAX_JOB_SLAVE_PROCESSES
LOG_HISTORY                    30
DEFAULT_TIMEZONE               US/Eastern
EMAIL_SERVER
EMAIL_SENDER
LAST_OBSERVED_EVENT
EVENT_EXPIRY_TIME
FILE_WATCHER_COUNT             0
CURRENT_OPEN_WINDOW

9 rows selected.

SQL> 

SY.
27 ноя 10, 03:41    [9849391]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
-2-
Member

Откуда:
Сообщений: 15330
SQL> SELECT obj#, name, B.TYPE# FROM SYS.OBJ$ B WHERE B.OBJ# in (124435,124436);

      OBJ# NAME                      TYPE#
---------- -------------------- ----------
    124435 AQ_JOB$_448                  96
    124436 AQ_JOB$_448                  66

SQL> SELECT A.OWNER, A.OBJECT_NAME, B.TYPE#, a.namespace FROM DBA_OBJECTS A, SYS.OBJ$ B WHERE A.OBJECT_TYPE = 'UNDEFINED' AND B.OBJ# = A.OBJECT_ID order by b.type#, b.name;

OWNER      OBJECT_NAME                    TYPE#  NAMESPACE
---------- ------------------------- ---------- ----------
SYS        CURRENT_OPEN_WINDOW               77         51
SYS        DEFAULT_TIMEZONE                  77         51
SYS        EMAIL_SENDER                      77         51
SYS        EMAIL_SERVER                      77         51
SYS        EMAIL_SERVER_CREDENTIAL           77         51
SYS        EMAIL_SERVER_ENCRYPTION           77         51
SYS        EVENT_EXPIRY_TIME                 77         51
SYS        FILE_WATCHER_COUNT                77         51
SYS        LAST_OBSERVED_EVENT               77         51
SYS        LOG_HISTORY                       77         51
SYS        MAX_JOB_SLAVE_PROCESSES           77         51
STRMADMIN  DB1$CAPTURE_DATAMART_Q            83         46 --есть еще QUEUE с этим именем
SYS        AQ_JOB$_448                       96         67

13 rows selected.
База создавалась 11.2.0.1 ee, потом установка патчсета 11.2.0.2.
27 ноя 10, 13:48    [9849774]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
SY
There is a chance Orcale messed up and forgot to include it into XXX_OBJECTS definition (there are precedents).


ЕМНИП, MATERIALIZED VIEW так забыли добавить в восьмёрке в dba_objects. :)

-2-,

в общем, SR, пусть регистрируют баг, а workaround могу предугадать - предложат поправить текст dba_objects.
27 ноя 10, 13:48    [9849776]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
-2-
Member

Откуда:
Сообщений: 15330
В общем, это какой-то джобозависимый объект, появившийся при манипуляциях со стримсами
OWNER        OBJECT_NAME             SUBOBJECT_NAME                 OBJECT_ID OBJECT_TYPE         CREATED         
------------ ----------------------- ------------------------------ --------- ------------------- ----------------
STRMADMIN    DB1$CAPTURE_DATAMART_Q                                 103038    QUEUE               11.10.2010 04:06
STRMADMIN    DB1$CAPTURE_DATAMART_Q  AQ_JOB                         124437    UNDEFINED           17.11.2010 19:12
SYS          AQ_JOB$_448                                            124435    UNDEFINED           17.11.2010 19:12
SYS          AQ_JOB$_448                                            124436    JOB                 17.11.2010 19:12
Осталось вспомнить, что это было. В аудите PL/SQL EXECUTE через Enterprise Manager c пустым obj_name и priv_used=MANAGE ANY QUEUE.
27 ноя 10, 14:28    [9849821]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
И из любопытства:

SQL> conn sys as sysdba
Введите пароль: 
Соединено.
SQL> column kglsttyp format a10
SQL> column indx format 999
SQL> column kglstdsc format a40
SQL> set lines 200 pages 9999
SQL> select kglsttyp, indx, kglstdsc from x$kglst
  2    where kglsttyp = 'NAMESPACE'
  3      and indx in (46,67)
  4   union all 
  5  select kglsttyp, indx, kglstdsc from x$kglst
  6    where kglsttyp = 'TYPE'
  7      and indx in (77,83,96);

KGLSTTYP   INDX KGLSTDSC
---------- ---- ----------------------------------------
NAMESPACE    46 SCHEDULER EVENT QUEUE INFORMATION
NAMESPACE    67 STREAMS PROPOGATION
TYPE	     77 TABLE
TYPE	     83 FUNCTION
TYPE	     96 LOB
27 ноя 10, 14:36    [9849828]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
SY
And type name would be something like SCHEDULER GLOBAL ATTRIBUTE


Практически дословно:

KGLSTTYP   INDX KGLSTDSC
---------- ---- ----------------------------------------
NAMESPACE    51 SCHEDULER GLOBAL ATTRIBUTE
27 ноя 10, 14:39    [9849833]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
-2-
Member

Откуда:
Сообщений: 15330
SQL> select kglsttyp, indx, kglstdsc from x$kglst where kglsttyp = 'NAMESPACE' and indx in (51,46,67) ;

KGLSTTYP         INDX KGLSTDSC
---------- ---------- ----------------------------------------
NAMESPACE          46 SCHEDULER EVENT QUEUE INFORMATION
NAMESPACE          51 SCHEDULER GLOBAL ATTRIBUTE
NAMESPACE          67 STREAMS PROPOGATION
Никакой корреляции между kglsttyp = 'TYPE' and obj$.type# не заметил.
27 ноя 10, 14:52    [9849850]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
-2-
Member

Откуда:
Сообщений: 15330
SQL> select kglsttyp, indx, kglstdsc, KGLSTIDN from x$kglst where KGLSTIDN in (77, 83, 96) and kglsttyp='TYPE';

KGLSTTYP         INDX KGLSTDSC                                   KGLSTIDN
---------- ---------- ---------------------------------------- ----------
TYPE              161 SCHEDULER GLOBAL ATTRIBUTE                       77
TYPE              167 SCHEDULER EVENT QUEUE INFORMATION                83
TYPE              180 STREAMS PROPOGATION                              96

27 ноя 10, 14:56    [9849856]     Ответить | Цитировать Сообщить модератору
 Re: dba_object.object_type='UNDEFINED' 11.2  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
-2-
Никакой корреляции между kglsttyp = 'TYPE' and obj$.type# не заметил.


Я тоже, это был просто эксперимент. :)
27 ноя 10, 14:56    [9849857]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить