Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
Здравствуйте уважаемые Господа Ораклисты.
Возникла след. проблема -
Входные данные - Win 2000 server
Oracle 9.2.0.7 Enterprase Edition.
Запускается простенький инсерт из PL/SQL процедуры в таблицу в теле нескольких вложенных курсоров. На n-й итерации этот инсерт больше не проходит - транзакция с процедурой тупо виснет. При этом любой другой инсерт в эту же таблицу (из других сессий) так же не проходит.
При снятии сессии и ее повторной запуске (а так же при перезагрузке инстанца) всё повторяется
в той же самой последовательности - n-1 инсертов всё нормально на n-й всё виснет и таблица не вопринимает больше инсертов.
Проанализировал практически всё. Главное - таблица ничем не блокируется. То бишь блокировок (во время затыка) на таблицу не стоит. С ресурсами SGA то же всё нормально. Датафайлы в норме ! Никаких ошибок ни в каких трайс файлах нет ! Есть просто зависание транзакции с инсертом и всё.
Помогает: При перегрузки самого сервера с виндой ошибка исправляется, но у нас система работает практически круглосуточно, а этот инсерт находиться в важном еженедельном отчёте,
и прегружать винду крайне не желательно.
Частота ошибки - ничем не обусловлена. Отчет может 3-4 недели отработать без проблем на 5-ю
ошибка повторяется. Причем запускается этот отчет ночью когда никакие ресурсы не заняты.
Возникло предположение, что это баг где-то на уровне стыковки Oracle и Win2000.
Если кто-то встречался с такой проблемой подскажите пожалуйсто. Или лучше обратиться на металинк ?
С уважением Андрей
1 окт 07, 12:48    [4737722]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
пум-пурум
Guest
A K
Здравствуйте уважаемые Господа Ораклисты.
Возникла след. проблема -


v$session_wait смотрели?
1 окт 07, 12:51    [4737756]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
ORA_Worker
Member

Откуда: Москва
Сообщений: 263
Если есть возможность, то, конечно, лучше такие вещи сразу на metalink...
1 окт 07, 12:51    [4737757]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
A K
Проанализировал практически всё.

Что кажет 10046 level 8 в моменты "зависания"?
1 окт 07, 12:55    [4737800]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
xff
Guest
Только что поставил 9.2.0.7 себе. Могу у себя проверить, если код дадите.
1 окт 07, 12:55    [4737801]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
пум-пурум
A K
Здравствуйте уважаемые Господа Ораклисты.
Возникла след. проблема -


v$session_wait смотрели?


на завистшую сессию выдаёт -

32 40509 db file sequential read file# 5 00000005 block# 146246 00023B46 blocks 1 00000001 0 0 WAITING
1 окт 07, 13:09    [4737921]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
пум-пурум
Guest
Ограниченную информацию выдаёте. Возможно у вас в БД журналы переключиться не могут. Когда у вас этот инсёрт застыл, зайдите через sqlplus и попробуйте куда нибудь что-нибудь вставить. Будет зависание? Или просто выдайте alter system switch logfile - журналы переключаеются?
1 окт 07, 13:14    [4737958]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
пум-пурум
Ограниченную информацию выдаёте. Возможно у вас в БД журналы переключиться не могут. Когда у вас этот инсёрт застыл, зайдите через sqlplus и попробуйте куда нибудь что-нибудь вставить. Будет зависание? Или просто выдайте alter system switch logfile - журналы переключаеются?


У меня база в рабочем режиме и интенсивно работает уже где то с раннего утра - проблем с базой нет. Переключения журналов - гуева туча.
Как я уже писал в самом начале топика - я делал инсерт из другой сесии - он точно так же зависает. Во всём остальном база работает безупречно или около того. Бед блоков нет ни в одном датафайле - проверял лично. Какие еще вопросы ?
1 окт 07, 13:19    [4738003]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
DВА
Member

Откуда:
Сообщений: 5439
есть такой баг
1 окт 07, 13:20    [4738005]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
DВА
есть такой баг


Большое спасибо. Уже как-то стало легче.
У меня сейчас акаут фроузен и пока наш главный корпоративный админ его разморозит,
можете если Вам конечно не тяжело и я не сильно напрягаю, вкрадце сказать в чём суть бага и как его лечить ? Заранее благодарю !!!!
1 окт 07, 13:29    [4738079]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
DВА
Member

Откуда:
Сообщений: 5439
этот баг только в тп типа ASSM, если у вас manual - эт не то
При поиске свободного блока для вставки записи индекса, оракл шерстит кучу блоков, наблюдается усиленное db file sequential read, обычно когда записи вставляются в одной транзакции, но я наступала на что-то похожее в ситуации 1 долгоиграющаяя транзакция удаляет строки + куча других делают одиночные вставки.
Решение - металинк предлагает делать комиты, но лучше индексы вынести из ASSM или пропатчиться до 9.2.0.8
1 окт 07, 13:35    [4738138]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
DВА
этот баг только в тп типа ASSM, если у вас manual - эт не то
При поиске свободного блока для вставки записи индекса, оракл шерстит кучу блоков, наблюдается усиленное db file sequential read, обычно когда записи вставляются в одной транзакции, но я наступала на что-то похожее в ситуации 1 долгоиграющаяя транзакция удаляет строки + куча других делают одиночные вставки.
Решение - металинк предлагает делать комиты, но лучше индексы вынести из ASSM или пропатчиться до 9.2.0.8


Вы будете долго смеяться если увидите тот код. Код делали подрядчики. А мне это г-но надо теперь админить. Затыка в очень большой процедуре, которая генерит большой отчет плюс еще комулирует кучу разных промежуточных данных для других отчетов (автокомит не пройдёт будет нехорошая несогласованность). Теперь об индексах - это просто пипец. Прямо в начале процедуры
стоит -
Execute immediate ' create bitmap index FK_SZAYAVKA_ZAYV_ID on SCAT_ZAYAVKA (ZAYV_ID) tablespace INDX_BMP';
....
итак 12 разных индексов в то же пространство

Execute immediate ' create index I_SZAYAVKA_ENDDATE on SCAT_ZAYAVKA (END_DATE) tablespace INDX';
Execute immediate ' create index I_SZAYAVKA_ZV_DATE on SCAT_ZAYAVKA (ZV_DATE) tablespace INDX';
commit;

Так вот таб. пространство INDX_BMP - это мануал, а INDX - ASSM - как оказалось
Прошлый админ такую гуйню наворатил.
Теперь даже незнаю что делать. Подрядчики свой код не велели трогать...

Поможет ли 9.2.0.8 ?
1 окт 07, 14:10    [4738458]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
да еще хотел добавить -
отчёт конкретно висит с 11:00 прошлого дня в той же самой позиции и насколько я понял совсем на раздупляется.
1 окт 07, 14:13    [4738490]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
DВА
Member

Откуда:
Сообщений: 5439
если верить металинку - поможет :)
но не проверяла.
1 окт 07, 14:16    [4738508]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
DВА
если верить металинку - поможет :)
но не проверяла.


Ну вот чего я никак не могу понять так это - почему проблема лечится именно перегрузкой винды ? Почему не лечиться перегрузкой инстанца оракла, убийством сесии и т.д. ? И еще - отчёт стандартный - в других областях он работает вроде без проблем, конечно может быть у других стоят не 9.2.0.7 патч...? Но это так лирика :):):):)
1 окт 07, 14:24    [4738595]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
DВА
Member

Откуда:
Сообщений: 5439
да не факт, что это именно тот багЮ о котором я говорю :)
посмотрите, что именно читает зависшая сессия - какие блоки?
по параметрам ожидания
1 окт 07, 14:28    [4738642]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
.....
Member

Откуда:
Сообщений: 473
A K

Так вот таб. пространство INDX_BMP - это мануал, а INDX - ASSM - как оказалось
Прошлый админ такую гуйню наворатил.
Теперь даже незнаю что делать. Подрядчики свой код не велели трогать...

Поможет ли 9.2.0.8 ?



пересоздать indx - в чем проблема то?
1 окт 07, 14:53    [4738880]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
DВА
Member

Откуда:
Сообщений: 5439
.....
A K

Так вот таб. пространство INDX_BMP - это мануал, а INDX - ASSM - как оказалось
Прошлый админ такую гуйню наворатил.
Теперь даже незнаю что делать. Подрядчики свой код не велели трогать...

Поможет ли 9.2.0.8 ?



пересоздать indx - в чем проблема то?

Наверно в том, что там не только несколько пересоздающихся индексов :)
1 окт 07, 15:34    [4739213]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
Похоже таки проблема с индексом(ами) и как раз созданном в пространстве мануал, а не ASSM

смотрите делаю запрос select t.* from sys.v_$session_wait t
where event = 'db file sequential read' и через несколько секунд его повторяю -

SID SEQ# EVENT P1TEXT P1 P1RAW P2TEXT P2 P2RAW P3TEXT P3 P3RAW WAIT_TIME SECONDS_IN_WAIT STATE
1 32 10199 db file sequential read file# 6 00000006 block# 5114 000013FA blocks 1 00000001 0 0 WAITING

через несколько секунд

SID SEQ# EVENT P1TEXT P1 P1RAW P2TEXT P2 P2RAW P3TEXT P3 P3RAW WAIT_TIME SECONDS_IN_WAIT STATE
1 32 12548 db file sequential read file# 6 00000006 block# 13259 000033CB blocks 1 00000001 0 0 WAITING

где p1 = ......\INDX_BMP.DBF (мануал, а не ASSM)
1 окт 07, 15:59    [4739436]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
Тынц.
Guest
select owner, segment_name, segment_type
from dba_extents
where file_id = file#
and block# between block_id and block_id + blocks - 1
1 окт 07, 16:02    [4739464]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
Тынц.
select owner, segment_name, segment_type
from dba_extents
where file_id = file#
and block# between block_id and block_id + blocks - 1


не работает запрос
1 окт 07, 16:32    [4739642]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
evostr
Member

Откуда: Екатеринбург
Сообщений: 1278
A K
Тынц.
select owner, segment_name, segment_type
from dba_extents
where file_id = file#
and block# between block_id and block_id + blocks - 1


не работает запрос

Вместо file# и block# надо подставить Ваши значения соответсвенно файла и блока, полученные из v$session_wait.
1 окт 07, 17:09    [4739872]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
ZIA
Member

Откуда:
Сообщений: 104
declare
v_sid NUMBER;
v_seq NUMBER;
v_EVENT VARCHAR2(64);
v_P1TEXT VARCHAR2(32000);
v_P1 NUMBER;
v_P2TEXT VARCHAR2(32000);
v_P2 NUMBER;
v_owner VARCHAR2(30);
v_segment_name VARCHAR2(100);
v_segment_type VARCHAR2(30);
begin
 dbms_output.disable;
 dbms_output.enable(1000000);
 for i in 1..300 loop 
   dbms_lock.sleep(1);
   begin
   select t.SID, t.SEQ#, t.EVENT, t.P1TEXT, t.P1, t.P2TEXT, t.P2 
    into v_sid,v_seq,v_EVENT,v_P1TEXT,v_P1,v_P2TEXT,v_P2 
   from v$session_wait t
   where t.sid=32;  -- sid of problem session
   if v_EVENT in ('db file sequential read','db file scattered read') then
     select owner, segment_name, segment_type 
      into v_owner, v_segment_name, v_segment_type
     from dba_extents
     where file_id =v_p1
     and v_p2 between block_id and block_id + blocks - 1;
     dbms_output.put_line(v_sid||' '||v_seq||' '||v_EVENT||' '||v_owner||' '||v_segment_name||' '||v_segment_type);
   else
     dbms_output.put_line(v_sid||' '||v_seq||' '||v_EVENT||' '||v_P1TEXT||' '||v_P1||' '||v_P2TEXT||' '||v_P2);
   end if;
   exception
   when others then
    dbms_output.put_line('No waits in session ');
   end; 
 end loop;
end;

шаблон на скорую руку - каждую секунду 5 минут смотришь ожидания сессии
1 окт 07, 17:33    [4740025]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
evgenyg
Member

Откуда:
Сообщений: 355
DВА
если верить металинку - поможет :)
но не проверяла.

У металинка написано: что после большого not commited стирания большая вставка может быть медлительна.
К описанной автором проблеме это может быть имеет отношения но может быть и не имеет.
Желательно конечно 10046 trace увидеть.
1 окт 07, 18:51    [4740434]     Ответить | Цитировать Сообщить модератору
 Re: возможен ли баг оракла 9.2.0.7 на инсерте  [new]
A K
Member

Откуда:
Сообщений: 401
ZIA
declare
v_sid NUMBER;
v_seq NUMBER;
v_EVENT VARCHAR2(64);
v_P1TEXT VARCHAR2(32000);
v_P1 NUMBER;
v_P2TEXT VARCHAR2(32000);
v_P2 NUMBER;
v_owner VARCHAR2(30);
v_segment_name VARCHAR2(100);
v_segment_type VARCHAR2(30);
begin
 dbms_output.disable;
 dbms_output.enable(1000000);
 for i in 1..300 loop 
   dbms_lock.sleep(1);
   begin
   select t.SID, t.SEQ#, t.EVENT, t.P1TEXT, t.P1, t.P2TEXT, t.P2 
    into v_sid,v_seq,v_EVENT,v_P1TEXT,v_P1,v_P2TEXT,v_P2 
   from v$session_wait t
   where t.sid=32;  -- sid of problem session
   if v_EVENT in ('db file sequential read','db file scattered read') then
     select owner, segment_name, segment_type 
      into v_owner, v_segment_name, v_segment_type
     from dba_extents
     where file_id =v_p1
     and v_p2 between block_id and block_id + blocks - 1;
     dbms_output.put_line(v_sid||' '||v_seq||' '||v_EVENT||' '||v_owner||' '||v_segment_name||' '||v_segment_type);
   else
     dbms_output.put_line(v_sid||' '||v_seq||' '||v_EVENT||' '||v_P1TEXT||' '||v_P1||' '||v_P2TEXT||' '||v_P2);
   end if;
   exception
   when others then
    dbms_output.put_line('No waits in session ');
   end; 
 end loop;
end;

шаблон на скорую руку - каждую секунду 5 минут смотришь ожидания сессии


Спасибо, но
в Девелорпере и SQL плюсе запустил и зависло, причём фундаментально (не снимается из денвелопера)
1 окт 07, 19:17    [4740546]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить