Q.UNIX環境(HP-UX)で、importを途中で終了させる方法を教えて下さい。


話によると、開発機でimportを実行しているが、全然終わらず、

CPUとディスクI/Oの高負荷状態が続いて、他のテストに影響が

出てしまっているらしい。

ちなみに、このimportは強制終了しても、後日再実行すれば問題ないとの事。


という事であれば、ぱっと思いつくのは、以下の3つ。


1.importを実行しているセッション(画面)で「Ctrl+C」で終了する。
    これが一番簡単。
2.killコマンドで終了させる。
3.OracleのSQLコマンドでセッションを終了させる


本来であれば、下位のセッション、プロセスから終了させるというのが正しいので、
3の方法を実行して、それでも終了できない場合には、1又は2を試行するという
順番が正しいと思いますが、私だったら、迷わず1ですね。


「Ctrl+C」!!!えぇぇぇいっ!死ねぇぇぇぇっ!


ちょっと表現が過激ですが、2も3もコマンドは「kill」ですからね(^^;;


では、2と3の方法の具体的な実施手順を書いておこう。


◆UNIXのkillコマンドで終了する方法


  (1)psコマンドでimpのプロセスを確認する。


   impのプロセスは、psコマンドから、「imp」をキーワードに検索する。

 

    $ ps -ef | grep imp
    orauser 28360 27235 19 15:29:32 pts/tb 0:01 imp scott/tiger file=./expdata.dmp


    ここで出力されるプロセスID(左側。右のIDは親プロセスのID)を確認。

 

 (2)確認したプロセスIDを指定して「kill」コマンドを実行。

 

   $ kill 28360


    このコマンドで終了しない場合は、シグナル9で強制終了させる。

 

   $ kill -9 28360

 

    <注意事項>

      ・プロセスIDの確認は慎重に。
      ・間違って親プロセス(右側)を指定しない事。


◆OracleのSQLコマンドで終了させる方法

 

 (1)sqlplusにDBA権限のあるユーザで接続する。(SYS、SYSTEMなど)

 

   $ sqlplus system/password

 

 (2)impの実行セッションを確認する


    SQL> select username,sid,serial#,process,program

                   from v$session where program like 'imp%';

 

   USERNAME            SID    SERIAL#   PROGRAM
    ------------------------------------------------------------

    SCOTT                58        2035  imp@server1 (TNS V1-V3)

 

(3)上記で出力されたSID、SERIAL#を指定してセッションを強制終了させる。


   SQL> alter system kill session '58,2035';


以上