表領域拡張手順(データファイル追加)

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP オラクルデータベース運用 Oracle表領域管理

表領域拡張手順(データファイル追加)


スポンサードリンク



表領域拡張手順(データファイル追加)


本項では、データファイルを追加し表領域を拡張する方法について解説します。


テーブルやインデックスなど初期設計想定を超えるくらいの大量作成が行われた場合に表領域が不足する事態に遭遇します。このような事態は、OracleDatabaseのサービス提供用領域である非SYSTEM領域では頻繁に発生しますが、SYSTEM領域でも稀にこのような事態に遭遇するケース(※詳細は、「SYSTEM表領域が増加する理由」と「SYSAUX表領域が増加する理由」を参照)があります。


このような事態の対処方法として、データファイルを追加して表領域を拡張する方法が一般的です。データファイル追加は、表領域をオフラインにすることなくオンラインで拡張が可能です。

以下に実行例をします。

(1)データファイル追加前の確認
表領域の使用率とデータファイルのサイズを確認します。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜表領域使用率確認〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
SQL> set pages 1000
SQL> set line 100
SQL> column tablespace_name format a20
SQL> select a.TABLESPACE_NAME
, min(a.BYTES)/1024/1024 "現サイズ(MB)"
, round(min(a.BYTES)/(1024*1024) - sum(b.BYTES)/ (1024*1024),2) "使用量(MB)"
, round((min(a.BYTES)/(1024*1024) - sum(b.BYTES)/(1024*1024))/ (min(a.BYTES)/1024/1024)*100,2) "使用率(%)"
, round(sum(b.BYTES)/(1024*1024),2) "空き容量(MB)"
from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.TABLESPACE_NAME;



TABLESPACE_NAME    現サイズ(MB) 使用量(MB)  使用率(%) 空き容量(MB)
-------------------- ------------ ---------- ---------- ------------
SYSAUX             660      623.38     94.45        36.63
UNDOTBS1           25       18.5      74          6.5
USERS              100      2.81       2.81        97.19
SYSTEM              60      352.56     97.93         7.44


〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜データファイルサイズ確認〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
SQL>
SQL> column tablespace_name format a15
SQL> column file_name format a50
SQL> select tablespace_name,file_name,bytes from dba_data_files;

TABLESPACE_NAME  FILE_NAME                                  BYTES
---------------  -------------------------------------------------- ----------
USERS        C:\ORACLEXE\APP\ORACLE\ORADATA\XE\USERS.DBF      104857600
UNDOTBS1     C:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSAUX.DBF     26214400
SYSAUX       C:\ORACLEXE\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF   692060160
SYSTEM       C:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF     377487360

SQL>



(2)データファイル追加
USERS表領域に自動拡張ONのデータファイル(USERS99.DBF)を10MBで追加してます。

SQL> ALTER TABLESPACE USERS ADD DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\USER
S99.DBF' size 10M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE unlimited;


表領域が変更されました。

SQL>


(3)データファイル追加前の確認
データファイルを追加後、表領域が拡張しており、かつデータファイルも追加されていることを確認する。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜表領域使用率確認〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
SQL> set pages 1000
SQL> set line 100
SQL> column tablespace_name format a20
SQL> select a.TABLESPACE_NAME
, min(a.BYTES)/1024/1024 "現サイズ(MB)"
, round(min(a.BYTES)/(1024*1024) - sum(b.BYTES)/ (1024*1024),2) "使用量(MB)"
, round((min(a.BYTES)/(1024*1024) - sum(b.BYTES)/(1024*1024))/ (min(a.BYTES)/1024/1024)*100,2) "使用率(%)"
, round(sum(b.BYTES)/(1024*1024),2) "空き容量(MB)"
from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.TABLESPACE_NAME;



〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜データファイルサイズ確認〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
SQL>
SQL> column tablespace_name format a15
SQL> column file_name format a50
SQL> select tablespace_name,file_name,bytes from dba_data_files;

SQL>



スポンサードリンク




    ◎-表領域の概要と管理

    ◎-UNDO表領域(UNDO TABLESPACE)とは?

    ◎-一時表領域(TEMPORARY TABLESPACE)とは?

    ◎-Oracle表領域の作成(CREATE TABLESPACE)

    ◎-Oracle表領域の変更(ALTER TABLESPACE)

    ◎-Oracle表領域の削除(DROP TABLESPACE)

    ◎-SYSTEM表領域が増加する理由

    ◎-SYSAUX表領域が増加する理由

    ◎-表領域の使用率と空き領域確認方法

    ◎-表領域の物理データファイル確認方法

    ◎-表領域拡張手順(データファイル追加)

    ◎-表領域縮小可能サイズ確認手順

    ◎-表領域縮小手順(resize)




スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved