
- Oracle Cloud
- Exadata
- Oracle Database
OCIに待望のPaaSサービスがリリース!特徴やメリットを解説
「Oracle CloudWorld 2024」にてリリースされたOracle Cloudの注目のPaaSサービス「Oracle Exadata Database Service on Exascale Infrastructure(ExaDB-XS)」の特徴をまとめてみました!
|
SHUTDOWN IMMEDIATEコマンドでのデータベースのシャットダウンが、「終わらない」、「データベースが停止しない」、「タイムアウトエラー(ORA-01013等)が発生し失敗する」というお問い合わせをいただくことがあります。
SHUTDOWN IMMEDIATEは、「IMMEDIATE(即時の)」の名の通り、即時に停止されそうに思えますが、処理実行中のアクティブなセッションが存在した場合は、処理の完了を待機するのです。この待機が1時間を超えるとSHUTDOWN IMMEDIATEはタイムアウトしてしまい、「ORA-01013: ユーザーによって現行の操作の取消しがリクエストされました」が記録されます。
そこで、SHUTDOWN IMMEDIATEの実行前には、予めセッション情報を確認することをおすすめしています。今回はその点について詳しくご紹介します。
管理者ガイド では、SHUTDOWN IMMEDIATEについて次のように説明されています。
SHUTDOWN IMMEDIATEは既存の接続を全て切断しますが、SQL実行中やロールバック中などのアクティブなセッションが存在すると、その完了を待機します。
待機時間が1時間を超えると、SHUTDOWN IMMEDIATEはタイムアウトして失敗します。セッションが残っていることが原因でシャットダウンがタイムアウトした場合、プロンプトにはORA-01013が返り、アラートログには以下のようにメッセージが出力されます。
Wed Mar 22 04:19:12 2017 Shutting down instance (immediate) Stopping background process SMCO Shutting down instance: further logons disabled Wed Mar 22 04:19:13 2017 Stopping background process CJQ0 Stopping background process QMNC Stopping background process MMNL Stopping background process MMON License high water mark = 3 Wed Mar 22 04:24:15 2017 Active process 7628 user 'SYSTEM' program 'ORACLE.EXE (SHAD)' ★ SHUTDOWN: waiting for logins to complete.
このログ出力で示されたセッションが実行している処理を確認することは、新規セッションが既に接続できない状態であるため困難です。
そのため、SHUTDOWNコマンドを実行する前に、セッションの残留や処理実行中のセッションが存在しないか、予め確認しておくことをおすすめします。
シャットダウンを正常に完了させるために、事前にアクティブなセッションが存在しないか確認しましょう。存在していた場合は処理内容を確認した上で、対応を検討します。下記のSQLで、現在データベースに存在しているセッションや実行中のSQLを確認できます。
SQL> SELECT 2 sid, 3 serial#, 4 username, 5 status, 6 machine, 7 program, 8 sql_id 9 FROM v$session 10 WHERE username IS NOT NULL 11 and sid != USERENV('SID');
SID SERIAL# USERNAME STATUS MACHINE PROGRAM SQL_ID ---------- ---------- ----------- -------- -------------------- ------------- ------------- 131 15 SCOTT INACTIVE ACE\B1401-02-25-W sqlplus.exe 197 5 SCOTT ACTIVE ACE\B1401-02-25-W sqlplus.exe 44ff5y395s8na
この状態で、SHUTDOWN IMMEDIATEを実行した場合、SID:131は「STATUS = INACTIVE」であり、強制的に切断されるため対処は不要です。しかし、SID:197は「STATUS = ACTIVE」であり、SQL_ID:44ff5y395s8naのSQLを実行しているため、この処理の完了を待つか手動で停止する必要があります。
SQL_ID:44ff5y395s8naの処理内容を確認するには次のSQLを実行します。
SQL> SELECT 2 sql_text 3 FROM v$sqltext 4 WHERE sql_id='44ff5y395s8na';
SQL_TEXT ---------------------------------------------------------------- update test set col = '2' where col='1'
SQL文を確認の上で処理の終了を待つ、または停止しても問題ない処理であれば「ALTER SYSTEM KILL SESSION」で停止し、Activeなセッションが存在しない状態でSHUTDOWN IMMEDIATEを実行しましょう。
※「ALTER SYSTEM KILL SESSION」のIMMEDIATE句はORACLE 10g以降のオプションです。
SQL> ALTER SYSTEM KILL SESSION '&SID,&SERIAL#' IMMEDIATE;
上記SQL実行後も該当のセッションがKILLされない場合は、SPIDを確認してOSコマンドでプロセスをKILLすることも検討しましょう。
SQL> SELECT 2 s.sid, 3 s.serial#, 4 p.spid, 5 s.username, 6 s.status, 7 s.machine, 8 s.program, 9 s.sql_id 10 FROM v$process p, v$session s 11 WHERE p.addr=s.paddr 12 and s.username IS NOT NULL 13 and s.sid != USERENV('SID');
SID SERIAL# SPID USERNAME STATUS MACHINE PROGRAM SQL_ID ---------- ---------- ------- ---------- -------- ----------------- -------------- ------------- 197 36743 9352 SCOTT INACTIVE ACE\B1702-53-01 sqlplus.exe 44ff5y395s8na
SHUTDOWN IMMEDIATEに時間がかかる、データベースが停止しないというお問い合わせをいただくことは少なくありませんが、タイムアウト後にお問い合わせをいただいても、原因となったセッションや処理内容を特定できない場合があります。
今回ご紹介した方法により、SHUTDOWN IMMEDIATE実行前に予めセッション情報をご確認いただくことで予防ができます。データベース停止の際にはぜひご確認をお願いします。
![]() |
---|
アシスト北海道
2014年、設立されて間もないアシスト北海道に入社し、以来サポートセンターの立ち上げに従事。現在は夜間休日のOracle製品担当サポートリーダーとして重篤障害と格闘する毎日。アシスト北海道の2017年度従業員代表としても活動中。
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
「Oracle CloudWorld 2024」にてリリースされたOracle Cloudの注目のPaaSサービス「Oracle Exadata Database Service on Exascale Infrastructure(ExaDB-XS)」の特徴をまとめてみました!
2024年12月1日、ついにOracle Database@AWSがLimited Previewにて提供されました!今回は現時点で判明している情報について、ドキュメントを読み解きながらOracle Database@AWSのアーキテクチャの予想も交えてお伝えします。
Oracle Database 23aiでは生成AIに関連する新機能が多く追加。特にAutonomous Database 23aiの「Select AI」機能は大規模言語モデル(LLM)を使用して、自然言語による問い合わせやテストデータの自動生成が可能に。本記事では、Select AIの機能について検証結果を交えて紹介します。