Oracle テーブルスペース (表領域) のサイズが上限に達している、または、ほぼ上限に達している場合、Data Loss Prevention (DLP) では以下のいずれかの状況が発生します。
例:
Code: 2301
Summary Tablespace is almost full
Detail Oracle tablespace LOB_TABLESPACE is over 83% full
DLPの Oracle データベースにある1つ以上のテーブルスペース (表領域) を拡張する必要があります。
警告: どのテーブルスペース (表領域) を拡張する必要があるか、ログやアラートに表示されているテーブルスペース (表領域) 名にご注意ください。
通常この問題は、LOB_TABLESPACE で発生しますが、USERS やその他のテーブルスペース(表領域) でも発生することがあります。
すべてのテーブルスペース (表領域) は、テーブルスペース (表領域) 名を適宜置き換えることで、同じ方法で拡張することができます。
DLP 14.x、および、その後のバージョンでは、「テーブルスペース(表領域)の概略」をDLP Enforceコンソールで見るとができます。
注意: この概略はデータベースファイルの場所など、テーブルスペース(表領域)を完全に説明したものではありません。
テーブルスペース(表領域)の拡張を行う前に、現在、Oracleデータベースのファイルがどこにあるか確認する必要があります。
データベースファイルを探すには、SQL*Plusを使ってデータベースで直接クエリを実行してください。SQL*Plusは、DLP Enforceサーバーで利用可能です。
SQL*Plusの使用方法については、Implementing the Database をご覧いただくか、Starting SQL*Plus and Connecting to the Database をご覧ください。
注意: データベースファイルを探すには、Oracle Enterprise Manager も使用することができます。
protectでログインし、以下のコマンドを実行します。
select file_name from sys.dba_data_files;
出力結果には、以下のようにそれぞれのデータベースファイルのディレクトリとファイル名 (拡張子 .DBF) が表示されます。
E:\ORACLE\ORADATA\PROTECT\SYSTEM01.DBF
E:\ORACLE\ORADATA\PROTECT\SYSAUX01.DBF
E:\ORACLE\ORADATA\PROTECT\UNDOTBS.DBF
E:\ORACLE\ORADATA\PROTECT\DRSYS01.DBF
E:\ORACLE\ORADATA\PROTECT\LOB01.DBF
E:\ORACLE\ORADATA\PROTECT\LOB02.DBF
E:\ORACLE\ORADATA\PROTECT\LOB03.DBF
E:\ORACLE\ORADATA\PROTECT\USERS01.DBF
E:\ORACLE\ORADATA\PROTECT\USERS02.DBF
E:\ORACLE\ORADATA\PROTECT\USERS03.DBF
必要に応じて、どのテーブルスペース (表領域) がいっぱいかを確認するために、データベースにsys as sysdbaを使って接続、ログインし、以下のコマンドを実行して空き領域を確認します。
set pages 100
set lines 100
SELECT d.status "Status",
d.tablespace_name "Name",
TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99999990D900') "Size (M)",
TO_CHAR(NVL(NVL(f.bytes, 0), 0)/1024/1024 ,'99999990D900') "Free (MB)",
TO_CHAR(NVL((NVL(f.bytes, 0)) / a.bytes * 100, 0), '990D00') "Free %"
FROM sys.dba_tablespaces d,
(select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) f
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = f.tablespace_name(+)
AND NOT (d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY')
order by "Free %";
SQLを使ってテーブルスペース (表領域) を追加するには、データベースにsys as sysdbaを使って接続、ログインし、以下のコマンドを実行します。
ALTER TABLESPACE <tablespace name>
ADD
DATAFILE '<directory and datafile name>' SIZE 138240K
REUSE AUTOEXTEND
ON NEXT 10240K MAXSIZE 32767M;
「Oracleデータベースファイルの検索」で挙げられているサンプルの出力結果を元にすると、“LOB_TABLESPACE” が上限に達している場合、新しく作成されるデータベースファイルは、"LOB04.DBF" というファイル名になります。
具体例として、以下に新しいデータベースファイルを「LOB_TABLESPACE」に追加する方法を挙げています。
ALTER TABLESPACE LOB_TABLESPACE
ADD
DATAFILE 'D:\ORACLE\ORADATA\PROTECT\LOB04.DBF' SIZE 138240K
REUSE AUTOEXTEND
ON NEXT 10240K MAXSIZE 32767M;
※ このドキュメントは、以下のドキュメントを元に作成しています。
Oracle tablespace (LOB_TABLESPACE, USERS, etc.) for DLP is full, almost full, or critically full