Oracle Database Hang While Loading 3rd party SBT Library And After This Nobody Can Access The Databa...

Applies to:
Oracle Database - Enterprise Edition - Version 11.2.0.4 and later
Microsoft Windows x64 (64-bit)
Goal

This issue is Windows 2012 platform specific affecting 3rd party media managers when allocating SBT channels with RMAN.

We are seeing an issue where the rman sessions hangs and after which we cannot access the database through
sqlplus or rman.

We are seeing this issue only on Windows 2012.
Other Windows editions work fine.

This is causing service outage and Oracle service need to be restarted. When we analyze the wait-chain all the
Oracle DB service's threads are waiting for load to complete.

We are not able to reproduce this hang on any other Windows release only the Windows2012 edition.

 
Solution

Bug 18846036 - RMAN: WINDOWS HANDLE LOCKED BY ORACLE THREAD CAUSING HANG CONDITION
Fixed in Product Version: 12.2


Rediscovery:
Any process any in Console input handle while ReadConsole() in another thread context.

ERRORSTACK
==========

ntdll!NtDeviceIoControlFile+0xa
KERNELBASE!GetSystemDefaultLangID+0x18c
KERNELBASE!ReadConsoleA+0x175
KERNELBASE!ReadConsoleA+0x16
oracle!sksasmothrd+0xbc [sksa.c @ 309]
KERNEL32!BaseThreadInitThunk+0x1a
ntdll!RtlUserThreadStart+0x21

 

 


select * from v$session where username='SYS' and program='rman.exe'
    SYS    0    2147483644            INACTIVE    DEDICATED    0    SYS    a\backupadmin    55292:54940    a\EAISSVR    0    EAISSVR    rman.exe    2017/2/13 11:08:18    16802949    rman.exe    

8008

1.
10:52:44 SQL> @check.sql

TO_CHAR(SYSDATE,'YYYY-MM-DDHH24-MI-SS'
--------------------------------------
2017-02-13 10-54-06

Connected.

TO_CHAR(SYSDATE,'YYYY-MM-DDHH24-MI-SS'
--------------------------------------
2017-02-13 10-54-46


2.
check.sql

set time on
select to_char(sysdate,'yyyy-mm-dd hh24-mi-ss') from dual;
conn oper/oper123@eaisprod
select to_char(sysdate,'yyyy-mm-dd hh24-mi-ss') from dual;
set time off

 

3.in windows 任务管理器。

kill name as process name "rman.exe'

 

4. manaule kill oracle session

select 'alter system kill session ',''''||trim(t2.sid)||','||trim(t2.serial#)||''';'
  from v$locked_object t1,
       v$session t2
 where t1.session_id=t2.sid
 order by t2.logon_time;

 

5.still session "rman" is killed status.

 发现rman 进程无论是killed 状态,或者inactive 状态,都是会存在v$session 列表里,无法清理。

 

 

6.NO way try restarrt db

 

转载于:https://www.cnblogs.com/feiyun8616/p/6392730.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值