セッション情報の確認と切断 〜sp_who〜
セッション情報の確認と切断
〜sp_who〜
0.更新履歴
  - 2002.01.21 新規作成
  
- 2002.03.02 読み方を追加.
			
- 2002.09.01 関連書類へのリンク追加.
		
1.はじめに
 このドキュメントでは,sybaseにて,現在のセッション情報の確認と,セッションの切断方法について説明する.
2.セッション情報の確認
  - sp_whoコマンドを使うと,現在データベースに接続しているセッションが表示される.
		
  
    | 1> sp_who
2> go
 spid   status       loginame     hostname   blk   dbname     cmd
 ------ ------------ ------------ ---------- ----- ---------- ----------------
      1 runnable     scott        test-db    0     pubs2      AWAITING COMMAND
      2 sleeping     NULL                    0     master     NETWORK HANDLER
      3 sleeping     NULL                    0     master     DEADLOCK TUNE
      4 sleeping     NULL                    0     master     MIRROR HANDLER
      5 runnable     NULL                    0     master     HOUSEKEEPER
      6 runnable     NULL                    0     pubs2      CHECKPOINT SLEEP
      7 recv sleep   gyotest                 0     GYOUMUDB_T AWAITING COMMAND
      8 recv sleep   gyotest                 0     GYOUMUDB_T AWAITING COMMAND
      9 running      sa           test-db    0     master     SELECT
(9 rows affected, return status = 0)
1> | 
		
  - loginnameがNULLになっているものは,システムのセッションである.
3.セッションの強制終了
		
  - spidを指定してkillコマンドを使うことで,そのセッションを強制終了する事ができる.
  
    | 1> kill 1
2> go
1> sp_who
2> go
 spid   status       loginame     hostname   blk   dbname     cmd
 ------ ------------ ------------ ---------- ----- ---------- ----------------
      2 sleeping     NULL                    0     master     NETWORK HANDLER
      3 sleeping     NULL                    0     master     DEADLOCK TUNE
      4 sleeping     NULL                    0     master     MIRROR HANDLER
      5 sleeping     NULL                    0     master     HOUSEKEEPER
      6 sleeping     NULL                    0     master     CHECKPOINT SLEEP
      9 running      sa           test-db    0     master     SELECT
(6 rows affected, return status = 0)
1> | 
		
  - プロセス1がなくなったことがわかる.
  
- なお,spidとは,ServerProcessIDの略.
4.邪魔しているプロセスを調べる
		
  - ある処理が,ほかの処理が邪魔をしてて処理できないことがある.
  
- DBの場合,“ロック待ち”などの状態でそれが発生する.
  
- sp_whoで現在のプロセスを確認する.
  
    | 1> sp_who
2> go
 spid   status       loginame     hostname   blk   dbname     cmd
 ------ ------------ ------------ ---------- ----- ---------- ----------------
      1 recv sleep   baka         linux01    0     BABADB     AWAITING COMMAND
      2 sleeping     NULL                    0     master     NETWORK HANDLER
      3 sleeping     NULL                    0     master     DEADLOCK TUNE
      4 sleeping     NULL                    0     master     MIRROR HANDLER
      5 sleeping     NULL                    0     master     HOUSEKEEPER
      6 sleeping     NULL                    0     master     CHECKPOINT SLEEP
      7 recv sleep   baba                    0     BABADB     AWAITING COMMAND
      8 lock sleep   baba                    9     BABADB     SELECT
      9 recv sleep   baba                    0     BABADB     AWAITING COMMAND
     20 lock sleep   baba                    9     BABADB     SELECT
     21 running      baba         linux01    0     master     SELECT
     22 lock sleep   baba                    9     BABADB     SELECT
     23 recv sleep   sa           linux01    0     master     AWAITING COMMAND
(21 rows affected, return status = 0)
1> | 
		
  - blk列に表示されているのが,そのプロセスをブロックしているプロセスのIDである.
  
- この一覧を見ると,spid 8とspid 22がSELECT文を発行しようとしている.
  
- しかし,ともに,lock sleep状態である.
  
- つまり,ロック取得を待っている状態.
  
- それらのblk列をみると,spid 9の処理を待っていることがわかる.
  
- spid 9は,AWAITING COMMANDとなっており,statusも,recv sleepとなっているため,なにも実行していない模様.
5.statusの読み方
		
  
    | status | 説明 | 
  
    | recv sleep | ネットワーク読み込み中. | 
  
    | send sleep | ネットワーク送信中. | 
  
    | alarm sleep | waitfor delay? | 
  
    | lock sleep | ロック取得待機中 | 
  
    | sync sleep | ファミリのほかのプロセスからの同期メッセージ待機中 | 
  
    | runnable | 実行可能プロセスをキューに登録中 | 
  
    | running | 実行中 | 
  
    | log suspend | トランザクションログが一杯になって待機中. | 
			
		
		強制終了するとやばいもの
   
  
    | status | 説明 | 
  
    | sleeping | ディスクIO待ち. | 
  
    | infected | Sybaseの内部エラー.サーバのリブートで対処. | 
  
    | background | サーバのプロセス. | 
		
			
ご参考