Oracleインスタンスのシャットダウンについて
手順
Oracleインスタンスの再起動
# su - oracle
$ whoami
oracle
$ ps -aef | grep ora
$ sqlplus / as sysdba
SQL> SELECT sid, serial#, username, status, machine, program, sql_id FROM v$session WHERE username IS NOT NULL and sid != USERENV('SID');
-- statusが「ACTIVE」のものが存在しないこと
-- 「ACTIVE」なセッションが何を実行しているか確認
SQL> SELECT sql_text FROM v$sqltext WHERE sql_id='<sql_id>';
-- killしてもよいか確認し、問題なければ下記コマンドでkillする
SQL> ALTER SYSTEM KILL SESSION '&SID,&SERIAL#' IMMEDIATE;
SQL> shutdown immediate
SQL> startup
SQL> quit
リスナーの再起動
$ lsnrctl stop
$ lsnrctl start
$ lsnrctl status
Enterprise Manager再起動
$ emctl stop dbconsole
$ emctl start dbconsole
ちょっとした注意事項
SHUTDOWN IMMEDIATEコマンドでのデータベースのシャットダウンが完了しないことがある。
SHUTDOWN IMMEDIATEは、「IMMEDIATE(即時の)」の名の通り、即時に停止されそうに思えますが、処理実行中のアクティブなセッションが存在した場合は、処理の完了を待機するのです。この待機が1時間を超えるとSHUTDOWN IMMEDIATEはタイムアウトしてしまい、「ORA-01013: ユーザーによって現行の操作の取消しがリクエストされました」が記録されます。