No Oracle 10g para facilitar a vida dos DBA’s a Oracle introduziu alertas, e um deles nos ajuda bastante, e evita bastante o estouro espaço em tablespace.
Para fazer isso via Database Console (EM), basta ir na guia tablespaces, escolher a tablespace como mostra a imagem e definir na guia limite os limites que você deseja.
Os defaults são bem razoáveis 85% e 97%. Mas em uma tablespace de 100GB, 15GB é um espaço um tanto quanto difícil de estourar, então talvez você opte em controlar isso por tamanho e o Oracle tem essa flexibilidade.
Para os mais experientes, a execução do bloco pl/sql abaixo altera o limite em porcentagem de todas as tabelaspaces do banco de dados o setando warning para 90% e o critical para 97%.
begin
dbms_server_alert.set_threshold(
metrics_id=>dbms_server_alert.tablespace_pct_full,
warning_operator=>dbms_server_alert.operator_ge,
warning_value=>90,
critical_operator=>dbms_server_alert.operator_ge,
critical_value=>97,
observation_period=>1,
consecutive_occurrences=>1,
instance_name=>null,
object_type=>dbms_server_alert.object_type_tablespace,
object_name=>null
);
end;
/
Se eu fosse alterar a USERS colocando o warning para 50% cheio e critical para 80% cheio basta preencher o nome no object_name como mostrado abaixo:
begin
dbms_server_alert.set_threshold(
metrics_id=>dbms_server_alert.tablespace_pct_full,
warning_operator=>dbms_server_alert.operator_ge,
warning_value=>50,
critical_operator=>dbms_server_alert.operator_ge,
critical_value=>80,
observation_period=>1,
consecutive_occurrences=>1,
instance_name=>null,
object_type=>dbms_server_alert.object_type_tablespace,
object_name=>’USERS’
);
end;
/