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';
以上