前面介绍了一些数据库的版本和补丁的概念。
下面是关于Oracle数据库补丁的一些常识性问题,虽然知道了就很简单,但是不知道的时候还是会很迷惑。供参考。
1.如果用户打新的PSU的话,以前的个别patch 和新的PSU冲突,在打过程中会自动rollbak个别patch 么?
一般会自动rollback,但为了避免问题也可以提前rollback。
2.打merge patch 是否需要将以前安装得patch rollback掉?
不是必须的。通常opatch可以识别并自动把 subpatch 给rollback。
3.PSU中包含OPTIMIZER 相关的Bug修复么?
OPTIMIZER(CBO)的bug不包括在PSU里面,通常需要在个别补丁或者基础版本(PSR)上修复。
4.DB的patch可以打在GI Home上么?
可以。Oracle推荐DB和GI保持一致,但是如果对ASM,GIMR没有影响的话,可以不在GI Home上打。
5.如何判断补丁是ORACLE RAC Rolling Patch(滚动补丁)?
查看Patch的README,看是否为“RAC Rolling Installable”。
也可以通过下面的方法检查是否为Rolling Patch
opatch query -is_rolling_patch <解压后patch的路径>
例:
-bash-4.1$ $ORACLE_HOME/OPatch/opatch query -is_rolling_patch ./27774706
...
--------------------------------------------------------------------------------
Patch is a rolling patch: true
Patch is a FMW rolling patch: false
OPatch succeeded.
6.Dataguard 环境中可否只在备库中打补丁?
通过补丁的ReadMe看看是standby first ,是否需要执行SQL文。
因为备库只读,如果需要执行SQL文等更新操作的补丁无法只在备库中打,需要在主库上打。
7.DB的patch能打在oracle exadata一体机上么?
对于个别补丁(one-off)可以跟普通DB一样可以打。
但是DB的PSR,BP不能用到Exadata上,Exadata使用自己的BP。