记一次EBS正式环境补丁安装的过程
因菏泽能源上线需求,需要在8009上修复集团8000环境上已经修复的所有补丁程序,修复前做应用及数据库层备份,完成修复后解决并发管理器无法启动的问题。此为概述。
- 应用层备份
应用层的备份采用直接压缩备份的方式,无需停服务。压缩的路径是/u01/erpapp/apps
命令:
cd /u01/erpapp/
tar -zcvf apps_bak_20190107.tar.gz /u01/erpapp/apps
需要注意的是apps目录中可能存在部分需要root权限的文件,所以压缩使用root进行压缩。
- 数据库层备份
数据库层的备份使用RMAN备份的方式,停机之后进行全备份的方式备份数据文件,控制文件,以及归档日志文件。
这里需要先停服务, EBS服务器停止的顺序是
- 停并发管理器(使用sysadmin用登入 系统管理员职责-管理并发管理器菜单,选择最上面的标准管理器,点击 终止),为保证效果,再使用adcmctl.sh stop apps/appspassword 停止并发管理器服务,可以使用 ps -ef |grep FNDLIB 命令查询并发管理器的进程是否全部关闭,如果没有关系,可以使用kill -9的命令杀死进程。
- 停EBS服务,进入到$ADMIN_SCRIPTS_HOME目录下,运行adstpall.sh关闭全部EBS服务,可以使用ps -ef |grep applmgr 观察进程是否完全关闭(可以等半个小时等待服务关闭),如果有未关闭的进程,可以根据进程情况斟酌使用kill -9命令杀死这些进程。直至进程完全关闭 #
- 停数据库监听,使用lsnrctl stop prod 命令停止Oracle对prod实例的监听,阻止新的数据库连接连入,5分钟后检查数据库是否还有local=no的连接。ps -ef | grep LOCAL=NO | wc -l 如果有,看一下这些连接能否关闭。使用 ps -ef | grep LOCAL=NO | awk’{print $2}’| xargs kill -9 杀死进程。再次查看是否还有用户连接 select type,count() from v$session group by type 检查用户只剩下自己。
- 停数据库。检查监听状态 df/display vg把这些信息记录下来;alter system checkpoint; -检查点,dbwr写脏数据 lgwr写redo日志;alter system switch logfile; —切换日志,把日志也写进硬盘
- shutdown immediate;
开始备份数据库,使用oracle用户登入系统,运行rman target/ 进入rman工作台
服务器上有脚本在/home/oracle 目录下rman_full.dat 可以使用@/home/oracle/rman_full.dat 调用脚本进行备份,查看脚本cat rman_full.dat 检查脚本发现需要备份归档日志,所以将数据库启动到打开状态,在rman工作台中startup
启动数据库之后检查数据库实例状态为”OPEN”,运行脚本执行备份。
备份时可以使用SQL命令监控备份进度
select sid,SERIAL# ,CONTEXT,SOFAR,TOTALWORK,round(SOFAR/TOTALWORK100,2)”_%“
from v$session_longops where OPNAME like’RMAN%’and SOFAR<>TOTALWORK and TOTALWORK<>0;
备份完毕后,启动监听 lsnrctl start prod
- 启用维护模式
切换到applmgr用户,使用adadmin命令进行维护模式
执行adadmin(位于./apps/apps_st/appl/ad/12.0.0/bin/adadmin下,环境变量设好后会出现在path中),输入system的密码,apps的密码选择菜单5,再选择1Enable maintencence“。然后退出。
- 打补丁
将补丁上传至服务器任意位置,可以自己建一个patch目录
使用SQL查看补丁号是否已经安装过
SELECT *
FROM ad_applied_patches
where 1=1
and patch_name in (‘14332598’) ;
SELECT *
FROM ad_bugs
where 1=1
and bug_number in (‘14332598’) ;
主要看ad_bugs ad_bugs里面有就可以不安装。
使用unzip命令解压补丁 例如:unzip p14332598_R12%.BOM.C _R12_LINUX.zip
进入到解压后的目录,使用adpatch命令打补丁 adpatch driver=u 14332598.drv
注意打补丁时先打英文再打中文。
- 关闭维护模式
使用adadmin命令进行维护模式
执行adadmin(位于./apps/apps_st/appl/ad/12.0.0/bin/adadmin下,环境变量设好后会出现在path中 ),输入system的密码,apps的密码选择菜单5,再选择1Disable maintencence“。然后退出。
- 启用EBS服务
cd到$ADMIN_SCRIPTS_HOME目录下执行adstrtal.sh命令启动EBS服务
- 启动并发管理器
使用adcmctl.sh start apps/appspassword 命令启动并发管理器
进入前台sysadmin用户运行”有效用户”请求 看看并发和报表是否正常