某天突然接到告警说oracle目录使用率高,经过检查发现.patch_storage占了大约40G的空间。 .patch_storage的作用? 每次在打补丁的时候,会对库文件和模块做一些改变;变动之前,opatch会在$ORACLE_HOME/.patch_storage/ 目录中创建一个snapshot。有时候会出现需要回滚补丁的时候,这个目录下面会有一个restore.sh脚本,这个脚本可以remove之前做过的changes。 目录结构: drwxr-xr-x 4 oracle oinstall 256 Nov 08 2016 17592127_Jan_8_2014_23_02_20 drwxr-xr-x 4 oracle oinstall 256 Nov 08 2016 13343438_Dec_28_2011_01_17_39 drwxr-xr-x 4 oracle oinstall 256 Nov 08 2016 13923374_Jun_14_2012_23_16_11 drwxr-xr-x 4 oracle oinstall 256 Nov 08 2016 13696216_Apr_8_2012_21_52_22 drwxr-xr-x 4 oracle oinstall 256 Nov 08 2016 14727310_Dec_31_2012_01_47_37 drwxr-xr-x 4 oracle oinstall 256 Nov 08 2016 14275605_Oct_3_2012_23_27_54 drwxr-xr-x 4 oracle oinstall 256 Nov 08 2016 16056266_Mar_13_2013_05_49_56 其中一个目录内的文件: oracle/app/oracle/product/11.2.0/db_1/.patch_storage/17586955_Jun_16_2015_10_26_31$ ls -lrt total 8 drwxr-xr-x 4 oracle oinstall 256 Jan 10 23:30 original_patch drwxr-xr-x 3 oracle oinstall 256 Jan 10 23:30 files -rwx--x--- 1 oracle oinstall 1533 Jan 10 23:30 rollback.sh 这也就是说,打补丁的时候是需要一定的磁盘空间的。不然这个copy的过程不能完成。理论上,一次补丁的大所需空间为1.8G,但是实际上是会小于这个数值的,一般oracle目录也不会就剩下这么点空间,所以不用太过于关注。 下面是清理过程: 一节点: [grid@byo87631:/oracle/app/product/grid]du -sg .patch_storage 37.73 .patch_storage [grid@byo87631:/oracle/app/product/grid]opatch util cleanup Invoking OPatch 11.2.0.1.6 Oracle Interim Patch Installer version 11.2.0.1.6 Copyright (c) 2011, Oracle Corporation. All rights reserved. UTIL session Oracle Home : /oracle/app/product/grid Central Inventory : /oracle/app/oraInventory from : /etc/oraInst.loc OPatch version : 11.2.0.1.6 OUI version : 11.2.0.2.0 Log file location : /oracle/app/product/grid/cfgtoollogs/opatch/opatch3018-02-02_19-39-49PM.log Invoking utility "cleanup" OPatch will clean up 'restore.sh,make.txt' files and 'rac,scratch,backup' directories. You will be still able to rollback patches after this cleanup. Do you want to proceed? [y|n] y User Responded with: Y Size of directory "/oracle/app/product/grid/.patch_storage" before cleanup is 40496924381 bytes. Size of directory "/oracle/app/product/grid/.patch_storage" after cleanup is 23138284034 bytes. UtilSession: Backup area for restore has been cleaned up. For a complete list of files/directories deleted, Please refer log file. OPatch succeeded. 二节点: [grid@byo87632:/oracle/app/product/grid]du -sg .patch_storage 37.73 .patch_storage [grid@byo87632:/oracle/app/product/grid]opatch util cleanup Invoking OPatch 11.2.0.1.6 Oracle Interim Patch Installer version 11.2.0.1.6 Copyright (c) 2011, Oracle Corporation. All rights reserved. UTIL session Oracle Home : /oracle/app/product/grid Central Inventory : /oracle/app/oraInventory from : /etc/oraInst.loc OPatch version : 11.2.0.1.6 OUI version : 11.2.0.2.0 Log file location : /oracle/app/product/grid/cfgtoollogs/opatch/opatch3018-02-02_19-54-42PM.log Invoking utility "cleanup" OPatch will clean up 'restore.sh,make.txt' files and 'rac,scratch,backup' directories. You will be still able to rollback patches after this cleanup. Do you want to proceed? [y|n] y User Responded with: Y Size of directory "/oracle/app/product/grid/.patch_storage" before cleanup is 40496924381 bytes. Size of directory "/oracle/app/product/grid/.patch_storage" after cleanup is 23138284034 bytes. UtilSession: Backup area for restore has been cleaned up. For a complete list of files/directories deleted, Please refer log file. OPatch succeeded. [grid@byo87632:/oracle/app/product/grid]du -sg .patch_storage 21.56 .patch_storage 从40多G清理到20多G。