您好,登錄后才能下訂單哦!
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。
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>
在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ù)器進程信息
免責(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)容。