[20230214]資料庫連線訪問asm相關檢視.txt
[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部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2935888/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20230216]資料庫連線訪問asm相關檢視2.txt資料庫ASM
- 通過連線檢視資料庫相關資訊資料庫
- 檢視mysql資料庫連線數、併發數相關資訊MySql資料庫
- 連線到資料庫,你可以檢視織夢CMS的相關表結構和資料資料庫
- Oracle ASM 相關的 檢視(V$) 和 資料字典(X$)OracleASM
- 使用shell指令碼檢測資料庫連線訪問情況指令碼資料庫
- 關於WebLogic 訪問Oracle 資料庫(建立連線池)問題WebOracle資料庫
- 關於JPetstore連線資料庫問題資料庫
- 檢視oracle資料庫的連線數以及使用者檢視Oracle資料庫
- Oracle相關資料字典檢視Oracle
- (轉)檢視sql server 資料庫連線數方法SQLServer資料庫
- 請問,關於資料庫連線的問題。資料庫
- 如何在資料訪問層中引用資料庫連線池?資料庫
- 資料庫連線未關閉的問題資料庫
- 請教關於資料庫連線的問題資料庫
- 用連線池提高Servlet訪問資料庫的效率 (轉)Servlet資料庫
- jmap檢視java程式佔用的資料庫連線數Java資料庫
- 資料庫事物相關問題資料庫
- asm例項查詢asm相關檢視hang住解決方法ASM
- 關於資料庫連線池資料庫
- 關於資料庫連線的一些小問題資料庫
- 關於tomcat資料庫連線池的問題Tomcat資料庫
- [20130220]快速檢視連線資料庫的使用者數量.txt資料庫
- [20210428]資料庫連線加密.txt資料庫加密
- 檢視織夢CMS原始碼中的資料庫相關檔案原始碼資料庫
- 【ORACLE】物化檢視相關後設資料檢視欄位說明Oracle
- 關於java連線SQL資料庫JavaSQL資料庫
- [20181128]toad連線資料庫的問題.txt資料庫
- SQL Server建立使用者只能訪問指定資料庫和檢視SQLServer資料庫
- laradock 資料庫連線問題資料庫
- 關於用JB7連線資料庫的問題。資料庫
- 請關掉你的資料庫連線!並且請使用資料庫連線池資料庫
- 資料庫相關資料庫
- asm 文件中相關連結地址ASM
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 資料訪問連線池和執行緒池執行緒
- pl/sql dev連線oracle相關問題SQLdevOracle
- 資料庫檢視資料庫