[20230214]数据库连接访问asm相关视图.txt
--//上个星期遇到rac的crs down,事后看了一下,我估计访问asm相关视图出现阻塞情况.
--//以前测试过连接数据库的进程在访问asm相关视图时会启动一个访问asm实例的进程,然后将相关信息返回给数据库进程.也就是讲问题
--//出在访问asm的连接上.通过一个例子说明问题.
1.环境:
SYS@127.0.0.1:9014/ywdb> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.测试:
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
5658 3883 27429 DEDICATED 20388 468 54 alter system kill session '5658,3883' immediate;
--//spid=20388
# ps -ef | grep 2038[8]
oracle 20388 1 1 09:12 ? 00:01:07 oracleywdb1 (LOCAL=NO)
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> select count(*) from v$asm_diskgroup;
COUNT(*)
----------
2
# ps -ef | grep 2038[8]
oracle 20388 1 1 09:12 ? 00:01:07 oracleywdb1 (LOCAL=NO)
grid 25900 1 0 10:25 ? 00:00:00 oracle+ASM1_user20388_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
--//启动增加了1个访问asm的进程.格式为oracle+ASM1_user<spid>_<sid>.
--//session 1退出:
# ps -ef | grep 2038[8]
--//两者都消失.
3.继续测试:
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
5093 18557 39055 DEDICATED 30611 466 136 alter system kill session '5093,18557' immediate;
--//spid=30611
# ps -ef | grep 3061[1]
oracle 30611 1 0 08:24 ? 00:00:00 oracleywdb1 (LOCAL=NO)
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> select count(*) from v$asm_diskgroup;
COUNT(*)
----------
2
# ps -ef | grep 3061[1]
grid 15451 1 0 08:29 ? 00:00:00 oracle+ASM1_user30611_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 30611 1 0 08:24 ? 00:00:00 oracleywdb1 (LOCAL=NO)
--//kill -9 15451
# kill -9 15451
# ps -ef | grep 3061[1]
oracle 30611 1 0 08:24 ? 00:00:00 oracleywdb1 (LOCAL=NO)
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> select sysdate from dual ;
select sysdate from dual ;
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 30611
Session ID: 5093 Serial number: 18557
--//只要kill 连接asm的进程,连接数据库的主进程在执行sql语句时会断开.
4.补充:
--//我测试中还遇到1个奇特的现象记录如下:
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
3115 42709 39285 DEDICATED 31494 491 98 alter system kill session '3115,42709' immediate;
SYS@127.0.0.1:9014/ywdb/ywdb1> select count(*) from v$asm_disk;
COUNT(*)
----------
8
# ps -eLf | grep 3149[4]
oracle 31494 1 31494 0 1 08:49 ? 00:00:00 oracleywdb1 (LOCAL=NO)
--//可以发现这样并没有启动连接asm实例,我前面一直认为访问asm相关视图就会出现asm的连接,看来失算了.
--//也许访问v$asm_diskgroup非常特殊,它是已经汇总统计信息的视图.
--//注:看来生产系统前几天遇到的问题还很复杂,因为当时执行访问v$asm_disk视图也出现挂起情况.
SYS@127.0.0.1:9014/ywdb/ywdb1> select count(*) from V$ASM_DISKGROUP;
COUNT(*)
----------
2
# ps -eLf | grep 3149[4]
grid 10122 1 10122 0 1 08:51 ? 00:00:00 oracle+ASM1_user31494_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 31494 1 31494 0 1 08:49 ? 00:00:00 oracleywdb1 (LOCAL=NO)
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> select sysdate from dual ;
SYSDATE
-------------------
2023-02-15 08:52:10
--//再次访问v$asm_disk视图:
SYS@127.0.0.1:9014/ywdb/ywdb1> select count(*) from v$asm_disk;
COUNT(*)
----------
8
# ps -eLf | grep 3149[4]
oracle 31494 1 31494 0 1 08:49 ? 00:00:00 oracleywdb1 (LOCAL=NO)
--//连接asm实例进程关闭了.
SYS@127.0.0.1:9014/ywdb/ywdb1> select count(*) from V$ASM_DISKGROUP;
COUNT(*)
----------
2
# ps -eLf | grep 3149[4]
grid 17002 1 17002 0 1 08:53 ? 00:00:00 oracle+ASM1_user31494_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 31494 1 31494 0 1 08:49 ? 00:00:00 oracleywdb1 (LOCAL=NO)
--//再次打开建立新的连接,但是进程号已经变了.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2935888/ ,如需转载,请注明出处,否则将追究法律责任。