LoginSignup
1
1

More than 3 years have passed since last update.

OracleのTEMP表領域をBIGFILE表領域に変更したときのメモ的なやつ

Last updated at Posted at 2020-01-07

TEMP表領域が足りない…

無駄にTEMP表領域を使用するので、デフォルトで作成される容量じゃ足りない、となった。

標準で作成されるTEMP表領域はSMALLFILE表領域とのことで、最大サイズが決まっているらしい。

あまりSMALLFILEやBIGFILEについて考えたこともなかったので、かんたんに調べてみると、

Oracle 10g 以降は普通の表領域がSMALLFILE表領域として扱われるようになっている。

とのことですが、単に名前がそう呼ばれるようになっただけで、BIGFILE表領域という約30TBも扱えるでっかいファイルが登場したからだそうです。

SMALLFILE表領域が約30GBに対してBIGFILE表領域が約30TBと、扱えるサイズが1000倍?になっているらしい。

流石に今回30TBも使用はしませんが、30GBは超えるのでBIGFILE表領域へ拡張していきます。

方法

方法としては

  1. 表領域を一度ExportしてTEMP削除してBIGFILEで作り直してImportする。
  2. 一時使用するダミーの表領域を作成してTEMP削除してBIGFILEで作り直して元に戻してダミーを削除する。

簡単さで考えると①ですが、あえて②でやってみました。

TEMP表領域の名前はデフォルトから変更していないのでTEMPです。
ファイル名はTEMP01.DBFです。

手順

①まず一時的にメインにするダミーの表領域を作成します。

CREATE TEMPORARY TABLESPACE HOGE TEMPFILE
'V:\oracle\hoge\HOGE01.DBF

②ダミーの表領域をデフォルトの表領域に指定します。

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE HOGE;

③TEMP表領域を作り直すため削除しますが、再起動を挟まないと処理が終わらなくなったので挟みます。

shutdown immediate
starutp open

④DROP TABLESPACEします。

DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

⑤BIGFILE表領域として再作成します。とりあえず1GBで無制限に

CREATE BIGFILE TEMPORARY TABLESPACE TEMP TEMPFILE
'V:\oracle\hoge\TEMP01.DBF SIZE 1000M AUTOEXTEND ON;

⑥デフォルト表領域をもとに戻します。

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

⑦再起動を挟んでダミーとして使用したHOGEを削除します。

shutdown immediate
starutp open
DROP TABLESPACE HOGE INCLUDING CONTENTS AND DATAFILES;

おしまい

あとがき

SMALLFILEからBIGFILEへ直接変更出来たらいいんだけどなーと思いました。

1
1
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
1
1