Oracle磁盘占用91%?安全清理指南来啦 #兄弟,磁盘冲91%确实得赶紧动手,先给你梳理清楚哪些内容绝对安全、不会搞崩数据库,再给你优先级建议,避免踩坑:
一、Oracle目录下可放心删除的内容 #临时文件目录(比如/tmp或Oracle指定的临时目录):除了你已经删的,还可以扫一遍所有.tmp/.temp后缀的文件,以及那些7天以上没被访问的临时文件(用命令find /path/to/oracle/tmp -type f -mtime +7就能定位)。放心,正在被数据库使用的临时文件会被锁定,你删的时候会提示,直接删那些能删掉的就行。已备份的归档日志:如果你的归档日志(一般在$ORACLE_BASE/diag/rdbms/
这样只会删7天前已备份的日志,不会误删关键文件。过期的审计日志:审计日志默认存在$ORACLE_BASE/admin/
已异地备份的本地RMAN备份集:如果你用RMAN做了本地备份,且已经同步到外部存储,本地的旧备份(一般在$ORACLE_BASE/flash_recovery_area或自定义备份目录)可以清理,同样用RMAN命令更安全:RMAN> DELETE OBSOLETE;
它会自动识别过期的备份,不会删错有用的。二、磁盘占91%时的清理优先级 #先清临时文件+过期日志:这部分见效最快,而且100%安全,不会影响数据库运行,优先搞。清理本地冗余备份:如果有异地备份,本地备份一般占空间极大,清完能释放好几G甚至几十G。压缩/清理大trace文件:有些trace文件会疯长到几个G,先看一下是不是近期的异常日志——如果只是普通的运行日志,直接压缩(gzip *.trc)或者删除就行;如果是报错日志,建议先排查问题再处理。收缩临时表空间:如果临时表空间的临时文件(*.tmp)过大,且当前没有大查询、排序在运行,可以先收缩:ALTER TABLESPACE TEMP SHRINK SPACE;
要是收缩效果不好,也可以切换临时表空间后删除旧的临时文件(操作前记得确认没有会话在使用它)。
三、绝对不能碰的红线!! #这些文件碰了直接搞崩数据库,甚至丢数据,打死也不能删:
数据库数据文件(*.dbf):核心数据都在这,删了直接GG控制文件(*.ctl):数据库的“导航地图”,没它数据库起不来在线重做日志文件(*.log):正在使用的删了会导致数据库崩溃,即使是归档后的,也得确认已备份再动密码文件(orapw
内容的提问来源于stack exchange,提问作者Ynz