[20230216]資料庫連線訪問asm相關檢視2.txt
[20230216]資料庫連線訪問asm相關檢視2.txt
--//前幾天驗證了連線資料庫的程式在訪問asm相關檢視時會啟動一個訪問asm例項的程式,然後將相關資訊返回給資料庫程式.
--//當時訪問v$asm_disk檢視時出現一個奇怪現象,就是完成後會關閉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.測試補充:
--//我測試中還遇到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檢視也出現掛起情況.
--//後記:前面內容是我當時測試時的推測,仔細想想可能不對!!因為當時出現問題時我確實訪問v$asm_disk檢視也出現掛起情況.
--//一定asm例項出現問題,我猜測訪問v$asm_disk時先要連線asm例項,完成後關閉asm例項.我後面的測試驗證這個細節.
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)
--//再次開啟建立新的連線,但是程式號已經變了.
4.繼續測試:
--//session 1:
SYS@127.0.0.1:9014/ywdb/ywdb1> @ spid
SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
3681 55919 15583 DEDICATED 4259 493 12 alter system kill session '3681,55919' immediate;
cat aa.txt
select count(*) from v$asm_disk;
/
.
/
--//加入1000個/.這樣連續執行1000次select count(*) from v$asm_disk;命令.
--//session 2:
# seq 30000 | xargs -IQ ps -ef | grep oracle+ASM1_user31494_ywdb1 | tee /tmp/asm.tmp
# tail -6 /tmp/asm.tmp
grid 25252 1 1 08:57 ? 00:00:00 oracle+ASM1_user4259_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
grid 25256 1 0 08:57 ? 00:00:00 oracle+ASM1_user4259_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
grid 25256 1 1 08:57 ? 00:00:00 oracle+ASM1_user4259_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
grid 25260 1 0 08:57 ? 00:00:00 oracle+ASM1_user4259_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
grid 25264 1 0 08:57 ? 00:00:00 oracle+ASM1_user4259_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
--//第2列程式號發生變化.
# ps -ef | grep 425[9]
oracle 4259 1 2 08:47 ? 00:00:06 oracleywdb1 (LOCAL=NO)
grid 22237 1 2 08:50 ? 00:00:00 oracle+ASM1_user4259_ywdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
--//你可以發現訪問 v$asm_disk檢視一樣會建立連線,而且每次連線完成都會斷開建立新的連線.
# ps -ef | grep 425[9]
oracle 4259 1 2 08:47 ? 00:00:22 oracleywdb1 (LOCAL=NO)
--//至於為什麼出現這樣的情況,我不知道.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2935889/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20230214]資料庫連線訪問asm相關檢視.txt資料庫ASM
- 通過連線檢視資料庫相關資訊資料庫
- 檢視mysql資料庫連線數、併發數相關資訊MySql資料庫
- Oracle ASM 相關的 檢視(V$) 和 資料字典(X$)OracleASM
- 連線到資料庫,你可以檢視織夢CMS的相關表結構和資料資料庫
- 使用shell指令碼檢測資料庫連線訪問情況指令碼資料庫
- 關於WebLogic 訪問Oracle 資料庫(建立連線池)問題WebOracle資料庫
- 關於JPetstore連線資料庫問題資料庫
- 檢視oracle資料庫的連線數以及使用者檢視Oracle資料庫
- Oracle相關資料字典檢視Oracle
- (轉)檢視sql server 資料庫連線數方法SQLServer資料庫
- 請問,關於資料庫連線的問題。資料庫
- 如何在資料訪問層中引用資料庫連線池?資料庫
- 資料庫連線未關閉的問題資料庫
- 請教關於資料庫連線的問題資料庫
- 用連線池提高Servlet訪問資料庫的效率 (轉)Servlet資料庫
- jmap檢視java程式佔用的資料庫連線數Java資料庫
- 資料庫事物相關問題資料庫
- asm例項查詢asm相關檢視hang住解決方法ASM
- 關於資料庫連線池資料庫
- 關於資料庫連線的一些小問題資料庫
- 關於tomcat資料庫連線池的問題Tomcat資料庫
- 檢視織夢CMS原始碼中的資料庫相關檔案原始碼資料庫
- 【ORACLE】物化檢視相關後設資料檢視欄位說明Oracle
- 關於java連線SQL資料庫JavaSQL資料庫
- SQL Server建立使用者只能訪問指定資料庫和檢視SQLServer資料庫
- laradock 資料庫連線問題資料庫
- 關於用JB7連線資料庫的問題。資料庫
- 請關掉你的資料庫連線!並且請使用資料庫連線池資料庫
- 資料庫相關資料庫
- asm 文件中相關連結地址ASM
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 資料訪問連線池和執行緒池執行緒
- pl/sql dev連線oracle相關問題SQLdevOracle
- CentOS 7遠端連線相關問題CentOS
- 資料庫檢視資料庫
- 資料庫-檢視資料庫
- 檢視資料庫的當前連線session,以及其執行的sql資料庫SessionSQL