19c打补丁简易步骤
1.?環境檢查
操作過程做好記錄,所有節點均檢查
1.1?當前補丁情況檢查
opatch version
opatch lspatches
1.2?集群狀態檢查
crsctl stat res -t
?
?
2.OPatch
替換oraclehome和gridhome的OPatch(OPatch版本高于12.2.0.1.17 or later.)
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
unzip p6880880_xxxxxx_Linux-x86-64.zip -d $ORACLE_HOME
?
確認OPatch版本,所有節點的oracle和grid用戶都需要確認
$ORACLE_HOME/OPatch/opatch version
?
3.備份軟件
root用戶tar /oracle/app即可 (grid和oracle軟件不在同一目錄下都需要備份)
cd /oracle/
tar -zcf app.tar.gz app
?
4.軟件解壓和權限
解壓psu包并更改權限,包放在單獨的目錄下
4.1 gi補丁
grid解壓補丁
cd <UNZIPPED_PATCH_LOCATION>
unzip p30116789_xxxxx_Linux-x86-64.zip
chmod 777 30116789
chmod -R 777 <UNZIPPED_PATCH_LOCATION>
?
4.2 jvm
oracle解壓ojvm補丁
cd <UNZIPPED_PATCH_LOCATION>
unzip p30116789_xxxxx_Linux-x86-64.zip
?
5.補丁沖突檢測
5.1 grid空間檢查
grid執行:
% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/30116789/30125133
% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/30116789/30122149
% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/30116789/30122167
% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/30116789/
% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/30116789/29401763
5.2 oracle空間檢查
oracle用戶執行:
% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/30116789/30125133
% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/30116789/30122149
?
5.3?如果有沖突,執行回滾
?
$ORACLE_HOME/OPatch/opatch rollback -id <補丁號>
?
?
6.檢測空間是否充足
6.1 grid用戶執行,創建txt文件并寫入patch路徑
?
?cat /tmp/patch_list_gihome.txt
?
<UNZIPPED_PATCH_LOCATION>/30116789/30125133
<UNZIPPED_PATCH_LOCATION>/30116789/30122149
<UNZIPPED_PATCH_LOCATION>/30116789/30122167
<UNZIPPED_PATCH_LOCATION>/30116789/
<UNZIPPED_PATCH_LOCATION>/30116789/29401763
?
6.2 grid用戶執行,空間檢查命令
?$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
?
6.3 oracle用戶執行,創建txt文件并寫入patch路徑
?
cat /tmp/patch_list_dbhome.txt
<UNZIPPED_PATCH_LOCATION>/30116789/30125133
<UNZIPPED_PATCH_LOCATION>/30116789/30122149
6.4 oracle用戶執行,空間檢查命令
?$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt
?
?
7.關閉數據庫和監聽
srvctl stop database -d xxx
srvctl stop listener
srvctl stop scan_listener
?
8.打gi補丁
1個節點打完才能打另一個節點
root用戶執行:
<GRIDHOME_DIR>/opatchauto apply <UNZIPPED_PATCH_LOCATION>/30116789
?
?
9.打jvm補丁
1個節點打完才能打另一個
oracle用戶執行:
cd <SOFT_DIR>/xxx
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
$ORACLE_HOME/OPatch/opatch apply
?
?
10.運行jvm腳本
跑jvm腳本,數據庫打開到update狀態
sqlplus / as sysdba
SQL> startup upgrade
SQL> alter pluggable database all open upgrade;
SQL> quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
sqlplus / as sysdba
SQL> shutdown immediate
?
?
?
11.運行gi腳本
srvctl start database -d xxx
sqlplus / as sysdba
SQL> alter pluggable database all open;
SQL> exit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
?
編譯無效存儲對象
sqlplus / as sysdba
@?/rdbms/admin/utlrp.sql
?
12.檢查
集群狀態檢查
crsctl stat res -t
?
檢查大頁
檢查監聽、服務
?
?
軟件補丁版本
opatch lsinv
opatch lspatches
?
數據庫里補丁注冊版本
set lin 200
col action_time for a30
col namespace for a10
col BUNDLE_SERIES for a10
col action for a10
col version for a25
col comments for a40
select * from dba_registry_history;
總結
以上是生活随笔為你收集整理的19c打补丁简易步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读书档案-深度思维:透过复杂直抵本质的跨
- 下一篇: TortoiseSVN删除前任账号,添加