多例項資料庫一個用PSU

wuweilong發表於2020-07-29

背景:

現在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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20674423/viewspace-2707621/,如需轉載,請註明出處,否則將追究法律責任。

相關文章