多实例数据库一个用PSU

背景:

现在Oracle 11gR2 扩展补丁最新已经到20200714了,今天给生产系统打了几个系统补丁,有很多设备上是一台服务器创建了十几个数据库,这样涉及到后面跑脚本和启停数据库是一件非常麻烦的事,特写这篇博客在这里记录今天的完整处理过程。

单库操作步骤:

1.解压替换OPatch

cd psu
cd $ORACLE_HOME/
mv OPatch/ OPatch_bak
cd ~/psu
unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME/
unzip p31326405_112040_Linux-x86-64.zip

2.关闭数据库和监听

lsnrctl stop
sqlplus / as sysdba
shut immediate

3.应用补丁

cd 31326405/31103343
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
$ORACLE_HOME/OPatch/opatch apply

cd …/31219953
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
$ORACLE_HOME/OPatch/opatch apply

4.检查补丁是否已经打上

[oracle@pjs-jypt 31103343]$ $ORACLE_HOME/OPatch/opatch lspatches
31219953;OJVM PATCH SET UPDATE 11.2.0.4.200714
31103343;Database Patch Set Update : 11.2.0.4.200714 (31103343)

OPatch succeeded.

5.跑升级脚本

sqlplus / as sysdba
@?/rdbms/admin/catbundle.sql psu apply
@?/rdbms/admin/utlrp.sql

多库环境操作步骤:

1.获取所有数据库的SID信息

[db-oracle@CXDB~/psu]$ps -ef|grep pmon |grep -v grep
oracle 1194 1 0 18:39 ? 00:00:00 ora_pmon_dsgmon
oracle 1296 1 0 18:39 ? 00:00:00 ora_pmon_zzdb
oracle 1411 1 0 18:40 ? 00:00:00 ora_pmon_db
oracle 1525 1 0 18:40 ? 00:00:00 ora_pmon_SKDB
oracle 1645 1 0 18:40 ? 00:00:00 ora_pmon_ZXDB
oracle 1801 1 0 18:40 ? 00:00:00 ora_pmon_OADB
oracle 1908 1 0 18:40 ? 00:00:00 ora_pmon_QCDB
grid 10471 1 0 Jul03 ? 00:07:03 asm_pmon_+ASM

2.配置停库脚本

#!/bin/ksh
ORACLE_SID="$1"
echo $i
sqlplus / as sysdba << EOF
shut immediate;
exit
EOF
sh shut.sh dsgmon
sh shut.sh zzdb
sh shut.sh db
sh shut.sh SKDB
sh shut.sh ZXDB
sh shut.sh OADB
sh shut.sh QCDB

3.应用补丁

cd 31326405/31103343
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
$ORACLE_HOME/OPatch/opatch apply

cd …/31219953
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
$ORACLE_HOME/OPatch/opatch apply

4.跑升级脚本

#!/bin/ksh
ORACLE_SID="$1"
echo $i
sqlplus / as sysdba << EOF
startup
@?/rdbms/admin/catbundle.sql psu apply;
@?/rdbms/admin/utlrp.sql;
shutdown immediate;
exit
EOF
sh exec_psu.sh dsgmon
sh exec_psu.sh zzdb
sh exec_psu.sh db
sh exec_psu.sh SKDB
sh exec_psu.sh ZXDB
sh exec_psu.sh OADB
sh exec_psu.sh QCDB

5.重启数据库:

lsnrctl start
#!/bin/ksh
ORACLE_SID="$1"
echo $i
sqlplus / as sysdba << EOF
startup force
exit
EOF
sh restart.sh dsgmon
sh restart.sh zzdb
sh restart.sh db
sh restart.sh SKDB
sh restart.sh ZXDB
sh restart.sh OADB
sh restart.sh QCDB

来自 “ 开源世界 ” ,链接:http://ym.baisou.ltd/?id=516,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CRMEB定制开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值