扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在Oracle9i里,Oracle提供了一个内部事件,用以强制刷新Buffer Cache。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了墨江免费建站欢迎大家使用!
其语法为:
alter session set events 'immediate trace name flush_cache level 1';或者:
alter session set events = 'immediate trace name flush_cache';类似的也可以使用alter system系统级设置:
alter system set events = 'immediate trace name flush_cache';在Oracle10g中,Oracle提供一个新的特性,可以通过如下命令刷新Buffer Cache:
alter system flush buffer_cache;
ALTER SYSTEM FLUSH SHARED_POOL
这个语句清除SGA中的 shared pool,shared pool存储下面的信息:
1、数据字典
2、Shared SQL PL/SQL,存储过程、函数、包以及触发器
但是有一点要清楚的是假如这些对象正在使用时是无法清除的。
cache是在内存SGA里的,和你的文件系统并没有关系。
一般oracle容易占文件系统空间的东西:
1、各类dump、trace文件;
2、归档、闪回文件;
我觉得你是不是想问第一个?
另外,如果你的datafile是auto extend on的话,有可能因为数据增大而塞满所在文件系统!
追问
对对 是要清除归档文件,那这个要怎么清除?
回答
先确定一下归档路径
sqlplus / as sysdba
show parameter arch;
log_archive_dest_1 LOCATION=+DATADG/
看看这个路径是不是你要清理的。
然后用rman
rman
connect target /
crosscheck archivelog all;
delete expired archivelog all;
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-15'; #删除15天前的归档文件
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流