Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
Сессиоя видна в v$session,v$process i v$transaction.
 SHOW SESSION INFORMATION (GENERAL)  <=====================

USERNAME        OSUSER          MACHINE         PROGRAM
--------------- --------------- --------------- ------------------------------
       SID    SERIAL# SPID         PROCESS      STATUS   LOGON_TIME
---------- ---------- ------------ ------------ -------- ----------------
   COMMITS
----------
LVSACC          prdafc1         anlbilgh        MF1ppMD@anlbilgh (TNS V1-V3)
        56      49037 19790        12267        ACTIVE   18-06-2009 22:54
       391

 SHOW SESSION INFORMATION (I/O)       <=====================

    SID   BLK_GETS CONSISTENT_GETS PHYS_READS BLK_CHANGES CONSISTENT_CHANGES
------- ---------- --------------- ---------- ----------- ------------------
     56 2632835321       547059156      13475     1969932                445

 SHOW CURSOR INFORMATION IF AVAILABLE  <=====================

EXECUTIONS      LOADS PARSE_CALLS ROWS_ACCUMULATED HASH_VALUE
---------- ---------- ----------- ---------------- ----------
     45210         75        3246         10953429 2098035595
 SHOW LAST OR ACTIVE SQL              <=====================

insert into MF1_DUPCHECK_KEYS (PERIOD,SUB_PARTITION_ID,EVENT_KEY
,SYS_CREATION_DATE) values (:b1,:b2,:b3,sysdate)
 SHOW CURRENT WAITS                  <=====================

EVENT                                    SECONDS_IN_WAIT
---------------------------------------- ---------------
latch free                                          5865


Убит' с alter system kill session '56,49037'; не удалось.

SQL> alter system kill session '56,49037';
alter system kill session '56,49037'
*
ERROR at line 1:
ORA-00030: User session ID does not exist.


Процесса 12267 на удаленом сервере нету.

Убил с килл -9 19790 в UNIX local. Но сессия все еще активна и держит локи.

SQL>  @../locks/sel_sid_serial_holders.sql

Username   Term   PROGRAM          Kill String   Table Name                          Lock Held            Lock Requested
LVSACC     None   MF1ppMD@anlbilgh 56,49037      LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive
                                                 LVSACO.MF1_DUPCHECK_KEYS            Row Exclusive



Сама сессиya в wait на latch free:
                                                                                Secs.  Secs.
   SID UPID     Username    Latch                                               elap.  wait. Event
------ -------- ----------- -------------------------------------------------- ------ ------ ---------
    56 19790    LVSACC      88:mostly latch-free SCN G:482932377 M:1417082 S:2 ######   6458 latch fre
                            8896 IG:0 IM:0


Помогите убрать иначе придется базу перестартовывать.

Additional info:
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for HPUX: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

5 rows selected.




oracle@anlbilhh:/opt/oracle/VFNLAC1/admin/bdump # uname -a
HP-UX anlbilhh B.11.11 U 9000/800 1794622981 unlimited-user license

23 июн 09, 15:11    [7333560]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
убить сессию
Guest
Bardis

==> SHOW SESSION INFORMATION (GENERAL) <=====================

SID SERIAL# SPID PROCESS STATUS LOGON_TIME
---------- ---------- ------------ ------------ -------- ----------------
56 49037 19790 12267 ACTIVE 18-06-2009 22:54


Процесса 12267 на удаленом сервере нету.

Убил с килл -9 19790 в UNIX local. Но сессия все еще активна и держит локи.



V$SESSION
PROCESS VARCHAR2(12) Operating system client process ID

V$PROCESS
SPID VARCHAR2(12) Operating system process identifier


так что, похоже, убивать надо "с точностью до наоборот"
23 июн 09, 15:56    [7333879]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
heldir
Member

Откуда: Запорожье->Киев->Montreal
Сообщений: 757
Очень похоже на Note:1011386.6, варианта два - либо ждать (как долго - неизвестно), либо сделать то, чего Вам делать не хочется.
23 июн 09, 16:22    [7334087]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Elic
Member

Откуда:
Сообщений: 29991
Bardis
Но сессия все еще активна и держит локи.
select used_ublk from v$transaction where addr in (select taddr from v$session where sid = 56);
exec dbms_lock.sleep(10)
/
23 июн 09, 16:42    [7334234]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
QL> select used_ublk from v$transaction where addr in (select taddr from v$session where sid = 56);

 USED_UBLK
----------
       379

SQL> exec dbms_lock.sleep(10);

PL/SQL procedure successfully completed.

SQL> select used_ublk from v$transaction where addr in (select taddr from v$session where sid = 56);

 USED_UBLK
----------
       379

SQL> 

23 июн 09, 17:00    [7334326]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
етими 379 блоками я уже 3 часа любуюсь
23 июн 09, 17:01    [7334335]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
автор

так что, похоже, убивать надо "с точностью до наоборот"


да нет , все правильно.
23 июн 09, 17:02    [7334349]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
открыл калл в металинке. посмотрим что египтяне скажут.
23 июн 09, 17:05    [7334367]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
SQL> oradebug setorapid 56
ORA-00072: process "Unix process pid: 12048, image: oracle@anlbilhh (TNS V1-V3)" is not active
23 июн 09, 17:08    [7334382]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
убить сессию
Guest
Bardis

Процесса 12267 на удаленом сервере нету.

Убил с килл -9 19790 в UNIX local. Но сессия все еще активна и держит локи.

SQL> oradebug setorapid 56
ORA-00072: process "Unix process pid: 12048, image: oracle@anlbilhh (TNS V1-V3)" is not active


хм, какой же все таки номер процесса в операционке на сервере с субд оракл (осталось понять - удаленный и локальный это с какой стороны смотреть ? :) )
23 июн 09, 17:23    [7334443]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
SQL> r
  1  select a.SID,a.SERIAL#,a.PROCESS,a.MACHINE,b.PID,b.SPID from v$session a,v$process b
  2  where a.PADDR=b.ADDR
  3* and a.sid=56

       SID    SERIAL# PROCESS      MACHINE             PID SPID
---------- ---------- ------------ ------------ ---------- ------------
        56      49037 12267        anlbilgh             54 19790

12267 - UNIX PID on Client. - does not exist.
19790 - UNIX PID on Server - killed with kill -9 19790.

Почему он SID56 с PID 12048 связывает для меня тоже загадка.
23 июн 09, 17:37    [7334528]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
DВА
Member

Откуда:
Сообщений: 5439
Bardis
[src oracle]
Почему он SID56 с PID 12048 связывает для меня тоже загадка.


жираф большой ему видней

https://www.sql.ru/forum/actualthread.aspx?bid=3&tid=551899&hl=
23 июн 09, 17:46    [7334570]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
Bardis
Member

Откуда:
Сообщений: 294
ответ от суппорта. Умереть не встать!

As per my research, I have found Note 1011386.6 which explains your exact situation . The reason you cannot kill the session is because PMON is already trying to delete it. This is indicated by the fact that the serial number keeps changing. When PMON attempts to cleanup a dead session, it will increase the serial number. Since in your case, the session is still active for 4-5 days, PMON must have errored out on cleaning this session or have spin on this.

There are many bugs created against this issue but all of them closed as not a bug, or not being reproducible.

E.g: Bug 192228
Abstract: DEAD PROCESS IS NOT RELEASING ITS LOCKS
Status: 91,Closed, Could Not Reproduce

Presently the only workaround is to wait for PMON to clean up the job or to shutdown and startup the db. Please restart the database when possible and let us know the results.

Thank you,
Valentina
GCS
24 июн 09, 13:33    [7337415]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Пoмогите убить сессию.  [new]
titan4
Member

Откуда: Мама Азия
Сообщений: 32
Точно такая же ошибка на 9.2.0.8 (OS Solaris 10 sparc64). Говорим ораклу
'
alter system kill sessio
n',
он отвечает:
ORA-00030: User session ID does not exist.
Процесса в ОС уже нет, так что kill -9 тоже не поможет. used_ublk из v$transaction не меняется с самого начала проблемы. На данный момент открыли SR, но индусы пока не отвечают - а пользователи страдают, поскольку убитая сессия держит блокировки. Никто еще не придумал другого метода для решения проблемы, кроме перезагрузки?
17 май 11, 12:58    [10664054]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
titan4
Member

Откуда: Мама Азия
Сообщений: 32
Саппорт Оракла тупит. Я им написал, что процесса в ОС уже, а они написали чтобы я нашел SPID и сделал ему "kill -9" :(
18 май 11, 10:04    [10669256]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
?
Guest
Bug 6243069 - SESSIONS ARE KILLED BUT CONSUME 100% OF CPU
Базу в перезапуск
Патчиться надо было вовремя.

А суппорт ругать не след, 9.2.0.8 уж очень древняя версия,
только старперы помнят ее проблемы
20 май 11, 01:13    [10681697]     Ответить | Цитировать Сообщить модератору
 Re: Пoмогите убить сессию.  [new]
titan4
Member

Откуда: Мама Азия
Сообщений: 32
?,
Сегодня снова столкнулись с этим багом.
Спасибо за патчик, будем тестировать!
6 дек 11, 15:52    [11714258]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить