0

私の oracle データベースでは、1 つのテーブルスペースで、スペースを追加しても頻繁に「スペース不足」のアラートが表示されます。原因を知るにはどうすればよいですか?

最初はサイズが 1GB のテーブルスペースを作成しましたが、現在はサイズが 4GB です。

その特定のテーブルスペース フォーム dba_segments の使用済みオブジェクトをクエリしているときに、理由を知る方法..セグメント名のみを指定しています。

4

2 に答える 2

0

ここで説明する問題は、表領域スペースのしきい値だと思います。次の方法で現在のしきい値設定を取得できます (ドキュメントも参照してください)。

SELECT * FROM dba_thresholds
WHERE object_type = 'TABLESPACE' AND object_name = <Your tablespace>;

私の場合、それは私に与えます:

METRICS_NAME:             Tablespace Space usage
WARNING_OPERATOR:         GE
WARNING_VALUE:            85
CRITICAL_OPERATOR:        GE
CRITICAL_VALUE:           97
OBSERVATION_PERIOD:        1
CONSECUTIVE_OCCURRENCES:   1
INSTANCE_NAME:            database_wide
OBJECT_TYPE:              TABLESPACE
OBJECT_NAME:              null
STATUS:                   VALID

メソッドを使用して、しきい値を変更したり、完全に無効にしたりできますDBMS_SERVER_ALERT.SET_THRESHOLD。たとえば、システムのしきい値を無効にするには、次を使用します。

BEGIN
DBMS_SERVER_ALERT.SET_THRESHOLD(
   metrics_id              => DBMS_SERVER_ALERT.TABLESPACE_PCT_FULL,
   warning_operator        => DBMS_SERVER_ALERT.OPERATOR_DO_NOT_CHECK,
   warning_value           => '0',
   critical_operator       => DBMS_SERVER_ALERT.OPERATOR_DO_NOT_CHECK,
   critical_value          => '0',
   observation_period      => 1,
   consecutive_occurrences => 1,
   instance_name           => NULL,
   object_type             => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
   object_name             => NULL);
END;
/

DBA_THRESHOLDS を再度クエリすると、次のようになります。

METRICS_NAME:             Tablespace Space usage
WARNING_OPERATOR:         DO NOT CHECK
WARNING_VALUE:             0
CRITICAL_OPERATOR:        DO_NOT_CHECK
CRITICAL_VALUE:            0
OBSERVATION_PERIOD:        1
CONSECUTIVE_OCCURRENCES:   1
INSTANCE_NAME:            database_wide
OBJECT_TYPE:              TABLESPACE
OBJECT_NAME:              null
STATUS:                   VALID
于 2014-09-04T13:09:17.723 に答える
0

dba_segments を使用して、スペースを占有しているものを見つけることができます。

select tablespace_name, sum(bytes)/1024/1024 MB from dba_segments group by tablespace_name order by tablespace_name

これにより、テーブルスペースとその使用状況がリストされます。

select owner, sum(bytes)/1024/1024 mb
from dba_segments
where tablespace_name = 'SYSAUX'
group by owner
order by sum(bytes)/1024/1024 desc, owner

これは、テーブルスペースでユーザー ID が占めるスペースの量をリストします。通常、アラートは何らかの理由で発生するため、アラートを無視するのは賢明なことではありません。

もちろん、特定のユーザーのオブジェクトにズームインし、これを繰り返して、成長しているオブジェクトを見つけることができます。それは読者の練習問題として残しておきます。

于 2014-09-04T16:59:02.160 に答える