溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

達夢關(guān)閉連接和線程

發(fā)布時間:2020-08-11 18:18:33 來源:ITPUB博客 閱讀:333 作者:yanhengdoudou 欄目:數(shù)據(jù)庫

、Oracle 和達夢 kill session 的差異

1.  Oracle 數(shù)據(jù)庫 其中一種 Kill Session 的方法:

Oracle --  ALTER SYSTEM KILL SESSION 殺死會話的基本語法如下所示。

SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';

RAC環(huán)境中,可以選擇指定INST_ID,在查詢GV$SESSION視圖時顯示。這允許終止不同RAC節(jié)點上的會話。

SQL> ALTER SYSTEM KILL SESSION 'sid,serial#,@inst_id';

KILL SESSION命令實際上不會終止會話。它只是要求會話自殺。在某些情況下,例如等待遠程數(shù)據(jù)庫的回復(fù)或回滾事務(wù),會話不會立即自行終止并等待當(dāng)前操作完成。在這些情況下,會話將具有“標記為殺死”的狀態(tài)。然后它會盡快被殺死。 除了上面描述的語法之外,還可以添加IMMEDIATE子句。

SQL> ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

這不會影響命令執(zhí)行的工作,但會立即將控制權(quán)返回給當(dāng)前會話,而不是等待確認kill。

2 . DM   殺會話

DM 數(shù)據(jù)庫采用的是線程架構(gòu),所有不能向Oracle那樣直接kill 進程,只能調(diào)用sp_close_session()來kill 線程殺掉會話。

SQL> select  sess_id,curr_sch ,sql_text,user_name,trx_id ,clnt_host,clnt_ip,osname, vpooladdr from sys.v$sessions where sql_text<>'';

LINEID     SESS_ID              CURR_SCH SQL_TEXT                                                                                                                        

---------- -------------------- -------- --------------------------------------------------------------------------------------------------------------------------------

           USER_NAME TRX_ID               CLNT_HOST CLNT_IP              OSNAME    VPOOLADDR           

           --------- -------------------- --------- -------------------- --------- --------------------

1          140615618728712      SYSDBA   select COMMENT$ from SYS.SYSCOLUMNCOMMENTS where SCHNAME='SYS' and TVNAME='SYSOBJECTS' and COLNAME='SUBTYPE$'

           SYSDBA    1871                 ahzhixin  ::ffff:192.168.20.45 Windows 8 140615618661112

2          140615954273032      SYSDBA   select  sess_id,curr_sch ,sql_text,user_name,trx_id ,clnt_host,clnt_ip,osname, vpooladdr from sys.v$sessions where sql_text<>'';

           SYSDBA    1874                 dm2       ::ffff:127.0.0.1     Linux     140615954205432

used time: 1.935(ms). Execute id is 57.

然后根據(jù)SESSION_ID使用系統(tǒng)過程SP_CLOSE_SESSION(SESSION_ID)來kill 會話:

SQL> SP_CLOSE_SESSION(140615618728712);

DMSQL executed successfully

used time: 1.099(ms). Execute id is 58.

SQL>

二、  關(guān)于線程的概念:

Oracle 數(shù)據(jù)庫中,有很多的進程,每個進程負責(zé)不同的功能。 而DM 數(shù)據(jù)庫使用“對稱服務(wù)器構(gòu)架”的單進程、多線程結(jié)構(gòu)。這種對稱服務(wù)器構(gòu)架在有效地利用了系統(tǒng)資源的同時又提供了較高的可伸縮性能,這里所指的線程即為操作系統(tǒng)的線程。

[root@dm1 dm]# ps -ef|grep dmserver

dmdba    21285     1  0 18:02 ?        00:00:04 /dm/dmdbms/bin/dmserver /dm/dmdbms/data/cndba/dm.ini -noconsole

root     21638 21435  0 23:52 pts/1    00:00:00 grep dmserver

[root@dm1 dm]#

服務(wù)器在運行時由各種內(nèi)存數(shù)據(jù)結(jié)構(gòu)和一系列的線程組成,線程分為多種類型,不同類型的線程完成不同的任務(wù)。線程通過一定的同步機制對數(shù)據(jù)結(jié)構(gòu)進行并發(fā)訪問和處理,以完成客戶提交的各種任務(wù)。DM 數(shù)據(jù)庫服務(wù)器是共享的服務(wù)器,允許多個用戶連接到同一個服務(wù)器上,服務(wù)器進程稱為共享服務(wù)器進程。

DM 進程中主要包括監(jiān)聽線程、IO 線程、工作線程、調(diào)度線程、日志線程等,可以通過DM 的動態(tài)性能視圖查看線程的相關(guān)信息。主要 相關(guān)的線程有如下4個:

V$LATCHES 記錄當(dāng)前正在等待的線程信息 V$THREADS 記錄當(dāng)前系統(tǒng)中活動線程的信息 V$WTHRD_HISTORY 記錄自系統(tǒng)啟動以來,所有活動過線程的相關(guān)歷史信息。 V$PROCESS 記錄服務(wù)器進程信息

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI