某天突然接到告警说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。
标题名称:清理.patch_storage目录
文章链接:http://bjjierui.cn/article/jssisc.html