Янв 182016
 

Столкнулся с интересной проблемой: RMAN при бэкапе очень долго (вплоть до многих часов) висит на стадии resync catalog. Полез смотреть, что происходит на базе, содержащей backup catalog, и увидел, что вот этот запрос работает большую часть времени:

DELETE FROM ROUT
WHERE
DB_KEY = :B2 AND ROUT_SKEY;

В самой таблице ROUT записей не очень много, всего несколько десятков тысяч, а занимала она у меня порядка 3 Гб без учёта индексов. Continue reading »

Сен 012015
 

Через несколько дней после апгрейда БД на версию 12.1.0.2.4 (IBM AIX), внезапно среди рабочего дня база подвисла. AWR-отчёт собрать не удалось, база перестала отвечать по сети.

В Enterprise Manager была такая картинка (пока база ещё была доступна):

Скриншот из Enterprise Manager

Единственное, что удалось заметить - большинство сессий висят по событию log file sync. Догадались также собрать hanganalyze dump. Потенциальные проблемы с массивом и SAN быстро исключили.

Дело оказалось вот в чём. Continue reading »

Сен 202012
 

Наткнулся сегодня на интересное явление: после попытки завершения любой сессии путём убивания серверного процесса командой kill -9, PMON не вычищает эту сессию из v$session и не освобождает блокировки. Таким образом, не удаётся убить никакую сессию, даже сессию, не выполняющую никаких транзакций. При этом и "убитые" сессии и сам PMON висят с ожиданием latch free. Версия ORACLE - 9.2.0.8.

Решение найти удалось, но довольно странное. Continue reading »

Май 242012
 

При удалении некоторых пакетов или при каскадном удалении пользователя, иногда можно словить ошибки подобного вида:

SQL> drop user cube cascade;
drop user cube cascade
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04043: object SYS_PLSQL_735489_19_2 does not exist

Бороться с ними просто. Сначала найдём все системные типы, создаваемые для нашего объекта: Continue reading »

Апр 032012
 

При создании базы "с нуля" на raw devices с использованием VxVM на ORACLE 11.2.0.3 (Solaris 10) база создалась нормально, но при попытке проверить любой файл данных утилитой dbv получаем такой вывод:
Continue reading »

Мар 122012
 

При миграции БД с версии 10.2.0.4 на 11.2.0.3 вылез неприятнейший Bug 11074304, связанный с несовместимостью с пакетами, обработанными утилитой WRAP версии 9 с БД релиза 11.2.0.3. Патча для этого бага нет, а ставить старый релиз (в 11.2.0.1 этой проблемы почему-то нет) не хочется.
Решение вроде простое - обработать все пакеты WRAP'ом заново, но есть загвоздка: нет тривиального способа определить, какой версией WRAP'а пакет обработан.
Проведём небольшой эксперимент: обработаем какой-нибудь пакет 9 и 10 WRAP'ом и посмотрим его код, чтобы найти различия.
Итак, результат 9 WRAP: Continue reading »

Авг 242011
 

Сегодня обнаружил такую ошибку в alert log:

ORA-00600: internal error code, arguments: [18095], [0x9C96A09A8], [], [], [], [], [], []

Поиск по металинку дал номер бага: Bug 4939224.
Кратко: ошибку можно игнорировать.
Если интересна причина, прошу под кат. Continue reading »

Июл 082011
 

Разработчики наткнулись на интересный баг: при работе через dblink сессия на удалённой базе подвисает с событием ожидания enq: DX - contention. Вот testcase, демонстрирующий проблему: Continue reading »

Май 202011
 

При попытке собрать статистику с таблицы, получаем ошибку:

-- Собираем статистику
BEGIN
dbms_stats.export_table_stats(
	ownname =>       'CUBE',
	tabname => 'CUBE_TABLE',
	stattab => 'CUBE_STATS',
	statid  =>          '1',
	statown =>      'CUBE');
END; 
/

Версия 9.2.0.8:

ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.DBMS_STATS", line 5012
ORA-06512: at "SYS.DBMS_STATS", line 5539
ORA-06512: at line 2

Continue reading »

Май 112011
 

При копировании OID'ов (например, в целях создания тестового окружения или для резервирования) ORACLE рекомендует использовать утилиту ldifwrite, которая выгружает данные в файл формата LDIF.

Примерно так (нам нужно выгрузить всё содержимое): Continue reading »