Oracle Database は表領域を作成すると、OSのファイルシステム上かASMのDiskGroup上にデータファイルが作成されます。
今回は、この表領域データファイルの場所を特定する方法を紹介します。
データファイルの場所とサイズの確認方法
まずは起動中のOracle Databaseに接続します。
※ディクショナリビューを参照できる権限を持ったユーザで接続してください
[oracle@ol77 ~]$ sqlplus / as sysdba
SQL>
以下の DBA_DATA_DILES ビューにデータファイルのPATHとサイズが格納されています。
FILE_NAME | データファイルの場所(PATH) |
TABLESPACE_NAME | 表領域名 |
BYTES | データファイルサイズ(単位はBYTE) |
SQL> desc dba_data_files;
名前 NULL? 型
----------------------------------------- -------- ----------------------------
FILE_NAME VARCHAR2(513)
FILE_ID NUMBER
TABLESPACE_NAME VARCHAR2(30)
BYTES NUMBER
BLOCKS NUMBER
STATUS VARCHAR2(9)
RELATIVE_FNO NUMBER
AUTOEXTENSIBLE VARCHAR2(3)
MAXBYTES NUMBER
MAXBLOCKS NUMBER
INCREMENT_BY NUMBER
USER_BYTES NUMBER
USER_BLOCKS NUMBER
ONLINE_STATUS VARCHAR2(7)
LOST_WRITE_PROTECT VARCHAR2(7)
DBA_DATA_DILES ビューを検索して、データファイル名とサイズを確認します。
以下の例は BYTES 列を MB に変換して出力するSQLです。
SQL> set lin 100
SQL> col TABLESPACE_NAME for a20
SQL> col FILE_NAME for a50
SQL> select tablespace_name,file_name,bytes/1024/1024 MB from dba_data_files;
TABLESPACE_NAME FILE_NAME MB
-------------------- -------------------------------------------------- ----------
USERS /u01/app/oracle/oradata/HOGE/users01.dbf 5
UNDOTBS1 /u01/app/oracle/oradata/HOGE/undotbs01.dbf 240
SYSTEM /u01/app/oracle/oradata/HOGE/system01.dbf 910
SYSAUX /u01/app/oracle/oradata/HOGE/sysaux01.dbf 550
★OS上のサイズを確認すると同じサイズになっていることが確認できます。
SQL> !ls -lh /u01/app/oracle/oradata/HOGE/*.dbf
-rw-r----- 1 oracle oinstall 551M May 3 22:42 /u01/app/oracle/oradata/HOGE/sysaux01.dbf
-rw-r----- 1 oracle oinstall 911M May 3 22:42 /u01/app/oracle/oradata/HOGE/system01.dbf
-rw-r----- 1 oracle oinstall 33M May 3 22:38 /u01/app/oracle/oradata/HOGE/temp01.dbf
-rw-r----- 1 oracle oinstall 241M May 3 22:42 /u01/app/oracle/oradata/HOGE/undotbs01.dbf
-rw-r----- 1 oracle oinstall 5.1M May 3 22:34 /u01/app/oracle/oradata/HOGE/users01.dbf