共计 2183 个字符,预计需要花费 6 分钟才能阅读完成。
这篇文章主要讲解了“如何打补丁 PSU”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“如何打补丁 PSU”吧!
首先说一下下载补丁和最新 opatch 的方法:
都再 mos 上:
下载补丁:直接搜索 2118136.2,这是文档 id
下载 optach:点击补丁程序和更新程序标签,然后搜索 6880880
接下来我们说下常用到的 PSU:
我们这里之说 linux 的,主要有 DB,GI+DB,GI+DB+OJVM
然后我们来说补丁安装:
其实,就是在这里翻译一下 readme.html,这里主要介绍一下 GI+DB(+OJVM)
OJVM 记住一点就好,要单独用 oracle 用去打,并且,这个是不支持 rolling upgrade 的,也就是说,集群必须都得停。
然后说 GI+DB:
首先,不管咋说,都要先查看 opatch 的版本
grid 用户跟 oracle 用户都要查,在各自的 $ORACLE_HOME/OPatch/ 下:
./opatch version
然后用这个 version,比对 readme 里面要求的该补丁至少需要啥版本的 opatch。要我说,直接那最新的 opatch 升了就对了,升级 opatch 的方法:
下载对应系统版本的 OPatch,然后在 grid 和 oracle 用户下都要执行,因为各是各的 Opatch 工具:
unzip 压缩包 -d $ORACLE_HOME
然后选择全部覆盖,就是输入一个 A 就 ok 了
然后要生成一个 rsp 文件,反正就 grid 下生成嘛:(12.2.0.1.5 以上版本就不用了)
$ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output /opt/ocm.rsp
反正就是这个 rsp 不管放哪儿,必须保证 oracle 用户和 grid 用户都能访问的到,后面说为啥
然后一切准备就绪,root 用建个空目录,一定得是个空目录,比如:
mkdir /GI
然后把压缩包拷到这个目录下,给个 777 权限:
chmod 777 -R /GI
然后用 grid 用户解压补丁包就解压在这个路径下:
su – grid
cd /GI
unzip 补丁包
一般来说,grid home 和 oracle home 都不是 share 的,如果有 acfs,不管咋说,都得先 umount,然后我们就用 opatch auto 直接打,这里我们用 rolling upgrade 的方式,就是一个节点一个节点的打,不用停业务。
按文档的方法是,咋说也得先把 em 停了,
然后以 root 用户的身份执行:
grid 的 $ORACLE_HOME/OPatch/opatch auto /GI/GI+DB 的目录 -ocmrf /opt/ocm.rsp
完事儿以后在 grid 用户下,oracle 用户下,分别执行:
$ORACLE_HOME/OPatch/opatch lspatches
看看补丁打上没,然后所有节点执行完事儿。
然后在一个节点上执行脚本:
@?/rdbms/amdin/catbundle.sql psu apply
@?/rdbms/admin/utlrp.sql(这个主要时为了重新编译一些 java 相关的失效的对象)(有时间执行,没时间就算)
然后查一下 dba_registry_history,有新的补丁记录就对了,完事儿。
现在解释一下 readme 中的这个 opatch auto:
首先你如果你没有建那个空目录的话,系统就要问你到底是解没解压到一个空目录啊,你确认俩次,因为它是要自己检索每个目录,然后对应的打补丁。
然后,它会把 em 停,数据库实例停了,asm 实例停了,节点停了
接着,它会用 grid 的用户指定 oh=grid_home 给 GI 打补丁,再用 oracle 用户指定 oh=oracle_home 给 DB 打补丁,其中还要以 root 身份执行对集群操作的脚本,所以这就是为什么:
一定要用 root 执行打补丁!一定要把 ocm.rsp 文件放在 grid 和 oracle 都能访问的路径!(oracle 用户是访问不到 /home/grid/ 下的)
打完补丁,然后把集群起起来,数据库也起起来,em 也起起来。
所以说白了,要按 readme 的方式来,啥都不用停,把 acfs umount 了就可以。
但是为了保险,避免诸多不可预见的问题,建议如下做:
在要打补丁的节点上,停 em,停数据库实例,
sqlplus / as sysdba
shutdown immediate
exit
grid 的 $ORACLE_HOME/OPatch/opatch auto /GI/GI+DB 的目录 -oh grid_home 的路径展开(就是意思别直接写 $ORACLE_HOME) -ocmrf /opt/ocm.rsp
oracle 的 $ORACLE_HOME/OPatch/opatch auto /GI/GI+DB 的目录 -oh oracle_home 的路径展开(就是意思别直接写 $ORACLE_HOME) -ocmrf /opt/ocm.rsp
然后 lspatches 检查,
然后起数据库实例,再到下一个节点停数据库实例
所有节点都打完补丁,再在一个节点上执行脚本,把补丁注册到数据库中。
感谢各位的阅读,以上就是“如何打补丁 PSU”的内容了,经过本文的学习后,相信大家对如何打补丁 PSU 这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!