当用$Oracle_HOME/rdbms/admin/spauto.sql创建一个默认的job以后,数据库中会每1个小时收集一次快照,方便我们可以随时用$ORACLE_HOME/rdbms/admin/spreport.sql产生report诊断分析报告,但是采样的数据量是相当惊人的,如果忽略了这个job,或者没有定期的检查剩余空间大小,有的生产环境很可能会由于空间不足到导致其它的不可预测状况,所以我们要定期的删除statspack收集的历史数据,前提条件是要做好备份,然后删除不再需要的历史数据,删除方法有2种:手工删除和自动脚本删除。
1.备份perfstat用户下的对象
[oracle@rac1 ~]$ export NLS_LANG=american_america.ZHS16GBK
[oracle@rac1 ~]$ cd /data
[oracle@rac1 ~]$ exp perfstat/oracle@orcl file=./perfstat_backup.dmp wner=perfstat
[oracle@rac1 ~]$ ll -t
-rw-r--r-- 1 oracle dba 1893620736 Apr 27 10:40 perfstat_backup.dmp
2.删除statspack生成的历史数据
a:手工删除statspack中的历史记录
1)保留最近1个月的数据
delete from perfstat.stats$snapshot where snap_time