下午分析SYSAUX表空间时,还发现有一个配有流复制的数据库上有一张表STREAMS$_APPLY_SPILL_MESSAGES占据了此表空间很大的一部分空间约15g。此表是用来存储流复制应用时,对于大小超过TXN_LCR_SPILL_THRESHOLD限制的大事务,从流池中溢出来的信息.

参看SYSAUX tablespace grows quite fast due to Apply spilling [ID 556183.1]

通过如下步骤来清除此表的信息:

begin

dbms_apply_adm.stop_apply('STREAMS_APPLY');

end;

/

BEGIN
 FOR V_TXID IN (SELECT A.XIDUSN || '.' || A.XIDSLT || '.' || A.XIDSQN AS TXID
                  FROM DBA_APPLY_SPILL_TXN A) LOOP
   SYS.PURGE_SPILL_TXN('STREAMS_APPLY', V_TXID.TXID);
 END LOOP;
END;
/

truncate table STREAMS$_APPLY_SPILL_MESSAGES;

begin

dbms_apply_adm.start_apply('STREAMS_APPLY');

end;

/

再查看此表的大小,变为0.0625M。