LoginSignup
26
30

More than 5 years have passed since last update.

Oracleの一時表領域がディスク圧迫した際の復旧手順

Last updated at Posted at 2014-12-23

復旧手順

DBサーバでディスク使用率100%が結構発生する割に個人的によくコマンド忘れるので、備忘録として手順を記載します。

【手順1】 空きのあるディスク(フォルダ)に一時表領域を作成する

 ALTER TABLESPACE TEMP ADD TEMPFILE '/tmp/tempxx.dbf' SIZE 128M AUTOEXTEND OFF;

※ファイル名は何でもよい。ここでは「/tmp/tempxx.dbf」としている。

【手順2】 ディスク圧迫している一時表領域のデータファイルを削除するためオフラインにする

 ALTER DATABASE TEMPFILE '/usr/oracle/app/oradata/db01/temp01.dbf' OFFLINE

※ここではディスク圧迫している一時表領域のデータファイルを「/usr/oracle/app/oradata/db01/temp01.dbf」としている。

【手順3】 手順2でオフラインにしたデータファイルを削除する

 ALTER DATABASE TEMPFILE '/usr/oracle/app/oradata/db01/temp01.dbf' DROP INCLUDING DATAFILES

削除できない場合はアプリが使用している可能性があるので下記SQLでプロセスを確認し、対象のプロセスを終了させてから再度削除を試みる。

select
  s.username, s.osuser, s.machine, s.terminal, s.program,
from
  v$session s, v$process p
where
  s.paddr = p.addr;

【手順4】 削除した一時表領域のデータファイルを再作成する

 ALTER TABLESPACE TEMP ADD TEMPFILE '/usr/oracle/app/oradata/db01/temp01.dbf' SIZE 2048M AUTOEXTEND OFF

【手順5】 手順1で作成したデータファイルを削除するためオフラインにする

 ALTER DATABASE TEMPFILE '/tmp/tempxx.dbf' OFFLINE

【手順6】 手順5でオフラインにしたデータファイルを削除する

 ALTER DATABASE TEMPFILE '/tmp/tempxx.dbf' DROP INCLUDING DATAFILES

参考

以上。

26
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
30