[WebLogic] OPatch
1. 개요
OPatch 기본 사용 명령어 정리
2. OPatch
2.1 OPatch Upgrade
현재 Version 확인
1
2
3
4
5
ORACLE_HOME=/sw/weblogic/14c
${ORACLE_HOME}/OPatch/opatch version
OPatch Version: 13.9.4.2.3
OPatch succeeded.
작성일 기준 최신 Patch(13.9.4.2.11) File 준비
1
2
$ ls ${ORACLE_HOME}/OPatch/patches
6880880 p28186730_1394211_Generic.zip
반드시 6880880/README.txt 준수하여 작업.
Run Patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Same JDK of WebLogic
JAVA_HOME=/sw/jdk/jdk1.8.0_351
# tmpdir
TMP=${ORACLE_HOME}/tmpdir_$(date "+%Y%m%d_%H%M%S")
mkdir ${TMP}
# Patch file or directory
PATCH=${ORACLE_HOME}/OPatch/patches/6880880/opatch_generic.jar
${JAVA_HOME}/bin/java -Djava.io.tmpdir=${ORACLE_HOME}/${TMP} -jar ${PATCH} -silent oracle_home=${ORACLE_HOME} -invPtrLoc ${ORACLE_HOME}/oraInst.loc
Launcher log file is /sw/weblogic/14c/sw/weblogic/14c/tmpdir_20230316_102048/OraInstall2023-03-16_10-20-48AM/launcher2023-03-16_10-20-48AM.log.
Extracting the installer . . . . Done
Checking if CPU speed is above 300 MHz. Actual 2089.010 MHz Passed
Checking swap space: must be greater than 512 MB. Actual 16383 MB Passed
Checking if this platform requires a 64-bit JVM. Actual 64 Passed (-d64 flag is not required)
Checking temp space: must be greater than 300 MB. Actual 343361 MB Passed
Preparing to launch the Oracle Universal Installer from /sw/weblogic/14c/sw/weblogic/14c/tmpdir_20230316_102048/OraInstall2023-03-16_10-20-48AM
Installation Summary
Disk Space : Required 43 MB, Available 343,311 MB
Feature Sets to Install:
Next Generation Install Core 13.9.4.0.1
OPatch 13.9.4.2.11
OPatch Auto OPlan 13.9.4.2.11
Session log file is /sw/weblogic/14c/sw/weblogic/14c/tmpdir_20230316_102048/OraInstall2023-03-16_10-20-48AM/install2023-03-16_10-20-48AM.log
...
The install operation completed successfully.
Logs successfully copied to /sw/weblogic/inventories/14c/logs.
Patched version 확인
1
2
3
4
5
ORACLE_HOME=/sw/weblogic/14c
${ORACLE_HOME}/OPatch/opatch version
OPatch Version: 13.9.4.2.11
OPatch succeeded.
2.2 OPatch lsinventory
적용된 Patch 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
${ORACLE_HOME}/OPatch/opatch lsinventory -jre ${JAVA_HOME}/jre -oh ${ORACLE_HOME} -invPtrLoc ${ORACLE_HOME}/oraInst.loc
Oracle Interim Patch Installer version 13.9.4.2.11
Copyright (c) 2023, Oracle Corporation. All rights reserved.
Oracle Home : /sw/weblogic/14c
Central Inventory : /sw/weblogic/inventories/14c
from : /sw/weblogic/14c/oraInst.loc
OPatch version : 13.9.4.2.11
OUI version : 13.9.4.0.0
Log file location : /sw/weblogic/14c/cfgtoollogs/opatch/opatch2023-03-16_10-26-36AM_1.log
OPatch detects the Middleware Home as "/sw/weblogic/14c"
Lsinventory Output file location : /sw/weblogic/14c/cfgtoollogs/opatch/lsinv/lsinventory2023-03-16_10-26-36AM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: wls.local
ARU platform id: 226
ARU platform description:: Linux x86-64
There are no Interim patches installed in this Oracle Home.
--------------------------------------------------------------------------------
OPatch succeeded.
2.3 OPatch apply
Patch 적용
작성일 기준 WebLogic 14c 최신(14.1.1.0.221213) PSU
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Same JDK of WebLogic
JAVA_HOME=/sw/jdk/jdk1.8.0_351
# tmpdir
TMP=${ORACLE_HOME}/tmpdir_$(date "+%Y%m%d_%H%M%S")
mkdir ${TMP}
# Patch file or directory
PATCH=${ORACLE_HOME}/OPatch/patches/34890864
${ORACLE_HOME}/OPatch/opatch apply ${PATCH} -jre ${JAVA_HOME}/jre -oh ${ORACLE_HOME} -invPtrLoc ${ORACLE_HOME}/oraInst.loc
Oracle Interim Patch Installer version 13.9.4.2.11
Copyright (c) 2023, Oracle Corporation. All rights reserved.
Oracle Home : /sw/weblogic/14c
Central Inventory : /sw/weblogic/inventories/14c
from : /sw/weblogic/14c/oraInst.loc
OPatch version : 13.9.4.2.11
OUI version : 13.9.4.0.0
Log file location : /sw/weblogic/14c/cfgtoollogs/opatch/opatch2023-03-16_10-38-48AM_1.log
OPatch detects the Middleware Home as "/sw/weblogic/14c"
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 34890864
Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/sw/weblogic/14c')
Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '34890864' to OH '/sw/weblogic/14c'
...
Patch 34890864 successfully applied.
Log file location: /sw/weblogic/14c/cfgtoollogs/opatch/opatch2023-03-16_10-38-48AM_1.log
OPatch succeeded.
2.4 OPatch rollback
Patch 제거
제거를 위해서는 ${ORACLE_HOME}/.patch_storage 가 반드시 있어야 한다.
누적 적용된 모든 Patch 정보가 해당 Directory에 있기 때문이다.
해당 Dir이 누실되거나 손상되어 대체 할 방법(Backup)이 없으면 제품 재설치 외에는 방법이 없다.
1
2
3
4
5
6
7
8
9
10
11
# Same JDK of WebLogic
JAVA_HOME=/sw/jdk/jdk1.8.0_351
# tmpdir
TMP=${ORACLE_HOME}/tmpdir_$(date "+%Y%m%d_%H%M%S")
mkdir ${TMP}
# Patch ID that will be rollbacked
ID=34890864
${ORACLE_HOME}/OPatch/opatch rollback -id ${ID} -jre ${JAVA_HOME}/jre -oh ${ORACLE_HOME} -invPtrLoc ${ORACLE_HOME}/oraInst.loc
3. Trouble Shootings
3.1 .patch_storage
.patch_storage는 OPatch의 rollback을 가능케 해주는 매우 중요한 Directory 이므로, 유실/손상되어서는 안된다.
해당 Directory가 잘 Backup 되어 있지 않아, 그렇게 된 경우 제품 재설치 외에는 방법이 없다.
rollback 시도하지만, .patch_storage에서 정보를 찾을 수 없는 경우.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
${ORACLE_HOME}/OPatch/opatch rollback -id ${ID} -jre ${JAVA_HOME}/jre -oh ${ORACLE_HOME} -invPtrLoc ${ORACLE_HOME}/oraInst.loc
Oracle Interim Patch Installer version 13.9.4.2.11
Copyright (c) 2023, Oracle Corporation. All rights reserved.
Oracle Home : /sw/weblogic/14c
Central Inventory : /sw/weblogic/inventories/14c
from : /sw/weblogic/14c/oraInst.loc
OPatch version : 13.9.4.2.11
OUI version : 13.9.4.0.0
Log file location : /sw/weblogic/14c/cfgtoollogs/opatch/opatch2023-03-16_11-02-40AM_1.log
OPatch detects the Middleware Home as "/sw/weblogic/14c"
Patches will be rolled back in the following order:
34890864
Prerequisite check "CheckRollbackable" failed.
Possible causes are:
The patch can not be rolled back
No read or write permission to ORACLE_HOME/.patch _storage
The ORACLE_HOME/.patch_storage file may have been removed.
The details are:
Patch 34890864:
Copy Action: Directory "/sw/weblogic/14c/.patch_storage/34890864_Dec_13_2022_11_52_01" does not exists or is not readable.
'oracle.wls.core.app.server, 14.1.1.0.0': Cannot copy file from 'compDef.xml' to '/sw/weblogic/14c/inventory/Components/oracle.wls.core.app.server/14.1.1.0.0/patches/25040883/compDef.xml'
Delete Action: Directory "/sw/weblogic/14c/.patch_storage/34890864_Dec_13_2022_11_52_01" does not exists or is not readable.
'oracle.wls.core.app.server, 14.1.1.0.0': Cannot copy file from 'trusted.crt' to '/sw/weblogic/14c/wlserver/server/lib/trusted.crt'
Delete Action: Directory "/sw/weblogic/14c/.patch_storage/34890864_Dec_13_2022_11_52_01" does not exists or is not readable.
'oracle.wls.core.app.server, 14.1.1.0.0': Cannot copy file from 'CertGenInteropCAKey.der' to '/sw/weblogic/14c/wlserver/server/lib/CertGenInteropCAKey.der'
...
UtilSession failed: Prerequisite check "CheckRollbackable" failed.
Log file location: /sw/weblogic/14c/cfgtoollogs/opatch/opatch2023-03-16_11-02-40AM_1.log
OPatch failed with error code 73
3.2 Inventory failed
-invPtrLoc
로 제공하는 Inventory가 유실/손상된 경우 재생성
1
2
3
4
5
6
7
8
# Same JDK of WebLogic
JAVA_HOME=/sw/jdk/jdk1.8.0_351
# tmpdir
TMP=${ORACLE_HOME}/tmpdir_$(date "+%Y%m%d_%H%M%S")
mkdir ${TMP}
${ORACLE_HOME}/oui/bin/attachHome.sh -invPtrLoc ${ORACLE_HOME}/oraInst.loc
4. References
Primary Note For OPatch (Doc ID 293369.1)
Using OUI NextGen OPatch 13 for Oracle Fusion Middleware 12c / WLS 14.1.1 (Doc ID 1587524.1)
Can You Delete $ORACLE_HOME/.patch_storage Directory ? (Doc ID 403218.1)
opatch fails with Error: ‘Archive Action: Source file “$ORACLE_HOME/.patch_storage/…” does not exist.’ or ‘Achive Action: Directory “$ORACLE_HOME/.patch_storage/…” does not exists or is not readable’. (Doc ID 1244414.1)