11.Oracle审计-AUD$占用空间较大处理方案
truncate 或者 delete sys.aud$ 表
在delete 之前,可以先把aud$表exp备份一下,注意,不要直接exp,先创建一张临时表,然后将临时表exp。
sql>create table audit_record tablespace users as select * from sys.aud$;
然后exp:
exp tables=AUDIT_RECORD file=audit_record.dmp
最后delete 数据:
sql>delete from sys.aud$;
或者删除指定表的审计:
sql>delete from sys.aud$ where obj$name='&table_nmae';
注意,delete 不会释放system表空间。 可以使用truncate table:
sql>truncate table sys.aud$
2.oracle查询表空间大小很缓慢
清空回收站所有对象
SQL> purge dba_recyclebin;
通过 iotop-0.3.2-9.el6.noarch 工具
iotop -oP
通过PID查询SQL语句
SELECT *
FROM v$sqltext a
WHERE a.hash_value = (SELECT sql_hash_value
FROM v$session b, v$process c
WHERE b.paddr = c.addr
AND c.spid = 98261)
ORDER BY piece ASC;
查询索引是否失效
select Owner,index_name,status from dba_indexes where owner='OR';
select status from DBA_IND_PARTITIONS --分区索引
select status from dba_indexes --普通索引
如果状态不是VALID的,那么就是失效的索引。
在使用分区表情况下,可能出现索引失效。
如果索引失效,需要重建索引。
解决办法
select count(*) from dba_recyclebin;
清空回收站所有对象
SQL> purge dba_recyclebin;