ハマログ

株式会社イーツー・インフォの社員ブログ

RDS環境で動いているOracleのセッションを強制終了する

0
RDS上で動いているOracleのTEMP領域を削除(もしくは圧縮)する際に、TEMP領域が一部利用中で削除できない現象が発生しました。

手順

以下のページ内容をもとに作業していました。
予想よりも多くのストレージを使用している Amazon RDS Oracle DB インスタンスに関する問題を解決する方法を教えてください。
その中にあるTEMP領域の縮小を実行したところ、応答がありませんでした。
 ALTER TABLESPACE temp SHRINK SPACE KEEP 10g;
そのため、次に記載されているコマンドで一時セグメントが割り当てられているセッションを確認しました。
SELECT * FROM v$sort_usage;
セッションを切るためにはSIDとSERIAL#が必要なので、以下のコマンドで調べました。(コマンドはどこかのサイトからの流用ですが、どこで見つけたか忘れてしまいました・・・)
SELECT
  b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#, a.username, a.osuser, a.status 
FROM
  v$session a, 
  v$sort_usage b 
WHERE
  a.saddr = b.session_addr;
結果
TABLESPACE                       SEGFILE#    SEGBLK#     BLOCKS        SID							
------------------------------ ---------- ---------- ---------- ----------							
   SERIAL# USERNAME                       OSUSER							
---------- ------------------------------ ------------------------------							
STATUS							
--------							
TEMP                                  201    7800576        128       3203							
     12753                                rdsdb							
ACTIVE							
							
TEMP                                  201    7800704        384       3203							
     12753                                rdsdb							
ACTIVE							
続いてセッションをkillするためのコマンドを実行しますが、失敗しました。
ALTER SYSTEM KILL SESSION 3203, 12753;
ALTER SYSTEM KILL SESSION 3203, 12753 immediate;
masterユーザーなのに権限がたりないとは。
ERROR at line 1:
ORA-01031: insufficient privileges
解決方法は、以下のページに説明がありました。マネージドのDBサービスなので、一定の操作には制限があるようです。
Oracle DB インスタンスの一般的な DBA タスク
今回は以下の手順で解決しました
セッションの強制終了
SQL> exec rdsadmin.rdsadmin_util.kill(3203, 12753);
PL/SQL procedure successfully completed.
本番でDiskFullだったからあせりましたが、解決できてよかったです。
0
databaseDBOracleRDSオラクルデータベース

kaneko tomo   kaneko tomo   2020年6月15日


関連記事

夏休みの宿題(JSで放物線をシミュレーションする)

0 はじめに 少し前に買った、「8月号増刊『60分でわかる 微分と積分』 (Ne…

e2infoブログの人気アクセスランキング(2016年12月度)

0 どーも中村です。そーいえばe2infoではブログやってますが、一体どんな記事…

花残月 2020

0 緊急事態宣言が発令されるかどうかが取り沙汰され始めた3月下旬。 月末に予定し…


← 前の投稿

次の投稿 →