oracle 12c打補丁的過程

補丁的過程大概如下
cat /etc/issue
uname -a
兩個zip文件,傳到/tmp下面opatch_p6880880_122010_Linux-x86-64.zip,p28822515_122010_Linux-x86-64.zip
打補丁的目錄:/opt/oracle/product/12.2.0/dbhome/OPatch
先shutdown immediate; lsnrctl stop,並用ps -ef | grep oracle檢查進程,如果有sqlplus,也要殺掉
24676    1    0    April    pts/0    00:00:00    /usr/local/bin/rlwrap sqlplus / as sysdba
24677    24676    0    April    pts/1    00:00:00    sqlplus / as sysdba
直接殺父進程即可,kill -9 24676
進入/tmp,解壓這2個文件,以下命令均在oracle用戶下執行:
unzip opatch_p6880880_122010_Linux-x86-64.zip
unzip p28822515_122010_Linux-x86-64.zip
cd /opt/oracle/product/12.2.0/dbhome,即cd $ORACLE_HOME
mv OPatch/ OPatch_bk
cp -R /tmp/OPatch/ ./
cd OPatch
./opatch prereq CheckConflictAgainstOHWithDetail -ph /tmp/28822515/
提示:OPatch succeeded.
ps -ef | grep oracle
./opatch apply /tmp/28822515/
如果沒有關閉,或停止監聽,或者關閉sqlplus,會出現:OPatch failed with error code 73
如果正常,會提示OPatch succeeded.
./opatch lsinventory
開庫,跑一下:
sqlplus / as sysdba
@?/rdbms/admin/dbmsrman.sql
@?/rdbms/admin/prvtrmns.plb
./datapatch -verbose
顯示:Installing Patches....    最後顯示Batch installation complete.
進入sql,執行:@?/rdbms/admin/utlrp.sql    (林工說這句的作用是:編譯失效對象)
我問:是不是在打補丁的過程中,有些對象失敗了,重新編譯下就好了,他說是的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章