Июл 262012
 

Про скрипт utlrp.sql я уже писал. Он перекомпилирует все инвалидные объекты в несколько потоков. Обязателен на финальных шагах повышения версии базы или если по какой-то причине инвалидировалось множество объектов. Важная особенность - он компилирует только инвалидные объекты. Continue reading »

Июн 302011
 

Запрос из этого поста не очень удобен - он не показывает статусы объектов, на которые ссылается интересующий нас объект. Эту информацию можно получить, связав 2 представления: dba_dependencies и dba_objects по двум полям: имени и владельцу объекта - зависимости (reference).

Запрос будет выглядеть так: Continue reading »

Май 032011
 

А вот ещё один интересный случай проявления ORA-07445, очень похоже на эту ситуацию, но PL/SQL Developer тут не при чём.
Компилируем объекты и в alert log видим привычную невесёлую картину:

Errors in file /usr/oracle/coredump/testdb_ora_25305.trc:
ORA-07445: exception encountered: core dump [ptmak()+372] [SIGSEGV] [Address not mapped to object] [0x000000010] [] []

Посмотрим трейс /usr/oracle/coredump/testdb_ora_25305.trc (начало файла пропущено): Continue reading »

Фев 112011
 

Часто при компиляции объектов в PL/SQL Developer можно получить ошибку "ORA-03114: not connected to ORACLE". На первый взгляд может показаться, что это локальный или сетевой сбой, но в alert log можно увидеть такие сообщения об ошибках:

Thu Feb 10 19:08:05 2011
Errors in file /usr/oracle/coredump/testdb_ora_3696.trc:
ORA-07445: exception encountered: core dump [ptmak()+372] [SIGSEGV] [Address not mapped to object] [0x000000010] [] []

Это баг, описанный на металинке: Doc ID 726611.1. Связан он с тем, что PL/SQL Developer добавляет отладочную информацию в код пакета, что иногда приводит к возникновению этой ошибки.
Возможных путей решения проблемы два: Continue reading »

Дек 312010
 

В некоторых случаях, например, после установки патчсетов или инвалидации важных объектов раскомпилируются объекты в большом количестве (могут быть тысячи таких объектов). Чтобы их скомпилировать, есть стандартный скрипт utlrp.sql. Запускать его надо от имени SYS в sqlplus:

SQL> @?/rdbms/admin/utlrp

Continue reading »

Дек 302010
 

Случается такое, что объект не компилируется, и нужно узнать, от каких объектов он зависит.

SELECT * FROM dba_dependencies d
WHERE d.owner='OWNERNAME' AND d.name='OBJECTNAME';

Объекты, которых не хватает (например, те, на которые нет грантов), будут иметь REFERENCED_TYPE='NON-EXISTENT'.