반응형
■ [2025-07-26] [2025-07-26] Oracle 2Node RAC 12cR2 nonCDB DB를 19c cdb DB로 Upgrade

 

본 테스트는 Oracle 2Node RAC 12cR2 nonCDB DB를 Oracle 19c CDB로 Upgrade하는 테스트 절차를 정리한 것임

 

 

1. 테스트 환경 정보

 

--1번 노드
[DRDB1:oracle@rdb01d][/home/oracle]$ cat > make_all_orainfo.sh <<'EOF'
#!/bin/bash

# 공통 정보
echo "========================================"
echo "        Oracle/Grid OS Info Summary"
echo "========================================"
echo -n "Hostname     : "; hostname
echo -n "IP Address   : "; hostname -i
echo -n "OS Name      : "; grep -i pretty_name /etc/os-release | cut -d= -f2 | tr -d '"'
echo -n "Kernel Ver   : "; uname -r
echo "========================================"

# Grid Home 정보
if [[ -n "$GRID_HOME" ]]; then
  echo "[GRID_HOME: $GRID_HOME]"
  echo -n "GRID Version : "
  $GRID_HOME/bin/sqlplus -S / as sysdba <<EOQ | head -1
SET TIMING OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET ECHO OFF
SELECT banner FROM v\$version WHERE rownum=1;
EXIT
EOQ
  echo "<GRID Patch Info>"
  su - grid -c "$GRID_HOME/OPatch/opatch lspatches"
  echo "----------------------------------------"
else
  echo "[GRID_HOME not set, skip grid info]"
fi

# Oracle Home 정보
if [[ -n "$DB_HOME" ]]; then
  echo "[DB_HOME: $DB_HOME]"
  echo -n "DB Version   : "
  $DB_HOME/bin/sqlplus -S / as sysdba <<EOQ | head -1
SET TIMING OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET ECHO OFF
SELECT banner FROM v\$version WHERE rownum=1;
EXIT
EOQ
  echo "<DB Patch Info>"
  su - oracle -c "$DB_HOME/OPatch/opatch lspatches"
  echo "----------------------------------------"
else
  echo "[DB_HOME not set, skip DB info]"
fi

echo "========================================"
EOF

 

[DRDB1:oracle@rdb01d][/home/oracle]$ sh make_all_orainfo.sh
========================================
        Oracle/Grid OS Info Summary
========================================
Hostname     : rdb01d
IP Address   : 192.168.0.31
OS Name      : Oracle Linux Server 7.9
Kernel Ver   : 5.4.17-2102.201.3.el7uek.x86_64
========================================
[GRID_HOME: /u01/app/12c/grid]
GRID Version : Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
<GRID Patch Info>
Password:
33587128;Database Jan 2022 Release Update : 12.2.0.1.220118 (33587128)
33116894;ACFS JUL 2021 RELEASE UPDATE 12.2.0.1.210720 (33116894)
26839277;DBWLM RELEASE UPDATE 12.2.0.1.0(ID:170913) (26839277)
33610989;TOMCAT RELEASE UPDATE 12.2.0.1.0(ID:RELEASE) (33610989)
33678030;OCW JAN 2022 RELEASE UPDATE 12.2.0.1.220118 (33678030)

OPatch succeeded.
----------------------------------------
[DB_HOME: /u01/app/oracle/product/12c/db_1]
DB Version   : Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
<DB Patch Info>
Password:
33587128;Database Jan 2022 Release Update : 12.2.0.1.220118 (33587128)
33678030;OCW JAN 2022 RELEASE UPDATE 12.2.0.1.220118 (33678030)

OPatch succeeded.
----------------------------------------
========================================

 

--2번 노드
[DRDB2:oracle@rdb02d][/home/oracle]$ cat > make_all_orainfo.sh <<'EOF'
#!/bin/bash

# 공통 정보
echo "========================================"
echo "        Oracle/Grid OS Info Summary"
echo "========================================"
echo -n "Hostname     : "; hostname
echo -n "IP Address   : "; hostname -i
echo -n "OS Name      : "; grep -i pretty_name /etc/os-release | cut -d= -f2 | tr -d '"'
echo -n "Kernel Ver   : "; uname -r
echo "========================================"

# Grid Home 정보
if [[ -n "$GRID_HOME" ]]; then
  echo "[GRID_HOME: $GRID_HOME]"
  echo -n "GRID Version : "
  $GRID_HOME/bin/sqlplus -S / as sysdba <<EOQ | head -1
SET TIMING OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET ECHO OFF
SELECT banner FROM v\$version WHERE rownum=1;
EXIT
EOQ
  echo "<GRID Patch Info>"
  su - grid -c "$GRID_HOME/OPatch/opatch lspatches"
  echo "----------------------------------------"
else
  echo "[GRID_HOME not set, skip grid info]"
fi

# Oracle Home 정보
if [[ -n "$DB_HOME" ]]; then
  echo "[DB_HOME: $DB_HOME]"
  echo -n "DB Version   : "
  $DB_HOME/bin/sqlplus -S / as sysdba <<EOQ | head -1
SET TIMING OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET ECHO OFF
SELECT banner FROM v\$version WHERE rownum=1;
EXIT
EOQ
  echo "<DB Patch Info>"
  su - oracle -c "$DB_HOME/OPatch/opatch lspatches"
  echo "----------------------------------------"
else
  echo "[DB_HOME not set, skip DB info]"
fi

echo "========================================"
EOF

 

[DRDB2:oracle@rdb02d][/home/oracle]$ sh make_all_orainfo.sh
========================================
        Oracle/Grid OS Info Summary
========================================
Hostname     : rdb02d
IP Address   : 192.168.0.32
OS Name      : Oracle Linux Server 7.9
Kernel Ver   : 5.4.17-2102.201.3.el7uek.x86_64
========================================
[GRID_HOME: /u01/app/12c/grid]
GRID Version : Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
<GRID Patch Info>
Password:
33587128;Database Jan 2022 Release Update : 12.2.0.1.220118 (33587128)
33116894;ACFS JUL 2021 RELEASE UPDATE 12.2.0.1.210720 (33116894)
26839277;DBWLM RELEASE UPDATE 12.2.0.1.0(ID:170913) (26839277)
33610989;TOMCAT RELEASE UPDATE 12.2.0.1.0(ID:RELEASE) (33610989)
33678030;OCW JAN 2022 RELEASE UPDATE 12.2.0.1.220118 (33678030)

OPatch succeeded.
----------------------------------------
[DB_HOME: /u01/app/oracle/product/12c/db_1]
DB Version   : Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
<DB Patch Info>
Password:
33587128;Database Jan 2022 Release Update : 12.2.0.1.220118 (33587128)
33678030;OCW JAN 2022 RELEASE UPDATE 12.2.0.1.220118 (33678030)

OPatch succeeded.
----------------------------------------
========================================

 

[2025-07-18:22:26:18][rdb01d]<SYS@DRDB1>
col instance_name for a20
col host_name for a20
col version for a20
col database_type for a20

SELECT INSTANCE_NUMBER, INSTANCE_NAME, HOST_NAME, VERSION, EDITION, DATABASE_TYPE FROM GV$INSTANCE;

INSTANCE_NUMBER INSTANCE_NAME        HOST_NAME            VERSION              EDITION               DATABASE_TYPE
--------------- -------------------- -------------------- -------------------- --------------------- --------------------
              1 DRDB1                rdb01d               12.2.0.1.0           EE                    RAC
              2 DRDB2                rdb02d               12.2.0.1.0           EE                    RAC

2 rows selected.

Elapsed: 00:00:00.02


[DRDB1:oracle@rdb01d][/home/oracle]$ olsnodes -n
rdb01d  1
rdb02d  2

 

[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl status database -db drdb
Instance DRDB1 is running on node rdb01d
Instance DRDB2 is running on node rdb02d

 

[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl config database -db drdb
Database unique name: DRDB
Database name:
Oracle home: /u01/app/oracle/product/12c/db_1
Oracle user: oracle
Spfile: +DATA1/DRDB/PARAMETERFILE/spfile.268.1198106043
Password file: +DATA1/DRDB/PASSWORD/pwddrdb.256.1196204543
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: FRA1,DATA1
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: oper
Database instances: DRDB1,DRDB2
Configured nodes: rdb01d,rdb02d
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

 

[DRDB1:oracle@rdb01d][/home/oracle]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.CRS.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.DATA1.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.FRA1.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.MGMT.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               OFFLINE OFFLINE      rdb02d                   STABLE
ora.net1.network
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.ons
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       rdb01d                   169.254.50.53 10.0.0
                                                             .31,STABLE
ora.asm
      1        ONLINE  ONLINE       rdb01d                   Started,STABLE
      2        ONLINE  ONLINE       rdb02d                   Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       rdb01d                   Open,STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.rdb01d.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.rdb02d.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
--------------------------------------------------------------------------------

 

[DRDB1:oracle@rdb01d][/home/oracle]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          4
         Total space (kbytes)     :     409568
         Used space (kbytes)      :       2008
         Available space (kbytes) :     407560
         ID                       : 1537392064
         Device/File Name         :       +CRS
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

         Logical corruption check bypassed due to non-privileged user

 

[DRDB1:oracle@rdb01d][/home/oracle]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   de09ddda92054fd8bf647c70a813af35 (/dev/sdc) [CRS]
 2. ONLINE   c0900515c8054fdabfe233c5fc5f1ae2 (/dev/sdb) [CRS]
 3. ONLINE   e200ea55077f4f8dbf22d0188ce9e1f0 (/dev/sdd) [CRS]
Located 3 voting disk(s).

 

[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl config asm
ASM home: <CRS home>
Password file: +CRS/orapwASM
Backup of Password file:
ASM listener: LISTENER
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM

 

[+ASM1:grid@rdb01d][/home/grid]$ asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5276             2048            1614              0             Y  CRS/
MOUNTED  EXTERN  N         512             512   4096  4194304     40960    32516                0           32516              0             N  DATA1/
MOUNTED  EXTERN  N         512             512   4096  4194304     26624    20532                0           20532              0             N  FRA1/
MOUNTED  EXTERN  N         512             512   4096  4194304     40960    35628                0           35628              0             N  MGMT/

 

2. GRID Upgrade 전 grid 엔진 관련 모두 백업

 

--1번 노드
[root@rdb01d][/root]$ mkdir -pv /tmp/backup_before_upgrade
mkdir: created directory ‘/tmp/backup_before_upgrade’

[root@rdb01d][/root]$ chmod 777 /tmp/backup_before_upgrade/

 

[root@rdb01d][/root]$ ocrconfig -export /tmp/backup_before_upgrade/ocr_backup_20250718
PROT-58: successfully exported the Oracle Cluster Registry contents to file '/tmp/backup_before_upgrade/ocr_backup_20250718'

 

[root@rdb01d][/root]$ ocrconfig -local -export /tmp/backup_before_upgrade/ocr_local_backup_20250718
PROTL-58: successfully exported the Oracle Local Registry contents to file '/tmp/backup_before_upgrade/ocr_local_backup_20250718'

 

[root@rdb01d][/root]$ ocrconfig -manualbackup

rdb01d     2025/07/18 22:53:57     +MGMT:/drdb2/OCRBACKUP/backup_20250718_225357.ocr.279.1206831239     3975995681

 

--grid os user
[+ASM1:grid@rdb01d][/home/grid]$ asmcmd cp +MGMT/drdb2/OCRBACKUP/backup_20250718_225357.ocr.279.1206831239 /tmp/backup_before_upgrade
copying +MGMT/drdb2/OCRBACKUP/backup_20250718_225357.ocr.279.1206831239 -> /tmp/backup_before_upgrade/backup_20250718_225357.ocr.279.1206831239


--OLR 파일 위치 확인
[+ASM1:grid@rdb01d][/home/grid]$ ls -l $GRID_HOME/cdata/
total 1712
drwxrwxr-x. 2 grid oinstall         6 May 31 17:11 drdb2
drwxr-xr-x. 2 grid oinstall         6 Jan 27  2017 localhost
drwxr-xr-x. 2 grid oinstall      4096 Jul 18 22:59 rdb01d
-rw-------. 1 root oinstall 503484416 Jul 19 10:00 rdb01d.olr

 

--OLR 백업

[root@rdb01d][/root]$ ocrconfig -local -manualbackup

rdb01d     2025/07/18 22:59:24     /u01/app/12c/grid/cdata/rdb01d/backup_20250718_225924.olr     3975995681

 

[+ASM1:grid@rdb01d][/home/grid]$ cp /u01/app/12c/grid/cdata/rdb01d/backup_20250718_225924.olr /tmp/backup_before_upgrade

 

--그리드 엔진 백업
[root@rdb01d][/root]$ echo $GRID_HOME
/u01/app/12c/grid

 

[root@rdb01d][/root]$ tar -cvzf /tmp/backup_before_upgrade/grid_engine_backup.tar.gz $GRID_HOME

 

--asm instance parameter file 백업
[+ASM1:grid@rdb01d][/home/grid]$ alias sa
alias sa='rlwrap sqlplus "/as sysasm"'< /STRONG>
[+ASM1:grid@rdb01d][/home/grid]$ sa

SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 18 23:04:52 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> set linesize 300
SQL> show parameter spfile

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
spfile                               string                            +CRS/drdb2/ASMPARAMETERFILE/re
                                                                       gistry.253.1202577667
< /STRONG>

 

SQL> create pfile='/tmp/backup_before_upgrade/asm_pfile.ora' from spfile;< /STRONG>

File created.

 

SQL> host ls -l /tmp/backup_before_upgrade/asm_pfile.ora
-rw-r--r--. 1 grid oinstall 381 Jul 18 23:05 /tmp/backup_before_upgrade/asm_pfile.ora

SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


[root@rdb01d][/root]$ ls -l /etc/rc.d/init.d
total 104
-rw-r--r--. 1 root root 18281 May 22  2020 functions
-rwxr-xr-x. 1 root root 15336 May 31 17:18 init.ohasd
-rwxr-xr-x. 1 root root 21310 Mar 18 00:08 init.tfa
-rwxr-xr-x. 1 root root  4569 May 22  2020 netconsole
-rwxr-xr-x. 1 root root  9198 Oct  2  2020 network
-rwxr-xr-x. 1 root root  7283 May 31 17:18 ohasd
-rwxr-xr-x. 1 root root  4954 Feb  4  2018 oracleasm
-rw-r--r--. 1 root root  1160 Oct  2  2020 README
-rwxr-xr-x. 1 root root  2437 Feb  6  2018 rhnsd

 

[root@rdb01d][/root]$ tar czvf /tmp/backup_before_upgrade/etc_rc.d_init.d.tar.gz -C /etc/rc.d init.d
init.d/
init.d/README
init.d/functions
init.d/netconsole
init.d/network
init.d/rhnsd
init.d/oracleasm
init.d/init.tfa
init.d/init.ohasd
init.d/ohasd

 

[root@rdb01d][/root]$ tar tzvf /tmp/backup_before_upgrade/etc_rc.d_init.d.tar.gz
drwxr-xr-x root/root         0 2025-05-31 17:18 init.d/
-rw-r--r-- root/root      1160 2020-10-02 22:09 init.d/README
-rw-r--r-- root/root     18281 2020-05-22 19:44 init.d/functions
-rwxr-xr-x root/root      4569 2020-05-22 19:44 init.d/netconsole
-rwxr-xr-x root/root      9198 2020-10-02 00:53 init.d/network
-rwxr-xr-x root/root      2437 2018-02-06 14:47 init.d/rhnsd
-rwxr-xr-x root/root      4954 2018-02-04 01:15 init.d/oracleasm
-rwxr-xr-x root/root     21310 2025-03-18 00:08 init.d/init.tfa
-rwxr-xr-x root/root     15336 2025-05-31 17:18 init.d/init.ohasd
-rwxr-xr-x root/root      7283 2025-05-31 17:18 init.d/ohasd

 

--만약 복구한다고 가정 시
tar xpvzf /tmp/backup_before_upgrade/etc_rc.d_init.d.tar.gz -C /etc/rc.d

 

[root@rdb01d][/dev]$ tar cvzf /tmp/backup_before_upgrade/opt.tar.gz /opt
...생략
/opt/oracle.ahf/bin/
/opt/oracle.ahf/bin/tfactl
/opt/oracle.ahf/bin/orachk
/opt/oracle.ahf/bin/oerr
/opt/oracle.ahf/bin/ahfctl
/opt/oracle.ahf/analyzer/
/opt/oracle.ahf/install.properties

 

[root@rdb01d][/opt]$ cat /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall

 

[root@rdb01d][/opt]$ cp -rp /u01/app/oraInventory /tmp/backup_before_upgrade/u01_app_oraInventory

[root@rdb01d][/etc]$ cp /etc/oratab /tmp/backup_before_upgrade/etc_oratab

[root@rdb01d][/etc/oracle]$ tar cvzf /tmp/backup_before_upgrade/etc_oracle.tar.gz -C /etc/ oracle
oracle/
oracle/maps/
oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb01d_lock
oracle/maps/rdb01d_gipcd1318_06c65af9ae12ff40fff4fe92704d058c-0000000000
oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb01d-0000000000
oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb01d_lock
oracle/maps/rdb01d_gipcd1318_1352c79eb69c7f43bfa905789726b681-0000000000
oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb01d-0000000000
oracle/lastgasp/
oracle/lastgasp/cssmonit_rdb01d.lgl
oracle/lastgasp/cssagent_rdb01d.lgl
oracle/oprocd/
oracle/oprocd/check/
oracle/oprocd/stop/
oracle/oprocd/fatal/
oracle/scls_scr/
oracle/scls_scr/rdb01d/
oracle/scls_scr/rdb01d/grid/
oracle/scls_scr/rdb01d/grid/cssfatal
oracle/scls_scr/rdb01d/root/
oracle/scls_scr/rdb01d/root/crsstart
oracle/scls_scr/rdb01d/root/ohasdrun
oracle/scls_scr/rdb01d/root/ohasdinitpid
oracle/scls_scr/rdb01d/root/ohasdstr
oracle/olr.loc
oracle/ocr.loc
oracle/ocr.loc.orig
oracle/olr.loc.orig
oracle/setasmgid

 

[root@rdb01d][/etc/oracle]$ tar tvzf /tmp/backup_before_upgrade/etc_oracle.tar.gz
drwxr-xr-x root/oinstall     0 2025-05-31 18:03 oracle/
drwxrwxrwt root/oinstall     0 2025-07-18 22:15 oracle/maps/
-rwxrw---- grid/oinstall     0 2025-05-31 12:52 oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb01d_lock
-rw-r----- grid/oinstall 10485960 2025-05-31 15:42 oracle/maps/rdb01d_gipcd1318_06c65af9ae12ff40fff4fe92704d058c-0000000000
-rw-r----- grid/oinstall    66304 2025-05-31 15:43 oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb01d-0000000000
-rwxrw---- grid/oinstall        0 2025-07-18 22:15 oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb01d_lock
-rw-r----- grid/oinstall 10485960 2025-07-18 22:18 oracle/maps/rdb01d_gipcd1318_1352c79eb69c7f43bfa905789726b681-0000000000
-rw-r----- grid/oinstall    66304 2025-07-19 10:11 oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb01d-0000000000
drwxrwx--- root/oinstall        0 2025-05-31 17:23 oracle/lastgasp/
-rwxr--r-- root/root         4096 2025-05-31 17:23 oracle/lastgasp/cssmonit_rdb01d.lgl
-rwxr--r-- root/root         4096 2025-05-31 17:23 oracle/lastgasp/cssagent_rdb01d.lgl
drwxrwxr-x root/oinstall        0 2025-05-31 17:15 oracle/oprocd/
drwxrwx--- root/oinstall        0 2025-05-31 17:15 oracle/oprocd/check/
drwxrwx--- root/oinstall        0 2025-05-31 17:15 oracle/oprocd/stop/
drwxrwx--- root/oinstall        0 2025-05-31 17:15 oracle/oprocd/fatal/
drwxr-xr-x root/oinstall        0 2025-05-31 17:15 oracle/scls_scr/
drwxr-xr-x root/oinstall        0 2025-05-31 17:17 oracle/scls_scr/rdb01d/
drwxr-xr-x grid/root            0 2025-05-31 17:17 oracle/scls_scr/rdb01d/grid/
-rw-r--r-- grid/root            8 2025-05-31 18:04 oracle/scls_scr/rdb01d/grid/cssfatal
drwxr-xr-x root/root            0 2025-05-31 17:18 oracle/scls_scr/rdb01d/root/
-rw-r--r-- root/root            7 2025-05-31 18:04 oracle/scls_scr/rdb01d/root/crsstart
-rw-r--r-- root/oinstall        8 2025-07-18 22:15 oracle/scls_scr/rdb01d/root/ohasdrun
-rw-r--r-- root/root            5 2025-07-18 22:15 oracle/scls_scr/rdb01d/root/ohasdinitpid
-rw-r--r-- root/oinstall        7 2025-05-31 18:04 oracle/scls_scr/rdb01d/root/ohasdstr
-rw-r--r-- root/oinstall       76 2025-05-31 17:17 oracle/olr.loc
-rw-r--r-- root/oinstall      162 2025-05-31 17:21 oracle/ocr.loc
-rw-r--r-- root/root            0 2025-05-31 17:17 oracle/ocr.loc.orig
-rw-r--r-- root/root            0 2025-05-31 17:17 oracle/olr.loc.orig
-rws--x--- root/oinstall  3594456 2025-05-31 18:03 oracle/setasmgid

 

[+ASM1:grid@rdb01d][/home/grid]$ asmcmd md_backup /tmp/backup_before_upgrade/alldg
Disk group metadata to be backed up: CRS
Disk group metadata to be backed up: DATA1
Disk group metadata to be backed up: FRA1
Disk group metadata to be backed up: MGMT
Current alias directory path: drdb2
Current alias directory path: ASM
Current alias directory path: ASM/PASSWORD
Current alias directory path: drdb2/OCRFILE
Current alias directory path: drdb2/ASMPARAMETERFILE
Current alias directory path: DRDB/TEMPFILE
Current alias directory path: DRDB/DATAGUARDCONFIG
Current alias directory path: DRDB/ONLINELOG
Current alias directory path: DRDB
Current alias directory path: DRDB/CONTROLFILE
Current alias directory path: DRDB/PARAMETERFILE
Current alias directory path: DRDB/PASSWORD
Current alias directory path: ADG
Current alias directory path: DRDB/DATAFILE
Current alias directory path: DRDB/ARCHIVELOG/2025_06_20
Current alias directory path: DRDB/ARCHIVELOG/2025_06_11
Current alias directory path: DRDB/CONTROLFILE
Current alias directory path: DRDB/FLASHBACK
Current alias directory path: DRDB/ONLINELOG
Current alias directory path: DRDB/ARCHIVELOG/2025_05_04
Current alias directory path: DRDB/ARCHIVELOG/2025_07_18
Current alias directory path: DRDB/ARCHIVELOG
Current alias directory path: DRDB
Current alias directory path: DRDB/ARCHIVELOG/2025_06_21
Current alias directory path: DRDB/ARCHIVELOG/2025_06_10
Current alias directory path: _mgmtdb/4700AA69A9563E5FE05387E5E50AC8DA/DATAFILE
Current alias directory path: _mgmtdb/TEMPFILE
Current alias directory path: _mgmtdb/ONLINELOG
Current alias directory path: _mgmtdb
Current alias directory path: ASM/PASSWORD
Current alias directory path: _mgmtdb/366C191D568F0626E0631F00A8C05679
Current alias directory path: _mgmtdb/DATAFILE
Current alias directory path: _mgmtdb/CONTROLFILE
Current alias directory path: drdb2/OCRBACKUP
Current alias directory path: _mgmtdb/366C191D568F0626E0631F00A8C05679/TEMPFILE
Current alias directory path: drdb2
Current alias directory path: ASM
Current alias directory path: _mgmtdb/366C191D568F0626E0631F00A8C05679/DATAFILE
Current alias directory path: _mgmtdb/PARAMETERFILE
Current alias directory path: _mgmtdb/366BFEE4F11B20B3E0631F00A8C0F448
Current alias directory path: _mgmtdb/4700AA69A9563E5FE05387E5E50AC8DA
Current alias directory path: _mgmtdb/366BFEE4F11B20B3E0631F00A8C0F448/TEMPFILE


 

--2번 노드
[root@rdb02d][/root]$ mkdir -pv /tmp/backup_before_upgrade
mkdir: created directory ‘/tmp/backup_before_upgrade’

[root@rdb02d][/root]$ chmod 777 /tmp/backup_before_upgrade/


[root@rdb02d][/root]$ ocrconfig -export /tmp/backup_before_upgrade/ocr_backup_20250718
PROT-58: successfully exported the Oracle Cluster Registry contents to file '/tmp/backup_before_upgrade/ocr_backup_20250718'

 

[root@rdb02d][/root]$ ocrconfig -local -export /tmp/backup_before_upgrade/ocr_local_backup_20250718
PROTL-58: successfully exported the Oracle Local Registry contents to file '/tmp/backup_before_upgrade/ocr_local_backup_20250718'


[root@rdb02d][/root]$ ocrconfig -manualbackup

rdb01d     2025/07/19 10:18:08     +MGMT:/drdb2/OCRBACKUP/backup_20250719_101808.ocr.282.1206872289     3975995681

rdb01d     2025/07/19 00:04:08     +MGMT:/drdb2/OCRBACKUP/backup_20250719_000408.ocr.283.1206835449     3975995681

rdb01d     2025/07/18 22:53:57     +MGMT:/drdb2/OCRBACKUP/backup_20250718_225357.ocr.279.1206831239     3975995681


--grid os user (1번 노드로 가서)
[+ASM1:grid@rdb01d][/home/grid]$ asmcmd cp +MGMT/drdb2/OCRBACKUP/backup_20250718_225357.ocr.279.1206831239 /tmp/backup_before_upgrade
copying +MGMT/drdb2/OCRBACKUP/backup_20250718_225357.ocr.279.1206831239 -> /tmp/backup_before_upgrade/backup_20250718_225357.ocr.279.1206831239

 

--OLR 파일 위치 확인
[root@rdb02d][/root]$ ls -l $GRID_HOME/cdata/
total 1688
drwxrwxr-x. 2 grid oinstall         6 May 31 18:07 drdb2
drwxr-xr-x. 2 grid oinstall         6 May 31 18:07 localhost
drwxr-xr-x. 2 grid oinstall      4096 Jul 19 00:11 rdb02d
-rw-------. 1 root oinstall 503484416 Jul 19 10:21 rdb02d.olr

 

--OLR 백업
[root@rdb02d][/root]$ ocrconfig -local -manualbackup

rdb02d     2025/07/19 10:21:42     /u01/app/12c/grid/cdata/rdb02d/backup_20250719_102142.olr     3975995681

rdb02d     2025/07/19 00:11:31     /u01/app/12c/grid/cdata/rdb02d/backup_20250719_001131.olr     3975995681

rdb02d     2025/05/31 18:11:22     /u01/app/12c/grid/cdata/rdb02d/backup_20250531_181122.olr     3975995681

 

[root@rdb02d][/root]$ cp /u01/app/12c/grid/cdata/rdb02d/backup_20250719_102142.olr /tmp/backup_before_upgrade


[root@rdb02d][/root]$ echo $GRID_HOME
/u01/app/12c/grid

--그리드 엔진 백업

[root@rdb02d][/root]$ tar -cvzf /tmp/backup_before_upgrade/grid_engine_backup.tar.gz $GRID_HOME

 

--asm instance parameter file 백업
[+ASM2:grid@rdb02d][/home/grid]$ alias sa
alias sa='rlwrap sqlplus "/as sysasm"'< /STRONG>

[+ASM2:grid@rdb02d][/home/grid]$ sa

SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 19 10:22:49 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL> set linesize 300
SQL> show parameter spfile

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
spfile                               string                            +CRS/drdb2/ASMPARAMETERFILE/re
                                                                       gistry.253.1202577667
< /STRONG>

 

SQL> create pfile='/tmp/backup_before_upgrade/asm_pfile.ora' from spfile;< /STRONG>

File created.

 

SQL> host ls -l /tmp/backup_before_upgrade/asm_pfile.ora
-rw-r--r--. 1 grid oinstall 381 Jul 19 10:23 /tmp/backup_before_upgrade/asm_pfile.ora

SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

[root@rdb02d][/root]$ ls -l /etc/rc.d/init.d
total 104
-rw-r--r--. 1 root root 18281 May 22  2020 functions
-rwxr-xr-x. 1 root root 15336 May 31 18:07 init.ohasd
-rwxr-xr-x. 1 root root 21310 Mar 18 09:03 init.tfa
-rwxr-xr-x. 1 root root  4569 May 22  2020 netconsole
-rwxr-xr-x. 1 root root  9198 Oct  2  2020 network
-rwxr-xr-x. 1 root root  7283 May 31 18:07 ohasd
-rwxr-xr-x. 1 root root  4954 Feb  4  2018 oracleasm
-rw-r--r--. 1 root root  1160 Oct  2  2020 README
-rwxr-xr-x. 1 root root  2437 Feb  6  2018 rhnsd

 

[root@rdb02d][/root]$ tar czvf /tmp/backup_before_upgrade/etc_rc.d_init.d.tar.gz -C /etc/rc.d init.d
init.d/
init.d/README
init.d/functions
init.d/netconsole
init.d/network
init.d/rhnsd
init.d/oracleasm
init.d/init.tfa
init.d/init.ohasd
init.d/ohasd

 

[root@rdb02d][/root]$ tar tzvf /tmp/backup_before_upgrade/etc_rc.d_init.d.tar.gz
drwxr-xr-x root/root         0 2025-05-31 18:07 init.d/
-rw-r--r-- root/root      1160 2020-10-02 22:09 init.d/README
-rw-r--r-- root/root     18281 2020-05-22 19:44 init.d/functions
-rwxr-xr-x root/root      4569 2020-05-22 19:44 init.d/netconsole
-rwxr-xr-x root/root      9198 2020-10-02 00:53 init.d/network
-rwxr-xr-x root/root      2437 2018-02-06 14:47 init.d/rhnsd
-rwxr-xr-x root/root      4954 2018-02-04 01:15 init.d/oracleasm
-rwxr-xr-x root/root     21310 2025-03-18 09:03 init.d/init.tfa
-rwxr-xr-x root/root     15336 2025-05-31 18:07 init.d/init.ohasd
-rwxr-xr-x root/root      7283 2025-05-31 18:07 init.d/ohasd

 

--만약 복구한다고 가정 시
tar xpvzf /tmp/backup_before_upgrade/etc_rc.d_init.d.tar.gz -C /etc/rc.d


[root@rdb02d][/dev]$ tar cvzf /tmp/backup_before_upgrade/opt.tar.gz /opt
...생략
/opt/oracle.ahf/bin/
/opt/oracle.ahf/bin/tfactl
/opt/oracle.ahf/bin/orachk
/opt/oracle.ahf/bin/oerr
/opt/oracle.ahf/bin/ahfctl
/opt/oracle.ahf/analyzer/
/opt/oracle.ahf/install.properties

[root@rdb02d][/opt]$ cat /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall

 

[root@rdb02d][/opt]$ cp -rp /u01/app/oraInventory /tmp/backup_before_upgrade/u01_app_oraInventory

[root@rdb02d][/etc]$ cp -p /etc/oratab /tmp/backup_before_upgrade/etc_oratab

[root@rdb02d][/root]$ tar cvzf /tmp/backup_before_upgrade/etc_oracle.tar.gz -C /etc/ oracle
oracle/
oracle/maps/
oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb02d_lock
oracle/maps/rdb02d_gipcd1318_06c65af9ae12ff40fff4fe92704d058c-0000000000
oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb02d-0000000000
oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb02d_lock
oracle/maps/rdb02d_gipcd1318_1352c79eb69c7f43bfa905789726b681-0000000000
oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb02d-0000000000
oracle/lastgasp/
oracle/lastgasp/cssmonit_rdb02d.lgl
oracle/lastgasp/cssagent_rdb02d.lgl
oracle/oprocd/
oracle/oprocd/check/
oracle/oprocd/stop/
oracle/oprocd/fatal/
oracle/scls_scr/
oracle/scls_scr/rdb02d/
oracle/scls_scr/rdb02d/grid/
oracle/scls_scr/rdb02d/grid/cssfatal
oracle/scls_scr/rdb02d/root/
oracle/scls_scr/rdb02d/root/crsstart
oracle/scls_scr/rdb02d/root/ohasdrun
oracle/scls_scr/rdb02d/root/ohasdinitpid
oracle/scls_scr/rdb02d/root/ohasdstr
oracle/setasmgid
oracle/olr.loc
oracle/ocr.loc
oracle/ocr.loc.orig
oracle/olr.loc.orig


[root@rdb02d][/root]$ tar tvzf /tmp/backup_before_upgrade/etc_oracle.tar.gz
drwxr-xr-x root/oinstall     0 2025-05-31 18:07 oracle/
drwxrwxrwt root/oinstall     0 2025-07-18 22:16 oracle/maps/
-rwxrw---- grid/oinstall     0 2025-05-31 15:59 oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb02d_lock
-rw-r----- grid/oinstall 10485960 2025-05-31 16:01 oracle/maps/rdb02d_gipcd1318_06c65af9ae12ff40fff4fe92704d058c-0000000000
-rw-r----- grid/oinstall    66304 2025-05-31 16:01 oracle/maps/gipcds_gipc_diag_06c65af9ae12ff40fff4fe92704d058c_rdb02d-0000000000
-rwxrw---- grid/oinstall        0 2025-07-18 22:16 oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb02d_lock
-rw-r----- grid/oinstall 10485960 2025-07-18 22:17 oracle/maps/rdb02d_gipcd1318_1352c79eb69c7f43bfa905789726b681-0000000000
-rw-r----- grid/oinstall    66304 2025-07-19 10:26 oracle/maps/gipcds_gipc_diag_1352c79eb69c7f43bfa905789726b681_rdb02d-0000000000
drwxrwx--- root/oinstall        0 2025-05-31 18:09 oracle/lastgasp/
-rwxr--r-- root/root         4096 2025-05-31 18:09 oracle/lastgasp/cssmonit_rdb02d.lgl
-rwxr--r-- root/root         4096 2025-05-31 18:09 oracle/lastgasp/cssagent_rdb02d.lgl
drwxrwxr-x root/oinstall        0 2025-05-31 18:07 oracle/oprocd/
drwxrwx--- root/oinstall        0 2025-05-31 18:07 oracle/oprocd/check/
drwxrwx--- root/oinstall        0 2025-05-31 18:07 oracle/oprocd/stop/
drwxrwx--- root/oinstall        0 2025-05-31 18:07 oracle/oprocd/fatal/
drwxr-xr-x root/oinstall        0 2025-05-31 18:07 oracle/scls_scr/
drwxr-xr-x root/oinstall        0 2025-05-31 18:07 oracle/scls_scr/rdb02d/
drwxr-xr-x grid/root            0 2025-05-31 18:07 oracle/scls_scr/rdb02d/grid/
-rw-r--r-- grid/root            8 2025-05-31 18:07 oracle/scls_scr/rdb02d/grid/cssfatal
drwxr-xr-x root/root            0 2025-05-31 18:08 oracle/scls_scr/rdb02d/root/
-rw-r--r-- root/root            7 2025-05-31 18:07 oracle/scls_scr/rdb02d/root/crsstart
-rw-r--r-- root/oinstall        8 2025-07-18 22:15 oracle/scls_scr/rdb02d/root/ohasdrun
-rw-r--r-- root/root            5 2025-07-18 22:15 oracle/scls_scr/rdb02d/root/ohasdinitpid
-rw-r--r-- root/oinstall        7 2025-05-31 18:08 oracle/scls_scr/rdb02d/root/ohasdstr
-rws--x--- root/oinstall  3594456 2025-05-31 18:07 oracle/setasmgid
-rw-r--r-- root/oinstall       76 2025-05-31 18:07 oracle/olr.loc
-rw-r--r-- root/oinstall       74 2025-05-31 18:07 oracle/ocr.loc
-rw-r--r-- root/root            0 2025-05-31 18:07 oracle/ocr.loc.orig
-rw-r--r-- root/root            0 2025-05-31 18:07 oracle/olr.loc.orig


[+ASM2:grid@rdb02d][/home/grid]$ asmcmd md_backup /tmp/backup_before_upgrade/alldg
Disk group metadata to be backed up: CRS
Disk group metadata to be backed up: DATA1
Disk group metadata to be backed up: FRA1
Current alias directory path: ASM/PASSWORD
Current alias directory path: ASM
Current alias directory path: drdb2/ASMPARAMETERFILE
Current alias directory path: drdb2
Current alias directory path: drdb2/OCRFILE
Current alias directory path: DRDB/DATAFILE
Current alias directory path: ADG
Current alias directory path: DRDB/TEMPFILE
Current alias directory path: DRDB/PARAMETERFILE
Current alias directory path: DRDB/DATAGUARDCONFIG
Current alias directory path: DRDB/PASSWORD
Current alias directory path: DRDB
Current alias directory path: DRDB/CONTROLFILE
Current alias directory path: DRDB/ONLINELOG
Current alias directory path: DRDB/ARCHIVELOG/2025_07_19
Current alias directory path: DRDB
Current alias directory path: DRDB/CONTROLFILE
Current alias directory path: DRDB/ARCHIVELOG/2025_05_04
Current alias directory path: DRDB/ARCHIVELOG/2025_06_21
Current alias directory path: DRDB/ARCHIVELOG/2025_06_20
Current alias directory path: DRDB/ARCHIVELOG
Current alias directory path: DRDB/ARCHIVELOG/2025_07_18
Current alias directory path: DRDB/ONLINELOG
Current alias directory path: DRDB/ARCHIVELOG/2025_06_11
Current alias directory path: DRDB/FLASHBACK
Current alias directory path: DRDB/ARCHIVELOG/2025_06_10

 

3. Grid Upgrade

 

3-1. 19c Upgrade를 위한 필수 패치가 존재하는지 확인

 

--1번 노드

Patches to apply before upgrading Oracle GI and DB to 19c or downgrading to previous release (Doc ID 2539751.1)

--> 해당 문서를 참고해서 업그레이드 전 필수 패치 확인

 

[+ASM1:grid@rdb01d][/home/grid]$ opatch lsinventory | grep 28553832
     28553832, 28558622, 28562244, 28567875, 28578962, 28588574, 28593407
--> 28553832 가 존재하는 상황임

 

--2번 노드
[+ASM2:grid@rdb02d][/home/grid]$ opatch lsinventory | grep 28553832
     28553832, 28558622, 28562244, 28567875, 28578962, 28588574, 28593407
--> 28553832 가 존재하는 상황임

 

3-2. 19c Grid/Oracle 엔진 및 최신 RU 다운로드 및 업로드

 

--1번 노드에서만

https://www.oracle.com/kr/database/technologies/oracle19c-linux-downloads.html
How To Download And Install The Latest OPatch(6880880) Version (Doc ID 274526.1)
Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases (Doc ID 2118136.2)

 

--오라클 엔진 파일도 이 단계에서 다운로드 및 업로드 시킴

 

--1번 노드
[+ASM1:grid@rdb01d][/home/grid]$ mkdir -pv /tmp/19.27
[+ASM1:grid@rdb01d][/home/grid]$ cd /tmp/19.27
[+ASM1:grid@rdb01d][/tmp/19.27]$ pwd
/tmp/19.27

[+ASM1:grid@rdb01d][/tmp/19.27]$ ls -l /tmp/19.27
-rw-r--r--. 1 grid oinstall 3059705302 Jul 20 12:09 LINUX.X64_193000_db_home.zip
-rw-r--r--. 1 grid oinstall 2889184573 Jul 20 12:11 LINUX.X64_193000_grid_home.zip
-rwxrwxrwx. 1 grid oinstall 3961245851 Jul 20 11:52 p37641958_190000_Linux-x86-64.zip
-rwxrwxrwx. 1 grid oinstall   72539776 Jul 20 11:51 p6880880_190000_Linux-x86-64.zip


[+ASM1:grid@rdb01d][/tmp/19.27]$ chmod -R 777 /tmp/19.27


3-3. 19c 설치를 위한 필수 패키지 확인

 

Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Solaris and MS Windows Operating Systems Installation and Configuration Requirements Quick Reference (12.1/12.2/18c/19c) (Doc ID 1587357.1)

 

--1번 노드
[root@rdb01d][/root]$ vi check_pakage.sh
[root@rdb01d][/root]$ cat check_pakage.sh
rpm -q bc
rpm -q binutils
rpm -q compat-libcap1
rpm -q compat-libstdc++
rpm -q elfutils-libelf
rpm -q elfutils-libelf-devel
rpm -q fontconfig-devel
rpm -q glibc
rpm -q glibc-devel
rpm -q ksh
rpm -q libaio
rpm -q libaio-devel
rpm -q libXrender
rpm -q libXrender-devel
rpm -q libX11
rpm -q libXau
rpm -q libXi
rpm -q libXtst
rpm -q libgcc
rpm -q libstdc++
rpm -q libstdc++-devel
rpm -q libxcb
rpm -q make
rpm -q net-tools
rpm -q nfs-utils
rpm -q python
rpm -q python-configshell
rpm -q python-rtslib
rpm -q python-six
rpm -q targetcli
rpm -q smartmontools
rpm -q sysstat

 

[root@rdb01d][/root]$ chmod 775 /root/check_pakage.sh
[root@rdb01d][/root]$ sh /root/check_pakage.sh | grep -i "not installed"
package compat-libstdc++ is not installed
package python-configshell is not installed
package python-rtslib is not installed
package python-six is not installed
package targetcli is not installed

 

[root@rdb01d][/root]$ yum install -y compat-libstdc++ python-configshell python-rtslib python-six targetcli

[root@rdb01d][/root]$ sh /root/check_pakage.sh | grep -i "not installed"
package compat-libstdc++ is not installed

 

[root@rdb01d][/root]$ yum list installed | grep compat-libstdc++
compat-libstdc++-33.x86_64           3.2.3-72.el7                  @ol7_latest
--> 이미 설치되어 있는 상황임

 

--2번 노드
[root@rdb02d][/root]$ vi check_pakage.sh
[root@rdb02d][/root]$ cat check_pakage.sh
rpm -q bc
rpm -q binutils
rpm -q compat-libcap1
rpm -q compat-libstdc++
rpm -q elfutils-libelf
rpm -q elfutils-libelf-devel
rpm -q fontconfig-devel
rpm -q glibc
rpm -q glibc-devel
rpm -q ksh
rpm -q libaio
rpm -q libaio-devel
rpm -q libXrender
rpm -q libXrender-devel
rpm -q libX11
rpm -q libXau
rpm -q libXi
rpm -q libXtst
rpm -q libgcc
rpm -q libstdc++
rpm -q libstdc++-devel
rpm -q libxcb
rpm -q make
rpm -q net-tools
rpm -q nfs-utils
rpm -q python
rpm -q python-configshell
rpm -q python-rtslib
rpm -q python-six
rpm -q targetcli
rpm -q smartmontools
rpm -q sysstat

 

[root@rdb02d][/root]$ chmod 775 /root/check_pakage.sh
[root@rdb02d][/root]$ sh /root/check_pakage.sh | grep -i "not installed"
package compat-libstdc++ is not installed

package python-configshell is not installed
package python-rtslib is not installed
package python-six is not installed
package targetcli is not installed

 

[root@rdb02d][/root]$ yum install -y compat-libstdc++ python-configshell python-rtslib python-six targetcli

[root@rdb02d][/root]$ sh /root/check_pakage.sh | grep -i "not installed"
package compat-libstdc++ is not installed

 

[root@rdb02d][/root]$ yum list installed | grep compat-libstdc++
compat-libstdc++-33.x86_64           3.2.3-72.el7                  @ol7_latest
--> 이미 설치되어 있는 상황임

 

3-4. 19c Grid 엔진 설치 (applyRU)

 

--1번 노드
[root@rdb01d][/root]$ mkdir -pv /u01/app/19c/grid
mkdir: created directory ‘/u01/app/19c’
mkdir: created directory ‘/u01/app/19c/grid’


[root@rdb01d][/root]$ chown grid:oinstall /u01/app/19c/grid
[root@rdb01d][/root]$ chmod 775 /u01/app/19c/grid

 

--2번 노드
[root@rdb02d][/root]$ mkdir -pv /u01/app/19c/grid
mkdir: created directory ‘/u01/app/19c’
mkdir: created directory ‘/u01/app/19c/grid’

 

[root@rdb02d][/root]$ chown grid:oinstall /u01/app/19c/grid
[root@rdb02d][/root]$ chmod 775 /u01/app/19c/grid

 

--1번 노드에서만
[+ASM1:grid@rdb01d][/home/grid]$ unzip /tmp/19.27/LINUX.X64_193000_grid_home.zip -d /u01/app/19c/grid

--> 그리드 엔진

 

[+ASM1:grid@rdb01d][/home/grid]$ unzip /tmp/19.27/p37641958_190000_Linux-x86-64.zip -d /tmp/19.27

--> RU 패치

 

[+ASM1:grid@rdb01d][/home/grid]$ mv /u01/app/19c/grid/OPatch /u01/app/19c/grid/OPatch.bak.20250712
[+ASM1:grid@rdb01d][/home/grid]$ unzip /tmp/19.27/p6880880_190000_Linux-x86-64.zip -d /u01/app/19c/grid/
[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/OPatch/opatch version

OPatch Version: 12.2.0.1.46

OPatch succeeded.

--> OPatch

 

--1번 노드에서만

<Patch 37641958 - GI Release Update 19.27.0.0.250415>
Patch Number   Description                                       Applicable Homes
-------------------------------------------------------------------------------
37642901       Database Release Update 19.27.0.0.250415          - Oracle Home (non-RAC), Oracle Home & Grid Home (RAC)
37654975       OCW Release Update 19.27.0.0.250415               - Oracle Home, Grid Home
37643161       ACFS Release Update 19.27.0.0.250415              - Grid Home only
37762426       Tomcat Release Update 19.0.0.0.0                  - Grid Home only
36758186       DBWLM Release Update 19.0.0.0.0                   - Grid Home only


[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/gridSetup.sh \
-applyRU /tmp/19.27/37641958/37654975 \
-applyOneOffs /tmp/19.27/37641958/37642
901,/tmp/19.27/37641958/37643161,/tmp/19.27/37641958/37762426,/tmp/19.27/37641958/36758186

 

--> apply 로그는 아래의 위치에 남게됨

/u01/app/19c/grid/cfgtoollogs/opatchauto/core/opatch

 

Preparing the home to patch...
Applying the patch /tmp/19.27/37641958/37654975...
Successfully applied the patch.
Applying the patch /tmp/19.27/37641958/37642901...
Successfully applied the patch.
Applying the patch /tmp/19.27/37641958/37643161...

--> 패치가 완료되면 UI종료

 

--gui를 통해서 reponse 파일을 생성한다면 UI를 통해서 reponsefile 생성
Upgrade Oracle Grid Infrastructure
RAC Node 체크 및 SSH connectivity 설정
EM 체크 안함
Oracle base : /u01/app/oracle
Automatically run configuration scripts -> 체크해제
Save Response File -> /home/grid/grid_19c.rsp
--> /home/grid/grid_19c.rsp 만 저장하고 나옴

[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /u01/app/12c/grid -dest_crshome /u01/app/19c/grid -dest_version 19.27.0.0.0 -fixup -verbose

Performing following verification checks ...

  Physical Memory ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rdb02d        15.6298GB (1.6389072E7KB)  8GB (8388608.0KB)         passed
  rdb01d        15.6298GB (1.638906E7KB)  8GB (8388608.0KB)         passed
  Physical Memory ...PASSED
  Available Physical Memory ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rdb02d        13.2597GB (1.3903752E7KB)  50MB (51200.0KB)          passed
  rdb01d        12.1411GB (1.2730912E7KB)  50MB (51200.0KB)          passed
  Available Physical Memory ...PASSED
  Swap Size ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rdb02d        16GB (1.6777212E7KB)      15.6298GB (1.6389072E7KB)  passed
  rdb01d        16GB (1.6777212E7KB)      15.6298GB (1.638906E7KB)  passed
  Swap Size ...PASSED
...생략

Pre-check for cluster services setup was unsuccessful.
Checks did not pass for the following nodes:
        rdb02d


Failures were encountered during execution of CVU verification request "stage -pre crsinst".

Device Checks for ASM ...FAILED
  Access Control List check ...FAILED
  rdb02d: PRVF-9991 : Owner of device "/dev/sdg" did not match the expected
          owner. [Expected = "grid"; Found = "root"] on nodes: [rdb02d]
  rdb02d: PRVF-9992 : Group of device "/dev/sdg" did not match the expected
          group. [Expected = "asmadmin"; Found = "disk"] on nodes: [rdb02d]

--> mgmtdb가 1번 노드에 구동되고 있어서 이런 메시지가 나옴

 

RPM Package Manager database ...INFORMATION
PRVG-11250 : The check "RPM Package Manager database" was not performed because
it needs 'root' user privileges.

Refer to My Oracle Support notes "2548970.1" for more details regarding errors
PRVG-11250"."


CVU operation performed:      stage -pre crsinst
Date:                         Jul 19, 2025 9:37:23 AM
CVU version:                  Standalone 19.27.0.0.0 (041025x8664)
Clusterware version:          12.2.0.1.0
CVU home:                     /u01/app/19c/grid
Grid home:                    /u01/app/12c/grid
User:                         grid
Operating system:             Linux5.4.17-2102.201.3.el7uek.x86_64

 

--2번 노드에 가서 /dev/sdg 의 권한을 바꿔줌
[root@rdb02d][/dev]$ ls -l sd*
brw-rw----. 1 root disk     8,  0 Jul 19 09:17 sda
brw-rw----. 1 root disk     8,  1 Jul 19 09:17 sda1
brw-rw----. 1 root disk     8,  2 Jul 19 09:17 sda2
brw-rw----. 1 grid asmadmin 8, 16 Jul 19 09:54 sdb
brw-rw----. 1 grid asmadmin 8, 32 Jul 19 09:54 sdc
brw-rw----. 1 grid asmadmin 8, 48 Jul 19 09:54 sdd
brw-rw----. 1 grid asmadmin 8, 64 Jul 19 09:54 sde
brw-rw----. 1 grid asmadmin 8, 80 Jul 19 09:54 sdf
brw-rw----. 1 root disk     8, 96 Jul 19 09:17 sdg

 

[root@rdb02d][/dev]$ chown grid:asmadmin /dev/sdg
[root@rdb02d][/dev]$ ls -l sd*
brw-rw----. 1 root disk     8,  0 Jul 19 09:17 sda
brw-rw----. 1 root disk     8,  1 Jul 19 09:17 sda1
brw-rw----. 1 root disk     8,  2 Jul 19 09:17 sda2
brw-rw----. 1 grid asmadmin 8, 16 Jul 19 09:54 sdb
brw-rw----. 1 grid asmadmin 8, 32 Jul 19 09:54 sdc
brw-rw----. 1 grid asmadmin 8, 48 Jul 19 09:54 sdd
brw-rw----. 1 grid asmadmin 8, 64 Jul 19 09:54 sde
brw-rw----. 1 grid asmadmin 8, 80 Jul 19 09:54 sdf
brw-rw----. 1 grid asmadmin 8, 96 Jul 19 09:17 sdg

 

--다시 확인
[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /u01/app/12c/grid -dest_crshome /u01/app/19c/grid -dest_version 19.27.0.0.0 -fixup -verbose
...생략
Pre-check for cluster services setup was successful.

--> successful임을 확인함

RPM Package Manager database ...INFORMATION
PRVG-11250 : The check "RPM Package Manager database" was not performed because
it needs 'root' user privileges.

-- method root로도 수행
[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /u01/app/12c/grid -dest_crshome /u01/app/19c/grid -dest_version 19.27.0.0.0 -fixup -verbose -method root
Pre-check for cluster services setup was successful.

CVU operation performed:      stage -pre crsinst
Date:                         Jul 20, 2025 12:39:27 PM
CVU version:                  Standalone 19.27.0.0.0 (041025x8664)
Clusterware version:          12.2.0.1.0
CVU home:                     /u01/app/19c/grid
Grid home:                    /u01/app/12c/grid
User:                         grid
Operating system:             Linux5.4.17-2102.201.3.el7uek.x86_64
--> 성공함

 

--ssh 자동 접속 설정
[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/12c/grid/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts "rdb01d rdb02d" -noPromptPassphrase -advanced
[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/12c/grid/oui/prov/resources/scripts/sshUserSetup.sh -user grid -hosts "rdb01d rdb02d" -noPromptPassphrase -advanced

 

3-5. grid Upgrade

 

[+ASM1:grid@rdb01d][/home/grid]$ alias csrt
alias csrt='crsctl stat res -t'
[+ASM1:grid@rdb01d][/home/grid]$ csrt
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.CRS.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.DATA1.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.FRA1.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.MGMT.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
      ----------> 이부분 중요함 mgmtdb가 구동안된 2번 노드도 mgmt diskgroup에 접근할 수 있어야함
ora.net1.network
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.ons
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       rdb01d                   169.254.50.53 10.0.0
                                                             .31,STABLE
ora.asm
      1        ONLINE  ONLINE       rdb01d                   Started,STABLE
      2        ONLINE  ONLINE       rdb02d                   Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       rdb01d                   Open,STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.rdb01d.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.rdb02d.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
--------------------------------------------------------------------------------

 

--> 업그레이전 mgmtdb가 1번 노드에 잘 떠있어야함. 잘 떠있지 않다면 아래의 명령으로 실행해줘야함
srvctl add cha
srvctl start cha
srvctl enable mgmtlsnr -node rdb01d
srvctl enable mgmtdb -node rdb01d
srvctl relocate mgmtdb -node rdb01d

--> 이번 작업에서는 업그레이드 전 12cR2의 mgmtdb를 제거하고 업그레이드 할 것임

[+ASM1:grid@rdb01d][/u01/app/19c/grid]$ awk -F= 'NF && $1 !~ /^#/ && $2!=""' /home/grid/grid_19c.rsp > /home/grid/grid_19c_new.rsp
[+ASM1:grid@rdb01d][/u01/app/19c/grid]$ cat /home/grid/grid_19c_new.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=UPGRADE
ORACLE_BASE=/u01/app/oracle
oracle.install.crs.config.scanType=LOCAL_SCAN
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.clusterName=drdb2
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS
oracle.install.crs.config.clusterNodes=rdb02d:,rdb01d:
oracle.install.crs.configureGIMR=true
oracle.install.asm.configureGIMRDataDG=false
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.useIPMI=false
oracle.install.asm.diskGroup.name=MGMT
oracle.install.asm.diskGroup.AUSize=0
oracle.install.asm.gimrDG.AUSize=1
oracle.install.asm.configureAFD=false
oracle.install.crs.configureRHPS=false
oracle.install.crs.config.ignoreDownNodes=false
oracle.install.config.managementOption=NONE
oracle.install.config.omsPort=0
oracle.install.crs.rootconfig.executeRootScript=false

 

--> response file 수정 작업

[+ASM1:grid@rdb01d][/u01/app/19c/grid]$ vi /home/grid/grid_19c_new.rsp
[+ASM1:grid@rdb01d][/u01/app/19c/grid]$ cat /home/grid/grid_19c_new.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=UPGRADE
ORACLE_BASE=/u01/app/oracle
oracle.install.crs.config.scanType=LOCAL_SCAN
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.clusterName=drdb2
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS
oracle.install.crs.config.clusterNodes=rdb02d:,rdb01d:
oracle.install.crs.configureGIMR=false
oracle.install.asm.configureGIMRDataDG=false
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.useIPMI=false
oracle.install.asm.diskGroup.name=MGMT
oracle.install.asm.diskGroup.AUSize=0
oracle.install.asm.gimrDG.AUSize=1
oracle.install.asm.configureAFD=false
oracle.install.crs.configureRHPS=false
oracle.install.crs.config.ignoreDownNodes=false
oracle.install.config.managementOption=NONE
oracle.install.config.omsPort=0
oracle.install.crs.rootconfig.executeRootScript=false

--> oracle.install.crs.configureGIMR을 false로 변경

 

--> 여기서 vm을 백업 (테스트 실패 시 재시도 하기 위해)

--> VM 백업 후 다시 재기동 했다면 아래의 사항을 한번 더 체크할 것 - 시작

--반드시 한번 더 체크
--2번 노드에 가서 /dev/sdg 의 권한을 바꿔줌
[root@rdb02d][/dev]$ ls -l /dev/sd*
brw-rw----. 1 root disk     8,  0 Jul 19 09:17 sda
brw-rw----. 1 root disk     8,  1 Jul 19 09:17 sda1
brw-rw----. 1 root disk     8,  2 Jul 19 09:17 sda2
brw-rw----. 1 grid asmadmin 8, 16 Jul 19 09:54 sdb
brw-rw----. 1 grid asmadmin 8, 32 Jul 19 09:54 sdc
brw-rw----. 1 grid asmadmin 8, 48 Jul 19 09:54 sdd
brw-rw----. 1 grid asmadmin 8, 64 Jul 19 09:54 sde
brw-rw----. 1 grid asmadmin 8, 80 Jul 19 09:54 sdf
brw-rw----. 1 root disk     8, 96 Jul 19 09:17 sdg

 

[root@rdb02d][/dev]$ chown grid:asmadmin /dev/sdg
[root@rdb02d][/dev]$ ls -l sd*
brw-rw----. 1 root disk     8,  0 Jul 19 09:17 sda
brw-rw----. 1 root disk     8,  1 Jul 19 09:17 sda1
brw-rw----. 1 root disk     8,  2 Jul 19 09:17 sda2
brw-rw----. 1 grid asmadmin 8, 16 Jul 19 09:54 sdb
brw-rw----. 1 grid asmadmin 8, 32 Jul 19 09:54 sdc
brw-rw----. 1 grid asmadmin 8, 48 Jul 19 09:54 sdd
brw-rw----. 1 grid asmadmin 8, 64 Jul 19 09:54 sde
brw-rw----. 1 grid asmadmin 8, 80 Jul 19 09:54 sdf
brw-rw----. 1 grid asmadmin 8, 96 Jul 19 09:17 sdg

 

[root@rdb02d][/root]$ csrt
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.CRS.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.DATA1.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.FRA1.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.MGMT.dg
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.net1.network
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.ons
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       rdb01d                   169.254.50.53 10.0.0
                                                             .31,STABLE
ora.asm
      1        ONLINE  ONLINE       rdb01d                   Started,STABLE
      2        ONLINE  ONLINE       rdb02d                   Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       rdb01d                   Open,STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.rdb01d.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.rdb02d.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
--------------------------------------------------------------------------------

--> VM 백업 후 다시 재기동 했다면 아래의 사항을 한번 더 체크할 것 - 종료

 

-- dryrun 해보기

[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/gridSetup.sh -silent -dryRunForUpgrade -ignorePrereqFailure -responseFile /home/grid/grid_19c_new.rsp
Launching Oracle Grid Infrastructure Setup Wizard...

[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/GridSetupActions2025-07-19_10-46-52AM/gridSetupActions2025-07-19_10-46-52AM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/GridSetupActions2025-07-19_10-46-52AM/gridSetupActions2025-07-19_10-46-52AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u01/app/19c/grid/install/response/grid_2025-07-19_10-46-52AM.rsp

You can find the log of this install session at:
 /u01/app/oraInventory/logs/GridSetupActions2025-07-19_10-46-52AM/gridSetupActions2025-07-19_10-46-52AM.log

As a root user, execute the following script(s):
        1. /u01/app/19c/grid/rootupgrade.sh

Execute /u01/app/19c/grid/rootupgrade.sh on the following nodes:
[rdb01d]

Run the script on the local node.

Successfully Setup Software with warning(s).


[root@rdb01d][/root]$ /u01/app/19c/grid/rootupgrade.sh
Check /u01/app/19c/grid/install/root_rdb01d_2025-07-19_10-59-17-245363728.log for the output of root script

 

--로그 모니터링
[root@rdb01d][/root]$ tail -f /u01/app/19c/grid/install/root_rdb01d_2025-07-19_10-59-17-245363728.log
   ORACLE_HOME=  /u01/app/19c/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Performing Dry run of the Grid Infrastructure upgrade.
Using configuration parameter file: /u01/app/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/oracle/crsdata/rdb01d/crsconfig/crsupgrade_dryrun_rdb01d_2025-07-19_10-59-43AM.log
scp:
/u01/app/oracle/crsdata/@global/crsconfig/index.xml: set mode: Operation not permitted

2025/07/19 11:00:00 CLSRSC-180: An error occurred while executing the command '/u01/app/19c/grid/bin/cluutil -ckpt -global -oraclebase /u01/app/oracle -writeckpt -name ROOTCRS_FIRSTNODE -state START -nodelist rdb01d,rdb02d -transferfile'
2025/07/19 11:00:00 CLSRSC-175: Failed to write the checkpoint 'ROOTCRS_FIRSTNODE' with status 'START' (error code 0)
scp:
/u01/app/oracle/crsdata/@global/crsconfig/index.xml: set mode: Operation not permitted
2025/07/19 11:00:01 CLSRSC-180: An error occurred while executing the command '/u01/app/19c/grid/bin/cluutil -ckpt -global -oraclebase /u01/app/oracle -writeckpt -name ROOTCRS_FIRSTNODE -pname VERSION -pvalue 19.0.0.0.0 -nodelist rdb01d,rdb02d -transferfile'
2025/07/19 11:00:01 CLSRSC-177: Failed to add (property/value):('VERSION'/'19.0.0.0.0') for checkpoint 'ROOTCRS_FIRSTNODE' (error code 0)
scp:
/u01/app/oracle/crsdata/@global/crsconfig/index.xml: set mode: Operation not permitted

2025/07/19 11:00:09 CLSRSC-180: An error occurred while executing the command '/u01/app/19c/grid/bin/cluutil -ckpt -global -oraclebase /u01/app/oracle -writeckpt -name ROOTCRS_FIRSTNODE -state START -nodelist rdb01d,rdb02d -transferfile'
2025/07/19 11:00:09 CLSRSC-175: Failed to write the checkpoint 'ROOTCRS_FIRSTNODE' with status 'START' (error code 0)
2025/07/19 11:00:11 CLSRSC-729: Checking whether CRS entities are ready for upgrade, cluster upgrade will not be attempted now. This operation may take a few
minutes.
2025/07/19 11:02:47 CLSRSC-693: CRS entities validation completed successfully.
--> 위와 같은 에러가 발생한다고 함

 

--아래와 같은 조치를 취해줌

 

--1번 노드

[root@rdb01d][/root]$ chmod 777 /u01/app/oracle/crsdata/@global/crsconfig/index.xml

 

[root@rdb01d][/root]$ echo $ORACLE_BASE
/u01/app/oracle

[root@rdb01d][/root]$ chown -R grid:oinstall $ORACLE_BASE/crsdata

 

--2번 노드

[root@rdb02d][/root]$ chmod 777 /u01/app/oracle/crsdata/@global/crsconfig/index.xml

 

[root@rdb02d][/root]$ echo $ORACLE_BASE
/u01/app/oracle
[root@rdb02d][/root]$ chown -R grid:oinstall $ORACLE_BASE/crsdata

--조치를 취한 후 다시 시도해봄
[root@rdb01d][/root]$ /u01/app/19c/grid/rootupgrade.sh
...생략
2025/07/20 13:39:04 CLSRSC-729: Checking whether CRS entities are ready for upgrade, cluster upgrade will not be attempted now. This operation may take a few minutes.
2025/07/20 13:41:02 CLSRSC-693: CRS entities validation completed successfully.

--> 성공함

 

-- 이제 실제 업그레이드를 수행할 것임
[+ASM1:grid@rdb01d][/home/grid]$ crsctl query crs activeversion -f
Oracle Clusterware active version on the cluster is [12.2.0.1.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [3975995681].


Check the owner of the file $GRID_HOME/crs/config/rootconfig.sh after thrDry Run Upgrade. If it is owned by root , then change it to oracle:oinstall before running the actual upgrade.

--> 실제 업그레이드 수행 전 rootconfig.sh 의 파일 권한을 확인해 볼것

--1번 노드

[+ASM1:grid@rdb01d][/home/grid]$ ls -l /u01/app/19c/grid/crs/config/rootconfig.sh
-rwxr-x---. 1 grid oinstall 6245 Jul 19 10:51 /u01/app/19c/grid/crs/config/rootconfig.sh

--2번 노드

[+ASM2:grid@rdb02d][/home/grid]$ ls -l /u01/app/19c/grid/crs/config/rootconfig.sh
-rwxr-x---. 1 grid oinstall 6245 Jul 19 10:57 /u01/app/19c/grid/crs/config/rootconfig.sh

--실제 업그레이드 전 12cR2의 mgmtdb를 제거하고 수행할 것임

[+ASM1:grid@rdb01d][/home/grid]$ dbca -silent -deleteDatabase -sourceDB -MGMTDB
[+ASM1:grid@rdb01d][/home/grid]$ srvctl stop mgmtlsnr
[+ASM1:grid@rdb01d][/home/grid]$ srvctl remove mgmtlsnr

[+ASM1:grid@rdb01d][/home/grid]$ crsctl stop res ora.crf -init -f
CRS-2673: Attempting to stop 'ora.crf' on 'rdb01d'
CRS-2677: Stop of 'ora.crf' on 'rdb01d' succeeded

[+ASM1:grid@rdb01d][/home/grid]$ crsctl stat res ora.crf -init
NAME=ora.crf
TYPE=ora.crf.type
TARGET=OFFLINE
STATE=OFFLINE

[root@rdb01d][/root]$ crsctl modify res ora.crf -attr "ENABLED=0" -unsupported -init

 

[+ASM1:grid@rdb01d][/home/grid]$ unset ORACLE_BASE
[+ASM1:grid@rdb01d][/home/grid]$ unset ORACLE_HOME
[+ASM1:grid@rdb01d][/home/grid]$ unset ORACLE_SID

--> 실제 업그레이드 작업 수행
--> 반드시 확인할 것 실제 업그레이드 전 노드 2번에서도 MGMT Disk Group이 온라인 상태여야함 (업그레이드 과정에서 2번 노드가 mgmt disk group을 볼수도 있음)

[:grid@rdb01d][/home/grid]$ cat /home/grid/grid_19c_new.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=UPGRADE
ORACLE_BASE=/u01/app/oracle
oracle.install.crs.config.scanType=LOCAL_SCAN
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.clusterName=drdb2
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS
oracle.install.crs.config.clusterNodes=rdb02d:,rdb01d:
oracle.install.crs.configureGIMR=false
oracle.install.asm.configureGIMRDataDG=false
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.useIPMI=false
oracle.install.asm.diskGroup.name=MGMT
oracle.install.asm.diskGroup.AUSize=0
oracle.install.asm.gimrDG.AUSize=1
oracle.install.asm.configureAFD=false
oracle.install.crs.configureRHPS=false
oracle.install.crs.config.ignoreDownNodes=false
oracle.install.config.managementOption=NONE
oracle.install.config.omsPort=0
oracle.install.crs.rootconfig.executeRootScript=false

 

[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/gridSetup.sh -silent -ignorePrereqFailure -responseFile /home/grid/grid_19c_new.rsp
Launching Oracle Grid Infrastructure Setup Wizard...

[WARNING] [INS-13013] Target environment does not meet some mandatory requirements.
   CAUSE: Some of the mandatory prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/GridSetupActions2025-07-20_01-41-33PM/gridSetupActions2025-07-20_01-41-33PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/GridSetupActions2025-07-20_01-41-33PM/gridSetupActions2025-07-20_01-41-33PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u01/app/19c/grid/install/response/grid_2025-07-20_01-41-33PM.rsp


As a root user, execute the following script(s):
        1. /u01/app/19c/grid/rootupgrade.sh

Execute /u01/app/19c/grid/rootupgrade.sh on the following nodes:
[rdb02d, rdb01d]

 

Run the script on the local node first. After successful completion, you can start the script in parallel on all other nodes, except a node you designate as the last node. When all the nodes except the last node are done successfully, run the script on the last node.
--> 첫번째 노드가 성공하면 마지막 노드를 뺀 나머지 노드는 동시에 실행가능
--> 첫번째 노드실행, 마지막 노드를 뺀 나머지 노드 실행, 마지막 노드실행으로 하라는 뜻임


Successfully Setup Software with warning(s).
As install user, execute the following command to complete the configuration.
        /u01/app/19c/grid/gridSetup.sh -executeConfigTools -responseFile /home/grid/grid_19c_new.rsp [-silent]

[root@rdb01d][/root]$ /u01/app/19c/grid/rootupgrade.sh
--> 1번 노드부터 시작 (해당 작업 중 1번 노드는 내려감, 2번노드는 계속 사용가능)
Check /u01/app/19c/grid/install/root_rdb01d_2025-07-20_02-31-30-927236690.log for the output of root script

 

[root@rdb01d][/root]$ tail -f /u01/app/19c/grid/install/root_rdb01d_2025-07-20_02-31-30-927236690.log
 Any attempt to downgrade the cluster after this point will require a complete cluster outage to restore the OCR.
2025/07/20 02:35:25 CLSRSC-541:
 To downgrade the cluster:
 1. All nodes that have been upgraded must be downgraded.
2025/07/20 02:35:25 CLSRSC-542:
 2. Before downgrading the last node, the Grid Infrastructure stack on all other cluster nodes must be down.
2025/07/20 02:35:32 CLSRSC-465: Retrieval of the cluster configuration data has successfully completed.
2025/07/20 02:35:33 CLSRSC-595: Executing upgrade step 4 of 18: 'GenSiteGUIDs'.
2025/07/20 02:35:33 CLSRSC-595: Executing upgrade step 5 of 18: 'UpgPrechecks'.
2025/07/20 02:35:38 CLSRSC-363: User ignored prerequisites during installation
2025/07/20 02:35:52 CLSRSC-595: Executing upgrade step 6 of 18: 'SetupOSD'.
Redirecting to /bin/systemctl restart rsyslog.service
2025/07/20 02:35:54 CLSRSC-595: Executing upgrade step 7 of 18: 'PreUpgrade'.
CLSCH-3610 : An unexpected error occurred in Cluster Health Advisor control utility.

2025/07/20 02:36:04 CLSRSC-180: An error occurred while executing the command '/u01/app/12c/grid/bin/chactl query model'
Died at /u01/app/19c/grid/crs/install/orachm.pm line 1109.

--> 위의 에러 떨어지면서 실패함

--> cha를 중지 및 삭제함

[root@rdb01d][/root]$ srvctl stop cha
[root@rdb01d][/root]$ srvctl remove cha

 

-- 다시 시도함
[root@rdb01d][/root]$ /u01/app/19c/grid/rootupgrade.sh
Check /u01/app/19c/grid/install/root_rdb01d_2025-07-20_02-37-17-811209922.log for the output of root script

 

[+ASM1:grid@rdb01d][/home/grid]$ tail -f /u01/app/19c/grid/install/root_rdb01d_2025-07-20_14-13-34-709863731.log
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/oracle/crsdata/rdb01d/crsconfig/crsupgrade_rdb01d_2025-07-20_02-13-35PM.log
2025/07/20 14:13:39 CLSRSC-595: Executing upgrade step 1 of 18: 'UpgradeTFA'.
2025/07/20 14:13:39 CLSRSC-4015: Performing install or upgrade action for Oracle Trace File Analyzer (TFA) Collector.
2025/07/20 14:13:39 CLSRSC-4012: Shutting down Oracle Trace File Analyzer (TFA) Collector.
2025/07/20 14:13:52 CLSRSC-4013: Successfully shut down Oracle Trace File Analyzer (TFA) Collector.
2025/07/20 14:13:52 CLSRSC-595: Executing upgrade step 2 of 18: 'ValidateEnv'.
2025/07/20 14:13:52 CLSRSC-595: Executing upgrade step 3 of 18: 'GetOldConfig'.
2025/07/20 14:13:52 CLSRSC-692: Checking whether CRS entities are ready for upgrade. This operation may take a few minutes.
2025/07/20 14:13:53 CLSRSC-693: CRS entities validation completed successfully.
2025/07/20 14:13:53 CLSRSC-464: Starting retrieval of the cluster configuration data
CRS-4672: Successfully backed up the Voting File for Cluster Synchronization Service.
2025/07/20 14:14:05 CLSRSC-515: Starting OCR manual backup.
2025/07/20 14:14:16 CLSRSC-4003: Successfully patched Oracle Trace File Analyzer (TFA) Collector.
2025/07/20 14:14:22 CLSRSC-516: OCR manual backup successful.
2025/07/20 14:14:25 CLSRSC-486:
 At this stage of upgrade, the OCR has changed.
 Any attempt to downgrade the cluster after this point will require a complete cluster outage to restore the OCR.
2025/07/20 14:14:25 CLSRSC-541:
 To downgrade the cluster:
 1. All nodes that have been upgraded must be downgraded.
2025/07/20 14:14:25 CLSRSC-542:
 2. Before downgrading the last node, the Grid Infrastructure stack on all other cluster nodes must be down.
2025/07/20 14:14:31 CLSRSC-465: Retrieval of the cluster configuration data has successfully completed.
2025/07/20 14:14:31 CLSRSC-595: Executing upgrade step 4 of 18: 'GenSiteGUIDs'.
2025/07/20 14:14:31 CLSRSC-595: Executing upgrade step 5 of 18: 'UpgPrechecks'.
2025/07/20 14:14:33 CLSRSC-363: User ignored prerequisites during installation
2025/07/20 14:14:48 CLSRSC-595: Executing upgrade step 6 of 18: 'SetupOSD'.
Redirecting to /bin/systemctl restart rsyslog.service
2025/07/20 14:14:48 CLSRSC-595: Executing upgrade step 7 of 18: 'PreUpgrade'.
2025/07/20 14:15:55 CLSRSC-468: Setting Oracle Clusterware and ASM to rolling migration mode
2025/07/20 14:15:55 CLSRSC-482: Running command: '/u01/app/12c/grid/bin/crsctl start rollingupgrade 19.0.0.0.0'
CRS-1131: The cluster was successfully set to rolling upgrade mode.
2025/07/20 14:16:01 CLSRSC-482: Running command: '/u01/app/19c/grid/bin/asmca -silent -upgradeNodeASM -nonRolling false -oldCRSHome /u01/app/12c/grid -oldCRSVersion 12.2.0.1.0 -firstNode true -startRolling false '

ASM configuration upgraded in local node successfully.

2025/07/20 14:16:04 CLSRSC-469: Successfully set Oracle Clusterware and ASM to rolling migration mode
2025/07/20 14:16:09 CLSRSC-466: Starting shutdown of the current Oracle Grid Infrastructure stack
2025/07/20 14:16:58 CLSRSC-467: Shutdown of the current Oracle Grid Infrastructure stack has successfully completed.
2025/07/20 14:16:59 CLSRSC-595: Executing upgrade step 8 of 18: 'CheckCRSConfig'.
2025/07/20 14:16:59 CLSRSC-595: Executing upgrade step 9 of 18: 'UpgradeOLR'.
2025/07/20 14:17:09 CLSRSC-595: Executing upgrade step 10 of 18: 'ConfigCHMOS'.

2025/07/20 14:17:41 CLSRSC-595: Executing upgrade step 11 of 18: 'UpgradeAFD'.
2025/07/20 14:17:48 CLSRSC-595: Executing upgrade step 12 of 18: 'createOHASD'.
2025/07/20 14:17:52 CLSRSC-595: Executing upgrade step 13 of 18: 'ConfigOHASD'.
2025/07/20 14:17:52 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.service'
2025/07/20 14:18:23 CLSRSC-595: Executing upgrade step 14 of 18: 'InstallACFS'.
2025/07/20 14:18:39 CLSRSC-595: Executing upgrade step 15 of 18: 'InstallKA'.
2025/07/20 14:18:43 CLSRSC-595: Executing upgrade step 16 of 18: 'UpgradeCluster'.
clscfg: EXISTING configuration version 5 detected.
Successfully taken the backup of node specific configuration in OCR.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
2025/07/20 14:21:21 CLSRSC-595: Executing upgrade step 17 of 18: 'UpgradeNode'.
2025/07/20 14:21:25 CLSRSC-474: Initiating upgrade of resource types
2025/07/20 14:22:47 CLSRSC-475: Upgrade of resource types successfully initiated.
2025/07/20 14:22:59 CLSRSC-595: Executing upgrade step 18 of 18: 'PostUpgrade'.
2025/07/20 14:23:04 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded

--> 1번 노드의 grid 업그레이드 성공함!


--> Oracle 인스턴스가 UNKNOWN인 상황
ora.drdb.db
      1        ONLINE  UNKNOWN      rdb01d                   STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE

 

우선 /u01/app/oracle/crsdata/rdb01d/ --> 디렉토리의 소유자가 grid:oinstall이고 권한이 775인지 확인
[root@rdb01d][/root]$ ls -l /u01/app/oracle/crsdata | grep rdb01d
drwxrwxr-x. 26 grid oinstall 4096 Jul 20 02:41 rdb01d

--> 잘되어 있음


--아래의 파일의 소유자 및 권한을 바꿔줌
[root@rdb01d][/root]$ chown oracle:oinstall /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracleOUT.trc /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracle.pid
[root@rdb01d][/root]$ chmod 664 /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracleOUT.trc /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracle.pid
[root@rdb01d][/root]$ ls -l /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracleOUT.trc /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracle.pid
-rw-rw-r--. 1 oracle oinstall 354985 Jul 19 12:27 /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracleOUT.trc
-rw-rw-r--. 1 oracle oinstall      5 Jul 19 12:27 /u01/app/oracle/crsdata/rdb01d/output/crsd_oraagent_oracle.pid

 

[DRDB1:oracle@rdb01d][/u01/app/oracle/diag/rdbms/drdb/DRDB1/trace]$ ss

SQL*Plus: Release 12.2.0.1.0 Production on Sun Jul 20 02:58:28 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to an idle instance.

[2025-07-20 02:58:29][rdb01d]<SYS@DRDB1> startup

ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
--> 인식하게됨                

 

--2번 노드도 grid 업그레이드 수행
[root@rdb02d][/root]$ /u01/app/19c/grid/rootupgrade.sh
Check /u01/app/19c/grid/install/root_rdb02d_2025-07-20_14-23-35-866885104.log for the output of root script


[root@rdb02d][/var/tmp/.oracle]$ tail -f /u01/app/19c/grid/install/root_rdb02d_2025-07-20_14-23-35-866885104.log
    ORACLE_HOME=  /u01/app/19c/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/oracle/crsdata/rdb02d/crsconfig/crsupgrade_rdb02d_2025-07-20_02-23-55PM.log
2025/07/20 14:24:04 CLSRSC-595: Executing upgrade step 1 of 18: 'UpgradeTFA'.
2025/07/20 14:24:04 CLSRSC-4015: Performing install or upgrade action for Oracle Trace File Analyzer (TFA) Collector.
2025/07/20 14:24:04 CLSRSC-4012: Shutting down Oracle Trace File Analyzer (TFA) Collector.

This version of AHF is older than 365 days. Please upgrade AHF using ahfctl upgrade
2025/07/20 14:24:21 CLSRSC-4013: Successfully shut down Oracle Trace File Analyzer (TFA) Collector.
2025/07/20 14:24:21 CLSRSC-595: Executing upgrade step 2 of 18: 'ValidateEnv'.
2025/07/20 14:24:21 CLSRSC-595: Executing upgrade step 3 of 18: 'GetOldConfig'.
2025/07/20 14:24:23 CLSRSC-464: Starting retrieval of the cluster configuration data
2025/07/20 14:24:31 CLSRSC-465: Retrieval of the cluster configuration data has successfully completed.
2025/07/20 14:24:31 CLSRSC-595: Executing upgrade step 4 of 18: 'GenSiteGUIDs'.
2025/07/20 14:24:31 CLSRSC-595: Executing upgrade step 5 of 18: 'UpgPrechecks'.
2025/07/20 14:24:32 CLSRSC-363: User ignored prerequisites during installation
2025/07/20 14:24:33 CLSRSC-595: Executing upgrade step 6 of 18: 'SetupOSD'.
Redirecting to /bin/systemctl restart rsyslog.service
2025/07/20 14:24:33 CLSRSC-595: Executing upgrade step 7 of 18: 'PreUpgrade'.

ASM configuration upgraded in local node successfully.

2025/07/20 14:24:43 CLSRSC-466: Starting shutdown of the current Oracle Grid Infrastructure stack
2025/07/20 14:25:46 CLSRSC-467: Shutdown of the current Oracle Grid Infrastructure stack has successfully completed.
2025/07/20 14:25:49 CLSRSC-595: Executing upgrade step 8 of 18: 'CheckCRSConfig'.
2025/07/20 14:25:50 CLSRSC-595: Executing upgrade step 9 of 18: 'UpgradeOLR'.
2025/07/20 14:26:08 CLSRSC-595: Executing upgrade step 10 of 18: 'ConfigCHMOS'.
2025/07/20 14:26:08 CLSRSC-595: Executing upgrade step 11 of 18: 'UpgradeAFD'.
2025/07/20 14:26:12 CLSRSC-595: Executing upgrade step 12 of 18: 'createOHASD'.
2025/07/20 14:26:13 CLSRSC-595: Executing upgrade step 13 of 18: 'ConfigOHASD'.
2025/07/20 14:26:13 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.service'
2025/07/20 14:26:39 CLSRSC-4003: Successfully patched Oracle Trace File Analyzer (TFA) Collector.
2025/07/20 14:26:39 CLSRSC-595: Executing upgrade step 14 of 18: 'InstallACFS'.
2025/07/20 14:26:46 CLSRSC-595: Executing upgrade step 15 of 18: 'InstallKA'.
2025/07/20 14:26:47 CLSRSC-595: Executing upgrade step 16 of 18: 'UpgradeCluster'.
2025/07/20 14:28:59 CLSRSC-343: Successfully started Oracle Clusterware stack
clscfg: EXISTING configuration version 19 detected.
Successfully taken the backup of node specific configuration in OCR.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
2025/07/20 14:29:17 CLSRSC-595: Executing upgrade step 17 of 18: 'UpgradeNode'.
Start upgrade invoked..
2025/07/20 14:29:26 CLSRSC-478: Setting Oracle Clusterware active version on the last node to be upgraded
2025/07/20 14:29:26 CLSRSC-482: Running command: '/u01/app/19c/grid/bin/crsctl set crs activeversion'
Started to upgrade the active version of Oracle Clusterware. This operation may take a few minutes.
Started to upgrade CSS.
CSS was successfully upgraded.
Started to upgrade Oracle ASM.
Started to upgrade CRS.
CRS was successfully upgraded.
Started to upgrade Oracle ACFS.
Oracle ACFS was successfully upgraded.
Successfully upgraded the active version of Oracle Clusterware.
Oracle Clusterware active version was successfully set to 19.0.0.0.0.
2025/07/20 14:30:40 CLSRSC-479: Successfully set Oracle Clusterware active version
2025/07/20 14:30:41 CLSRSC-476: Finishing upgrade of resource types
2025/07/20 14:30:53 CLSRSC-477: Successfully completed upgrade of resource types
2025/07/20 14:31:20 CLSRSC-595: Executing upgrade step 18 of 18: 'PostUpgrade'.
Successfully updated XAG resources.
2025/07/20 14:31:53 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded

 

-- 2번 노드의 오라클 인스턴스가 UNKNOWN 인 상황

ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  UNKNOWN      rdb02d                   STABLE

 

우선 /u01/app/oracle/crsdata/rdb02d/ --> 디렉토리의 소유자가 grid:oinstall이고 권한이 775 인지 확인
[root@rdb02d][/root]$ ls -l /u01/app/oracle/crsdata | grep rdb02d
drwxrwxr-x. 26 grid oinstall 4096 Jul 20 03:02 rdb02d

--> 잘되어 있음

 

--아래의 파일의 소유자 및 권한을 바꿔줌
[root@rdb02d][/root]$ ls -l /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracleOUT.trc
-rw-r--r--. 1 grid oinstall 195423 Jul 18 22:18 /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracleOUT.trc

[root@rdb02d][/root]$ ls -l /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracle.pid
-rw-r--r--. 1 grid oinstall 5 Jul 18 22:18 /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracle.pid

 

[root@rdb02d][/root]$ chown oracle:oinstall /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracleOUT.trc /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracle.pid
[root@rdb02d][/root]$ chmod 664 /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracleOUT.trc /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracle.pid

[root@rdb02d][/root]$ ls -l /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracleOUT.trc /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracle.pid
-rw-rw-r--. 1 oracle oinstall 195423 Jul 18 22:18 /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracleOUT.trc
-rw-rw-r--. 1 oracle oinstall      5 Jul 18 22:18 /u01/app/oracle/crsdata/rdb02d/output/crsd_oraagent_oracle.pid

--2번 노드를 startup 해줌


[DRDB2:oracle@rdb02d][/home/oracle]$ ss

SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 19 12:52:56 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to an idle instance.

[2025-07-19 12:52:57][rdb02d]<SYS@DRDB2> startup
ORACLE instance started.

Total System Global Area 5033164800 bytes
Fixed Size                  8631048 bytes
Variable Size            1107299576 bytes
Database Buffers         3909091328 bytes
Redo Buffers                8142848 bytes
Database mounted.
Database opened.

 

[2025-07-19 12:52:57][rdb02d]<SYS@DRDB2> quit

ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
--> 인식하기 시작함

 

--1번 노드에서 아래의 작업 수행
[+ASM1:grid@rdb01d][/home/grid]$ unset ORACLE_BASE
[+ASM1:grid@rdb01d][/home/grid]$ unset ORACLE_HOME
[+ASM1:grid@rdb01d][/home/grid]$ unset ORACLE_SID

[+ASM1:grid@rdb01d][/home/grid]$ srvctl stop database -db drdb
--> 반드시 내릴 필요는 없지만 사양 문제로 디비 인스턴스는 내리고 시도함

 

[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/gridSetup.sh -executeConfigTools -responseFile /home/grid/grid_19c_new.rsp -silent
Launching Oracle Grid Infrastructure Setup Wizard...

You can find the logs of this session at:
/u01/app/oraInventory/logs/GridSetupActions2025-07-21_02-45-48PM

You can find the log of this install session at:
 /u01/app/oraInventory/logs/UpdateNodeList2025-07-21_02-45-48PM.log
You can find the log of this install session at:
 /u01/app/oraInventory/logs/UpdateNodeList2025-07-21_02-45-48PM.log
Configuration failed.
[WARNING] [INS-43080] Some of the configuration assistants failed, were cancelled or skipped.
   ACTION: Refer to the logs or contact Oracle Support Services.
[:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/gridSetup.sh -executeConfigTools -responseFile /
Launching Oracle Grid Infrastructure Setup Wizard...

You can find the logs of this session at:
/u01/app/oraInventory/logs/GridSetupActions2025-07-21_02-58-05PM


[+ASM1:grid@rdb01d][/u01/app/oracle/diag/rdbms/_mgmtdb/-MGMTDB/trace]$ tail -f /u01/app/oracle/diag/rdbms/_mgmtdb/-MGMTDB/trace/alert_-MGMTDB.log

--> mgmtdb 관련 작업하는지 확인하려면 해당 로그를 모니터링하면됨 (이미 지우고 업그레이드 했기 때문에 아무 로그도 안남을 것임)

 

[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/19c/grid/bin/crsctl query crs activeversion -f
Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [2119256259].


3-7. grid 업그레이드 후 후속조치

 

[+ASM1:grid@rdb01d][/u01/app/oraInventory/ContentsXML]$ cat /u01/app/oraInventory/ContentsXML/inventory.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2025, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
   <SAVED_WITH>12.2.0.7.0</SAVED_WITH>
   <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraDB12Home1" LOC="/u01/app/oracle/product/12c/db_1" TYPE="O" IDX="2"/>
<HOME NAME="OraGI12Home1" LOC="/u01/app/12c/grid" TYPE="O" IDX="3"/>
<HOME NAME="OraGI19Home1" LOC="/u01/app/19c/grid" TYPE="O" IDX="4" CRS="true"/>
<HOME NAME="OUIPlaceHolderDummyHome1" LOC="/u01/app/oracle/OraPlaceHolderDummyHome_1" TYPE="O" IDX="1" REMOVED="T"/>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>

<ONEOFF_LIST/>

 

[+ASM1:grid@rdb01d][/u01/app/oraInventory/ContentsXML]$ cat /u01/app/oraInventory/ContentsXML/oui-patch.xml
<?xml version='1.0' encoding='UTF-8'?>
<!-- Copyright (c) 2025 Oracle Corporation. All Rights Reserved.
 Do not modify the contents of this file by hand.
-->

 

[+ASM1:grid@rdb01d][/u01/app/oraInventory/ContentsXML]$ cat /u01/app/oraInventory/ContentsXML/libs.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2025, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<LIB_LIST>
<QUERY_LIST>
</QUERY_LIST>
<DIALOG_LIST>
</DIALOG_LIST>
<ACTION_LIST>
</ACTION_LIST>
</LIB_LIST>

 

--1번 노드 12cr2 grid home detachhome 해줌
[+ASM1:grid@rdb01d][/home/grid]$ /u01/app/12c/grid/oui/bin/runInstaller -detachHome -silent ORACLE_HOME=/u01/app/12c/grid
Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB.   Actual 16383 MB    Passed
The inventory pointer is located at /etc/oraInst.loc
'DetachHome' was successful.


[+ASM1:grid@rdb01d][/u01/app/oraInventory/ContentsXML]$ cat /u01/app/oraInventory/ContentsXML/inventory.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2025, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
   <SAVED_WITH>12.2.0.1.4</SAVED_WITH>
   <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraDB12Home1" LOC="/u01/app/oracle/product/12c/db_1" TYPE="O" IDX="2"/>
<HOME NAME="OraGI19Home1" LOC="/u01/app/19c/grid" TYPE="O" IDX="4" CRS="true"/>
<HOME NAME="OUIPlaceHolderDummyHome1" LOC="/u01/app/oracle/OraPlaceHolderDummyHome_1" TYPE="O" IDX="1" REMOVED="T"/>
<HOME NAME="OraGI12Home1" LOC="/u01/app/12c/grid" TYPE="O" IDX="3" REMOVED="T"/>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>

--> 12cr2 grid가 removed된 것을 알 수 있음


[+ASM1:grid@rdb01d][/u01/app/oraInventory/ContentsXML]$ cat /u01/app/oraInventory/ContentsXML/oui-patch.xml
<?xml version='1.0' encoding='UTF-8'?>
<!-- Copyright (c) 2025 Oracle Corporation. All Rights Reserved.
 Do not modify the contents of this file by hand.
-->
<ONEOFF_LIST/>


<ONEOFF_LIST/>[+ASM1:grid@rdb01d][/u01/app/oraInventory/ContentsXML]$ cat /u01/app/oraInventory/ContentsXML/libs.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2025, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<LIB_LIST>
<QUERY_LIST>
</QUERY_LIST>
<DIALOG_LIST>
</DIALOG_LIST>
<ACTION_LIST>
</ACTION_LIST>
</LIB_LIST>


[+ASM1:grid@rdb01d][/u01/app/oraInventory/ContentsXML]$ cat /u01/app/oraInventory/ContentsXML/oui-patch.xml
<?xml version='1.0' encoding='UTF-8'?>
<!-- Copyright (c) 2025 Oracle Corporation. All Rights Reserved.
 Do not modify the contents of this file by hand.
-->

 

--> 2번 노드도 detachhome 해줌

[+ASM2:grid@rdb02d][/home/grid]$ /u01/app/12c/grid/oui/bin/runInstaller -detachHome -silent ORACLE_HOME=/u01/app/12c/grid
Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB.   Actual 16383 MB    Passed
The inventory pointer is located at /etc/oraInst.loc
'DetachHome' was successful.

 

--여기서 .bash_profile 변경해줌

 

--1번 노드
[root@rdb01d][/root]$ vi ~grid/.bash_profile
[root@rdb01d][/root]$ cat ~grid/.bash_profile | grep -i GRID_HOME
#export GRID_HOME=/u01/app/12c/grid
export GRID_HOME=/u01/app/19c/grid
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH

 

[root@rdb01d][/root]$ vi ~oracle/.bash_profile
[root@rdb01d][/root]$ cat ~oracle/.bash_profile | grep -i GRID_HOME
#export GRID_HOME=/u01/app/12c/grid
export GRID_HOME=/u01/app/19c/grid
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH

 

[root@rdb01d][/root]$ vi ~root/.bash_profile
[root@rdb01d][/root]$ cat ~root/.bash_profile | grep -i GRID_HOME
#export GRID_HOME=/u01/app/12c/grid
export GRID_HOME=/u01/app/19c/grid
export PATH=$GRID_HOME/bin:$BASE_PATH

 

--2번 노드
[root@rdb02d][/root]$ vi ~grid/.bash_profile
[root@rdb02d][/root]$ cat ~grid/.bash_profile | grep -i GRID_HOME
#export GRID_HOME=/u01/app/12c/grid
export GRID_HOME=/u01/app/19c/grid
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH

 

[root@rdb02d][/root]$ vi ~oracle/.bash_profile
[root@rdb02d][/root]$ cat ~oracle/.bash_profile | grep -i GRID_HOME
#export GRID_HOME=/u01/app/12c/grid
export GRID_HOME=/u01/app/19c/grid
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH

 

[root@rdb02d][/root]$ vi ~root/.bash_profile
[root@rdb02d][/root]$ cat ~root/.bash_profile | grep -i GRID_HOME
#export GRID_HOME=/u01/app/12c/grid
export GRID_HOME=/u01/app/19c/grid
export PATH=$GRID_HOME/bin:$BASE_PATH


--grid 업그레이드 후 버전 확인 (grid os user로 새로운 세션으로 접속)

[+ASM1:grid@rdb01d][/home/grid]$ which crsctl
/u01/app/19c/grid/bin/crsctl

 

[+ASM1:grid@rdb01d][/home/grid]$ crsctl query crs softwareversion -all
Oracle Clusterware version on node [rdb01d] is [19.0.0.0.0]
Oracle Clusterware version on node [rdb02d] is [19.0.0.0.0]

 

[+ASM1:grid@rdb01d][/home/grid]$ crsctl query crs activeversion -f
Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [2119256259].

 

[+ASM1:grid@rdb01d][/home/grid]$ crsctl query crs releasepatch
Oracle Clusterware release patch level is [2119256259] and the complete list of patches [36758186 37642901 37643161 37654975 37762426 ] have been applied on the local node. The release patch string is [19.27.0.0.0].

 

[+ASM1:grid@rdb01d][/home/grid]$ alias sa
alias sa='rlwrap sqlplus "/as sysasm"'


[+ASM1:grid@rdb01d][/home/grid]$ sa

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 21 23:26:45 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

SQL> select banner_full from v$version;

BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

 

--oracle os user로 접속한 후 database start
[DRDB1:oracle@rdb01d][/home/oracle]$ which srvctl
/u01/app/oracle/product/12c/db_1/bin/srvctl

[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl start database -db drdb
ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
--> 현재 19c grid 엔진 위에서 12cR2 DB가 구동되고 있는 상태임

 

[+ASM1:grid@rdb01d][/home/grid]$ grep 19c /etc/init.d/init.ohasd
ORA_CRS_HOME=/u01/app/19c/grid


[+ASM1:grid@rdb01d][/home/grid]$ ps -ef | grep grid | grep d.bin
root      2812     1  1 13:57 ?        00:06:13 /u01/app/19c/grid/bin/ohasd.bin reboot _ORA_BLOCKING_STACK_LOCALE=AMERICAN_AMERICA.AL32UTF8
root      2961     1  0 13:57 ?        00:03:01 /u01/app/19c/grid/bin/orarootagent.bin
grid      3137     1  0 13:57 ?        00:04:46 /u01/app/19c/grid/bin/oraagent.bin
grid      3159     1  0 13:57 ?        00:01:44 /u01/app/19c/grid/bin/mdnsd.bin
grid      3161     1  1 13:57 ?        00:10:42 /u01/app/19c/grid/bin/evmd.bin
grid      3227     1  0 13:57 ?        00:02:00 /u01/app/19c/grid/bin/gpnpd.bin
grid      3256  3161  0 13:57 ?        00:01:41 /u01/app/19c/grid/bin/evmlogger.bin -o /u01/app/19c/grid/log/[HOSTNAME]/evmd/evmlogger.info -l /u01/app/19c/grid/log/[HOSTNAME]/evmd/evmlogger.log
grid      3264     1  0 13:57 ?        00:05:12 /u01/app/19c/grid/bin/gipcd.bin
root      3388     1  1 13:58 ?        00:09:20 /u01/app/19c/grid/bin/cssdmonitor
root      3394     1  1 13:58 ?        00:08:10 /u01/app/19c/grid/bin/osysmond.bin
root      3429     1  1 13:58 ?        00:09:18 /u01/app/19c/grid/bin/cssdagent
grid      3486     1  4 13:58 ?        00:25:14 /u01/app/19c/grid/bin/ocssd.bin
grid      3673  1685  0 23:29 pts/1    00:00:00 grep --color=auto d.bin
root      4109     1  2 13:58 ?        00:16:03 /u01/app/19c/grid/bin/octssd.bin reboot
root      4635     1  2 13:58 ?        00:12:33 /u01/app/19c/grid/bin/crsd.bin reboot
root      4935     1  2 13:58 ?        00:11:57 /u01/app/19c/grid/bin/orarootagent.bin
oracle    5745     1  0 23:26 ?        00:00:01 /u01/app/19c/grid/bin/oraagent.bin
grid      6683     1  0 14:24 ?        00:00:01 /u01/app/19c/grid/bin/tnslsnr LISTENER_SCAN2 -no_crs_notify -inherit
grid      6690     1  0 14:24 ?        00:00:01 /u01/app/19c/grid/bin/tnslsnr LISTENER_SCAN3 -no_crs_notify -inherit
grid      6986     1  1 14:01 ?        00:10:04 /u01/app/19c/grid/bin/oraagent.bin
grid      7022     1  0 14:01 ?        00:00:16 /u01/app/19c/grid/bin/tnslsnr ASMNET1LSNR_ASM -no_crs_notify -inherit
grid      7069     1  0 14:01 ?        00:00:01 /u01/app/19c/grid/bin/tnslsnr LISTENER -no_crs_notify -inherit


4. Oracle 19c 엔진 설치 및 DB 업그레이드

 

4-1. DB 백업

--> DB 백업은 1번 노드에서만 수행

[DRDB1:oracle@rdb01d][/home/oracle]$ mkdir -pv /tmp/backup_before_upgrade/rman_full_backup/autobackup
mkdir: created directory ‘/tmp/backup_before_upgrade/rman_full_backup’
mkdir: created directory ‘/tmp/backup_before_upgrade/rman_full_backup/autobackup’


[DRDB1:oracle@rdb01d][/home/oracle]$ alias rt
alias rt='rman target /'

 

[DRDB1:oracle@rdb01d][/home/oracle]$ rt

Recovery Manager: Release 12.2.0.1.0 - Production on Tue Jul 22 20:53:03 2025

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

connected to target database: DRDB (DBID=1008397436)

run {
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/tmp/backup_before_upgrade/rman_full_backup/autobackup/%F';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/tmp/backup_before_upgrade/rman_full_backup/snapcf_CA.f';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS;
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES128';
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
}

 

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;
ALLOCATE CHANNEL c2 TYPE DISK;
ALLOCATE CHANNEL c3 TYPE DISK;

ALLOCATE CHANNEL c4 TYPE DISK;

crosscheck backupset;
crosscheck backup;
crosscheck copy;
crosscheck archivelog all;
sql 'alter system archive log current';
sql 'alter system checkpoint';
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '/tmp/backup_before_upgrade/rman_full_backup/full_%d_%T_%U.bkp';

delete noprompt obsolete;
delete noprompt expired backup;

RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
RELEASE CHANNEL c3;

RELEASE CHANNEL c4;
}

 

run {
backup archivelog all format '/tmp/backup_before_upgrade/rman_full_backup/%d_ARCHIVE_%T_%u_s%s_p%p' delete input;
}

RMAN> quit


[DRDB1:oracle@rdb01d][/home/oracle]$ ls -alR /tmp/backup_before_upgrade/rman_full_backup/
/tmp/backup_before_upgrade/rman_full_backup/:
total 733880
drwxr-xr-x. 3 oracle oinstall      4096 Jul 22 21:02 .
drwxr-xr-x. 3 oracle oinstall        30 Jul 22 20:52 ..
drwxr-xr-x. 2 oracle oinstall        70 Jul 22 21:02 autobackup
-rw-r-----. 1 oracle asmadmin 202496000 Jul 22 21:02 DRDB_ARCHIVE_20250722_a63v7t3m_s326_p1
-rw-r-----. 1 oracle asmadmin  14483456 Jul 22 21:01 full_DRDB_20250722_a13v7t0s_1_1.bkp
-rw-r-----. 1 oracle asmadmin 281247744 Jul 22 21:01 full_DRDB_20250722_a23v7t0t_1_1.bkp
-rw-r-----. 1 oracle asmadmin   4161536 Jul 22 21:01 full_DRDB_20250722_a33v7t0t_1_1.bkp
-rw-r-----. 1 oracle asmadmin 228302848 Jul 22 21:01 full_DRDB_20250722_a43v7t0u_1_1.bkp
-rw-r-----. 1 oracle asmadmin  20791296 Jul 22 21:02 snapcf_CA.f

/tmp/backup_before_upgrade/rman_full_backup/autobackup:
total 40804
drwxr-xr-x. 2 oracle oinstall       70 Jul 22 21:02 .
drwxr-xr-x. 3 oracle oinstall     4096 Jul 22 21:02 ..
-rw-r-----. 1 oracle asmadmin 20889600 Jul 22 21:01 c-1008397436-20250722-03
-rw-r-----. 1 oracle asmadmin 20889600 Jul 22 21:02 c-1008397436-20250722-04

 

4-2. Oracle 엔진 백업

 

[root@rdb01d][/root]$ echo $DB_HOME
/u01/app/oracle/product/12c/db_1

[root@rdb01d][/root]$ tar -cvzf /tmp/backup_before_upgrade/oracle_engine_backup.tar.gz $DB_HOME


4-3. db parameter file 백업

 

[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1]$ ss

SQL*Plus: Release 12.2.0.1.0 Production on Tue Jul 22 21:10:14 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

[2025-07-22:21:10:14][rdb01d]<SYS@DRDB1> create pfile='/tmp/backup_before_upgrade/pfile_DRDB.ora' from spfile;

File created.

Elapsed: 00:00:00.08

 

[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1]$ ls -l /tmp/backup_before_upgrade/pfile_DRDB.ora
-rw-r--r--. 1 oracle asmadmin 2407 Jul 22 21:10 /tmp/backup_before_upgrade/pfile_DRDB.ora


4-4. Oracle 19c 엔진 설치

 

--오라클 엔진 압축 해제
[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1]$ mkdir -pv /u01/app/oracle/product/19c/db_1
mkdir: created directory ‘/u01/app/oracle/product/19c’
mkdir: created directory ‘/u01/app/oracle/product/19c/db_1’

[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1]$ unzip /tmp/19.27/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/db_1


--opatch 설치

[DRDB1:oracle@rdb01d][/home/oracle]$ mv /u01/app/oracle/product/19c/db_1/OPatch /u01/app/oracle/product/19c/db_1/OPatch.bak.20250712
[DRDB1:oracle@rdb01d][/home/oracle]$ unzip /tmp/19.27/p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19c/db_1/

[DRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/19c/db_1/OPatch/opatch version
OPatch Version: 12.2.0.1.46

OPatch succeeded.

--오라클 19c 엔진 패치 적용

--> 19.27 RU Patch readme 파일 확인
Patch Number | Description                             | Applicable Homes
-------------|-----------------------------------------|--------------------------------------------------------------------------------------------------
37642901     | Database Release Update 19.27.0.0.250415| Only Oracle home for non-Oracle RAC setup. Both Oracle home and Grid home for Oracle RAC setup.
37654975     | OCW Release Update 19.27.0.0.250415     | Both Oracle home and Grid home.
37643161     | ACFS Release Update 19.27.0.0.250415    | Only Grid home.
37762426     | Tomcat Release Update 19.0.0.0.0        | Only Grid home.
36758186     | DBWLM Release Update 19.0.0.0.0         | Only Grid home.

 

[DRDB1:oracle@rdb01d][/home/oracle]$
/u01/app/oracle/product/19c/db_1/runInstaller -applyRU /tmp/19.27/37641958/37642901 \
-applyOneOffs /tmp/19.27/37641958/37654975
--> applyRU 자리에는 37642901(Database Release Update 19.27.0.0.250415)가 위치함
--> applyOneOffs 자리에는 37654975(OCW Release Update 19.27.0.0.250415)가 위치함

 

--> 패치가 완료되고 설치 GUI 화면이 뜬다면 아래의 절차로 Resonse File 생성할 수있음
Set up Software Only -> Next
Oracle Real Application Clusters database installation -> Next
노드 선택 후 -> Next
Enterprise Edtition -> Next
Oracle base : /u01/app/oracle -> Next
dba, oper, backupdba, dgdba, kmdba, racdba -> Next
Automatically run configuration scripts -> Next
verification Result 보고 이상없으면 -> Next
Save Reponse File -> /home/oracle/db_19c.rsp -> Save -> 그후 Cancel하고 나옴 (Submit하지 말것!)

--gui를 통해서 reponse 파일을 생성한다면 response file 생성 후
--아래의 명령으로 사용한 response 파일 생성

[DRDB1:oracle@rdb01d][/home/oracle]$ awk -F= 'NF && $1 !~ /^#/ && $2!=""' /home/oracle/db_19c.rsp > /home/oracle/db_19c_new.rsp
[DRDB1:oracle@rdb01d][/home/oracle]$ cat /home/oracle/db_19c_new.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.CLUSTER_NODES=rdb01d,rdb02d
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsPort=0
oracle.install.db.config.starterdb.enableRecovery=false

 

--> 아까 했지만 혹시 모르니 한번 더 해줌
[DRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/12c/db_1/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts "rdb01d rdb02d" -noPromptPassphrase -advanced


--> 설치가 제대로 될지 확인
[DRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/19c/db_1/runInstaller \
  -executePrereqs \
  -responseFile /home/oracle/db_19c_new.rsp \
  -silent

 

--19c oracle 엔진 설치
[DRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/19c/db_1/runInstaller -ignorePrereqFailure -waitforcompletion -silent \
     -responseFile /home/oracle/db_19c_new.rsp

Launching Oracle Database Setup Wizard...

[WARNING] [INS-13013] Target environment does not meet some mandatory requirements.
   CAUSE: Some of the mandatory prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2025-07-23_01-33-21PM/installActions2025-07-23_01-33-21PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/InstallActions2025-07-23_01-33-21PM/installActions2025-07-23_01-33-21PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u01/app/oracle/product/19c/db_1/install/response/db_2025-07-23_01-33-21PM.rsp

You can find the log of this install session at:
 /u01/app/oraInventory/logs/InstallActions2025-07-23_01-33-21PM/installActions2025-07-23_01-33-21PM.log

As a root user, execute the following script(s):
        1. /u01/app/oracle/product/19c/db_1/root.sh

Execute /u01/app/oracle/product/19c/db_1/root.sh on the following nodes:
[rdb01d, rdb02d]

Successfully Setup Software with warning(s).

 

--로그 모니터링
[DRDB1:oracle@rdb01d][/home/oracle]$ tail -f /u01/app/oraInventory/logs/InstallActions2025-07-23_01-33-21PM/installActions2025-07-23_01-33-21PM.log

 

--1번 노드에서 수행
[root@rdb01d][/root]$ /u01/app/oracle/product/19c/db_1/root.sh
Check /u01/app/oracle/product/19c/db_1/install/root_rdb01d_2025-07-23_17-20-47-184222530.log for the output of root script
[root@rdb01d][/root]$ cat /u01/app/oracle/product/19c/db_1/install/root_rdb01d_2025-07-23_17-20-47-184222530.log
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19c/db_1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

 

--2번 노드에서 수행
[root@rdb02d][/root]$ /u01/app/oracle/product/19c/db_1/root.sh
Check /u01/app/oracle/product/19c/db_1/install/root_rdb02d_2025-07-23_17-21-48-540836416.log for the output of root script

[root@rdb02d][/root]$ cat /u01/app/oracle/product/19c/db_1/install/root_rdb02d_2025-07-23_17-21-48-540836416.log
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19c/db_1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

 

4-5. Oracle DB를 19c로 업그레이드 전 사전 점검


4-5-1. Invalid Object 확인

[DRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[DRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 12.2.0.1.0 Production on Wed Jul 23 17:25:35 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

[2025-07-23:17:25:35][rdb01d]<SYS@DRDB1> SELECT COUNT(*) AS CNT FROM DBA_OBJECTS WHERE STATUS <> 'VALID';

       CNT
----------
         0

1 row selected.

Elapsed: 00:00:00.03

 

[2025-07-23:17:25:35][rdb01d]<SYS@DRDB1>

--INVALID 한 OBJECT가 있을 경우 아래의 SQL문을 활용할 것
SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('PACKAGE')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER PACKAGE'|| ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE BODY;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('PACKAGE BODY')
         AND STATUS = 'INVALID'
 )
UNION ALL
SELECT *
  FROM
     (
         SELECT OBJECT_NAME
              , STATUS
              , OBJECT_TYPE
              , LAST_DDL_TIME
              , 'ALTER PUBLIC ' ||  OBJECT_TYPE || ' ' || '"' ||  OBJECT_NAME || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
          WHERE 1=1
            AND OBJECT_TYPE IN ('SYNONYM') AND OWNER = 'PUBLIC'
            AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('TYPE')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER TYPE'  || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE BODY;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('TYPE BODY')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('VIEW')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('PROCEDURE')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('TRIGGER')
         AND STATUS = 'INVALID'
 )
 ORDER BY 3
 ;

 

----------------------------------컴파일 도중 아래와 같은 트러블 슈팅을 함 (START)----------------------------------
--> INVALID한 것 중 동일한 객체인데 VALID한 것이 존재하는 것을 확인
--> INVALID한 상태인데 동일 객체 기준 VALID 한것이 존재하지 않는다면 재컴파일 대상임
--> Duplicate Invalid Types That Won''t Compile (Doc ID 748109.1) 참고
SELECT A.OBJECT_ID
     , A.OWNER
     , A.OBJECT_NAME
     , A.OBJECT_TYPE
     , A.STATUS
  FROM DBA_OBJECTS A
WHERE 1=1
  AND A.STATUS IN ('INVALID')
  AND NOT EXISTS (SELECT 1
                    FROM DBA_OBJECTS K
                   WHERE K.OWNER = A.OWNER
                     AND K.OBJECT_TYPE = A.OBJECT_TYPE
                     AND K.OBJECT_NAME = A.OBJECT_NAME
      AND K.STATUS = 'VALID'
     )
;

 

--컴파일 중 문제 발생 시 아래와 같은 방식으로 진행
ALTER SYSTEM SET "_system_trig_enabled" = FALSE;
@$ORACLE_HOME/rdbms/admin/utlrp.sql
ALTER SYSTEM SET "_system_trig_enabled" = TRUE;

--그 외 아래와 같은 조치도 고려함
GRANT EXECUTE ON UTL_HTTP TO PUBLIC;
----------------------------------컴파일 도중 아래와 같은 트러블 슈팅을 함 (END)----------------------------------

 

4-5-2. gloin.sql 비활성화

--> glogin.sql 이 세팅되어 있는 경우 업그레이드 작업 중 문제가 발생하는 경우가 있으므로 비활성화 시키고 시작
[DRDB1:oracle@rdb01d][/home/oracle]$ mv /u01/app/oracle/product/12c/db_1/sqlplus/admin/glogin.sql /u01/app/oracle/product/12c/db_1/sqlplus/admin/glogin.sql.bak

 

4-5-3. preupgrade.jar 실행

 

[DRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/12c/db_1/jdk/bin/java -jar /u01/app/oracle/product/19c/db_1/rdbms/admin/preupgrade.jar TERMINAL TEXT

 

Report generated by Oracle Database Pre-Upgrade Information Tool Version
19.0.0.0.0 Build: 13 on 2025-07-23T17:29:10

Upgrade-To version: 19.0.0.0.0

=======================================
Status of the database prior to upgrade
=======================================
      Database Name:  DRDB
     Container Name:  DRDB
       Container ID:  0
            Version:  12.2.0.1.0
     DB Patch Level:  DATABASE JAN 2022 RELEASE UPDATE 12.2.0.1.220118
         Compatible:  12.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  26
  Database log mode:  ARCHIVELOG
           Readonly:  FALSE
            Edition:  EE

  Oracle Component                       Upgrade Action    Current Status
  ----------------                       --------------    --------------
  Oracle Server                          [to be upgraded]  VALID
  JServer JAVA Virtual Machine           [to be upgraded]  VALID
  Oracle XDK for Java                    [to be upgraded]  VALID
  Real Application Clusters              [to be upgraded]  VALID
  Oracle Workspace Manager               [to be upgraded]  VALID
  OLAP Analytic Workspace                [to be upgraded]  VALID
  Oracle Label Security                  [to be upgraded]  VALID
  Oracle Database Vault                  [to be upgraded]  VALID
  Oracle Text                            [to be upgraded]  VALID
  Oracle XML Database                    [to be upgraded]  VALID
  Oracle Java Packages                   [to be upgraded]  VALID
  Oracle Multimedia                      [to be upgraded]  VALID
  Oracle Spatial                         [to be upgraded]  VALID
  Oracle OLAP API                        [to be upgraded]  VALID

==============
BEFORE UPGRADE
==============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  1.  (AUTOFIXUP) Load the Unified Audit records from OS spillover audit files
      to database audit table using DBMS_AUDIT_MGMT.LOAD_UNIFIED_AUDIT_FILES
      api before upgrade.

      There are Unified Audit records present in the OS spillover audit files.

      Oracle Unified Audit records present in the OS spillover audit files must
      be loaded to the database audit table before database upgrade to ensure
      they can be read after upgrade. For more information, refer to
      "LOAD_UNIFIED_AUDIT_FILES Procedure" in Database PL/SQL Packages and
      Types Reference.

  2.  Review and remove any unnecessary HIDDEN/UNDERSCORE parameters.

      The database contains the following initialization parameters whose name
      begins with an underscore:

      _ipddb_enable

      Remove hidden parameters before database upgrade unless your application
      vendors and/or Oracle Support state differently.  Changes will need to be
      made in the pfile/spfile.

  3.  (AUTOFIXUP) Gather stale data dictionary statistics prior to database
      upgrade in off-peak time using:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Dictionary statistics do not exist or are stale (not up-to-date).

      Dictionary statistics help the Oracle optimizer find efficient SQL
      execution plans and are essential for proper upgrade timing. Oracle
      recommends gathering dictionary statistics in the last 24 hours before
      database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  INFORMATION ONLY
  ================
  4.  Here are ALL the components in this database registry:

      Component Current     Current     Original    Previous    Component
      CID       Version     Status      Version     Version     Schema
      --------- ----------- ----------- ----------- ----------- -----------
      APS       12.2.0.1.0  VALID                               SYS
      CATALOG   12.2.0.1.0  VALID                               SYS
      CATJAVA   12.2.0.1.0  VALID                               SYS
      CATPROC   12.2.0.1.0  VALID                               SYS
      CONTEXT   12.2.0.1.0  VALID                               CTXSYS
      DV        12.2.0.1.0  VALID                               DVSYS
      JAVAVM    12.2.0.1.0  VALID                               SYS
      OLS       12.2.0.1.0  VALID                               LBACSYS
      ORDIM     12.2.0.1.0  VALID                               ORDSYS
      OWM       12.2.0.1.0  VALID                               WMSYS
      RAC       12.2.0.1.0  VALID                               SYS
      SDO       12.2.0.1.0  VALID                               MDSYS
      XDB       12.2.0.1.0  VALID                               XDB
      XML       12.2.0.1.0  VALID                               SYS
      XOQ       12.2.0.1.0  VALID                               OLAPSYS

      Review the information before upgrading.

  5.  To help you keep track of your tablespace allocations, the following
      AUTOEXTEND tablespaces are expected to successfully EXTEND during the
      upgrade process.

                                                 Min Size
      Tablespace                        Size     For Upgrade
      ----------                     ----------  -----------
      SYSTEM                             860 MB       967 MB
      TEMP                                46 MB       150 MB
      UNDOTBS1                           185 MB       440 MB

      Minimum tablespace sizes for upgrade are estimates.

  6.  Check the Oracle Backup and Recovery User''s Guide for information on how
      to manage an RMAN recovery catalog schema.

      If you are using a version of the recovery catalog schema that is older
      than that required by the RMAN client version, then you must upgrade the
      catalog schema.

      It is good practice to have the catalog schema the same or higher version
      than the RMAN client version you are using.

  7.  Here is a count of invalid objects by Oracle-maintained users:

      Oracle-Maintained User Name                 Number of INVALID Objects
      ---------------------------                 -------------------------
      None                                        None

      Review the information before upgrading.

  8.  Here is a count of invalid objects by Application users:

      Application User Name                       Number of INVALID Objects
      ---------------------------                 -------------------------
      None                                        None

      Review the information before upgrading.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database DRDB
  which are identified above as BEFORE UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following

    SQL>@/u01/app/oracle/cfgtoollogs/DRDB/preupgrade/preupgrade_fixups.sql

=============
AFTER UPGRADE
=============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  9.  Upgrade the database time zone file using the DBMS_DST package.

      The database is using time zone file version 26 and the target 19 release
      ships with time zone file version 32.

      Oracle recommends upgrading to the desired (latest) version of the time
      zone file.  For more information, refer to "Upgrading the Time Zone File
      and Timestamp with Time Zone Data" in the 19 Oracle Database
      Globalization Support Guide.

  10. Recreate directory objects to remove any symbolic links from directory
      paths.  To identify paths that contain symbolic links before upgrading,
      use OS commands like UNIX file or WINDOWS dir.  After upgrading, run
      $ORACLE_HOME/rdbms/admin/utldirsymlink.sql to identify directory objects
      with symbolic links in the path.

      Found 5 user directory objects to be checked: DBMS_OPTIM_ADMINDIR,
      DBMS_OPTIM_LOGDIR, D_LINK_TNS_DRDB_STB, RMAN_TMP_DIR, TMP_DIR.

      Starting in Release 18c, symbolic links are not allowed in directory
      object paths used with BFILE data types, the UTL_FILE package, or
      external tables.

  11. (AUTOFIXUP) Gather dictionary statistics after the upgrade using the
      command:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Oracle recommends gathering dictionary statistics after upgrade.

      Dictionary statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans. After a database
      upgrade, statistics need to be re-gathered as there can now be tables
      that have significantly changed during the upgrade or new tables that do
      not have statistics gathered yet.

  12. Gather statistics on fixed objects after the upgrade and when there is a
      representative workload on the system using the command:

        EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

      This recommendation is given for all preupgrade runs.

      Fixed object statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans.  Those
      statistics are specific to the Oracle Database release that generates
      them, and can be stale upon database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database DRDB
  which are identified above as AFTER UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following

    SQL>@/u01/app/oracle/cfgtoollogs/DRDB/preupgrade/postupgrade_fixups.sql


==================
PREUPGRADE SUMMARY
==================
  /u01/app/oracle/cfgtoollogs/DRDB/preupgrade/preupgrade.log
  /u01/app/oracle/cfgtoollogs/DRDB/preupgrade/preupgrade_fixups.sql
  /u01/app/oracle/cfgtoollogs/DRDB/preupgrade/postupgrade_fixups.sql

Execute fixup scripts as indicated below:

Before upgrade:

Log into the database and execute the preupgrade fixups
@/u01/app/oracle/cfgtoollogs/DRDB/preupgrade/preupgrade_fixups.sql

After the upgrade:

Log into the database and execute the postupgrade fixups
@/u01/app/oracle/cfgtoollogs/DRDB/preupgrade/postupgrade_fixups.sql

Preupgrade complete: 2025-07-23T17:29:10

[DRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'
[DRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 12.2.0.1.0 Production on Wed Jul 23 17:33:55 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> @/u01/app/oracle/cfgtoollogs/DRDB/preupgrade/preupgrade_fixups.sql

Executing Oracle PRE-Upgrade Fixup Script

Auto-Generated by:       Oracle Preupgrade Script
                         Version: 19.0.0.0.0 Build: 13
Generated on:            2025-07-23 17:29:03

For Source Database:     DRDB
Source Database Version: 12.2.0.1.0
For Upgrade to Version:  19.0.0.0.0

Preup                             Preupgrade
Action                            Issue Is
Number  Preupgrade Check Name     Remedied    Further DBA Action
------  ------------------------  ----------  --------------------------------
    1.  uniaud_records_in_file    YES         None.
    2.  hidden_params             NO          Informational only.
                                              Further action is optional.
    3.  dictionary_stats          YES         None.
    4.  component_info            NO          Informational only.
                                              Further action is optional.
    5.  tablespaces_info          NO          Informational only.
                                              Further action is optional.
    6.  rman_recovery_version     NO          Informational only.
                                              Further action is optional.
    7.  invalid_ora_obj_info      NO          Informational only.
                                              Further action is optional.
    8.  invalid_app_obj_info      NO          Informational only.
                                              Further action is optional.

The fixup scripts have been run and resolved what they can. However,
there are still issues originally identified by the preupgrade that
have not been remedied and are still present in the database.
Depending on the severity of the specific issue, and the nature of
the issue itself, that could mean that your database is not ready
for upgrade.  To resolve the outstanding issues, start by reviewing
the preupgrade_fixups.sql and searching it for the name of
the failed CHECK NAME or Preupgrade Action Number listed above.
There you will find the original corresponding diagnostic message
from the preupgrade which explains in more detail what still needs
to be done.

PL/SQL procedure successfully completed.

 

4-5-4. 업그레이드 전 필수 사전 작업

 

SQL>

set line 1000
set pages 5000
col tablespace_name for a30
col file_name for a80
col free_space for 9999999
compute sum of total_space on report
compute sum of free_space on report
compute sum of MAX_SPACE on report
break on tablespace_name on report nodup

SELECT C.TABLESPACE_NAME
     , A.AUTOEXTENSIBLE
     , A.FILE_NAME
     , A.TOTAL_SPACE
     , B.FREE_SPACE
     , ROUND(B.FREE_SPACE/A.TOTAL_SPACE *100,2) "FREE%"
     , A.MAX_SPACE
  FROM (SELECT FILE_ID
             , FILE_NAME
             , SUM(BYTES)/1024/1024 TOTAL_SPACE
             , SUM(MAXBYTES)/1024/1024/1024 MAX_SPACE
             , AUTOEXTENSIBLE
          FROM DBA_DATA_FILES
         GROUP BY FILE_ID,FILE_NAME,AUTOEXTENSIBLE) A
     ,(SELECT  FILE_ID
             , NVL(SUM(BYTES)/1024/1024,0) FREE_SPACE
          FROM DBA_FREE_SPACE
         GROUP BY FILE_ID) B
     , (SELECT TABLESPACE_NAME
             , FILE_ID
          FROM DBA_DATA_FILES) C
 WHERE A.FILE_ID=B.FILE_ID(+)
   AND A.FILE_ID=C.FILE_ID
 ORDER BY TABLESPACE_NAME;

 

TABLESPACE_NAME                AUTOEXTEN FILE_NAME                                                                        TOTAL_SPACE FREE_SPACE      FREE%  MAX_SPACE
------------------------------ --------- -------------------------------------------------------------------------------- ----------- ---------- ---------- ----------
SYSAUX                         YES       +DATA1/DRDB/DATAFILE/sysaux.258.1196204689                                              1480        297      20.09 31.9999847
SYSTEM                         YES       +DATA1/DRDB/DATAFILE/system.257.1196204603                                               860          3        .36 31.9999847
TUNER_DATA1                    YES       +DATA1/DRDB/DATAFILE/tuner_data1.269.1197155159                                         1536        122       7.96 31.9999847
TUNER_IDX1                     YES       +DATA1/DRDB/DATAFILE/tuner_idx1.270.1197155177                                          1024        984      96.08 31.9999847
UNDOTBS1                       YES       +DATA1/DRDB/DATAFILE/undotbs1.259.1196204725                                             185        153      82.57 31.9999847
UNDOTBS2                       YES       +DATA1/DRDB/DATAFILE/undotbs2.265.1196204885                                              75         52         69 31.9999847
USERS                          YES       +DATA1/DRDB/DATAFILE/users.260.1196204725                                                  5          4         80 31.9999847
******************************                                                                                            ----------- ----------            ----------
sum                                                                                                                              5165       1615            223.999893
--> Autoextend ON이고 MAX_SPACE가 있는지 확인

 

--SQL> EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
--> 이건 할필요 없다고 preupgrade 정보에서 나옴

 

SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

PL/SQL procedure successfully completed.


SQL> SELECT o.name FROM sys.obj$ o, sys.user$ u, sys.sum$ s WHERE o.type# = 42 AND bitand(s.mflags, 8) = 8;

no rows selected

 

SQL>

declare
list_failures integer(3) :=0;
begin
DBMS_MVIEW.REFRESH_ALL_MVIEWS(list_failures,'C','', TRUE, FALSE);
end;
/

PL/SQL procedure successfully completed.

 


--플래시백 활성화

(이번에 수행하는 업그레이드 작업은 기존 noncdb를 cdb의 pdb로 copy해와서 진행할 것이기 때문에 플래시백 활성화를 반드시 할 필요는 없음)

 

[+ASM1:grid@rdb01d][/home/grid]$ asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512             512   4096  4194304      6144     5268             2048            1610              0             Y  CRS/
MOUNTED  EXTERN  N         512             512   4096  4194304     40960    34144                0           34144              0             N  DATA1/
MOUNTED  EXTERN  N         512             512   4096  4194304     26624    22604                0           22604              0             N  FRA1/
MOUNTED  EXTERN  N         512             512   4096  4194304     40960    40764                0           40764              0             N  MGMT/
--> FRA1 영역에 22604 MB를 사용 가능

 

[DRDB1:oracle@rdb01d][/home/oracle]$ echo $ORACLE_HOME
/u01/app/oracle/product/12c/db_1

[DRDB1:oracle@rdb01d][/home/oracle]$ echo $ORACLE_SID
DRDB1

[DRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[DRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 12.2.0.1.0 Production on Thu Jul 24 23:07:52 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +FRA1
Oldest online log sequence     120
Next log sequence to archive   122
Current log sequence           122

--> 아카이브 로그는 활성화 된 상태인것을 확인

 

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------------------------------------------
NO
--> 플래시백 데이터베이스는 비활성화 상태임

 

SQL> set linesize 250
SQL> show parameter recovery

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
db_recovery_file_dest                string
db_recovery_file_dest_size           big integer                       0
recovery_parallelism                 integer                           0
remote_recovery_file_dest            string

 

SQL> alter system set db_recovery_file_dest='+FRA1' scope=spfile;

System altered.

 

SQL> alter system set db_recovery_file_dest_size=32G scope=both;

System altered.


SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.


SQL> startup mount
ORACLE instance started.

Total System Global Area 5184159744 bytes
Fixed Size                  8631432 bytes
Variable Size            1946159992 bytes
Database Buffers         3221225472 bytes
Redo Buffers                8142848 bytes
Database mounted.


SQL> alter database flashback on;

Database altered.

 

SQL> alter database open;

Database altered.

 

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------------------------------------------
YES


SQL> show parameter flashback

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
db_flashback_retention_target        integer                           2880

 

SQL> select * from V$restore_point;

no rows selected

 

SQL> create restore point pre_upgrade guarantee flashback database;

Restore point created.

 

SQL>
col name for a20
col GUARANTEE_FLASHBACK_DATABASE for a10
col TIME for a60
set lines 190
select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;

NAME                 GUARANTEE_ TIME
-------------------- ---------- -----------------------------
PRE_UPGRADE          YES        25/07/24 23:08:59.000000000

 

4-6. Oracle 19c DB에서 신규 CDB 생성

 

[PTDB:oracle@tdb01p][/u01/app/oracle/product/19c/db_1]$ /u01/app/oracle/product/19c/db_1/bin/dbca
--> dbca UI 방식으로 db를 생성하지 않고 reponsefile 만 생성할 것임
Create a database -> Next
Advanced configuration -> Next
Oracle Real Application Cluster (RAC) Database -> General Purpose or Transcation Processing -> Next
rdb01d, rdb02d 모두 선택 -> Next
Global database name : CDRDB
SID : CDRDB
Create as Container database 체크
    Use Local Undo Tablespace for PDBs 체크
    Create an empty Container database 선택 -> Next
Use following for the database storage attributes
Database files storage type : Automatice Storage Management (ASM)
Database files location : +FRA1/{DB_UNIQUE_NAME}
Use Oracle-managed Files(OMF) 체크 -> Next
Multiplex redo logs and control files 로 들어간 후 +DATA1 및 +FRA1 추가 -> OK -> Next
Specify Fast Recovery Area 체크
Recovery files storage type : Automatice Storage Management (ASM)
Fast Recovery Area : FRA1
Fast Recovery Area Size : 10240 MB
Enable Archiving 체크 -> Edit archive mode parameters -> +FRA1 -> OK -> Next
Configure Oracle Database Valult 및 Configure Oracle Label Securiy 모두 체크 해제 -> Next
Memory : Use Automatice Shared Memory Management에서 SGA 는 1536 MB, PGA는 512 MB로 설정
Sizing : Processes 는 320 으로 설정
Character sets
    Use Unicode (AL32UTF8)
    National character set : AL16UTF16 - Unicode UTF-16 Universal character set
    Default language : American
    Default territory : korea
Conncetion mode : Dedicated server mode
Sample Schemas : 체크 해제 -> Next
Run Cluster Verification utility (CVU) Checks periodically : 체크
EM 관련 체크 해제 -> Next
Use the same administrative password for all accounts : oracle 로 비밀번호 설정 -> Next (경고창 나오면 무시하고 YES)
Create database 체크
Generate database creation scripts 체크 후 값은 {ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/scripts 로 설정
Customize Storage Locations 클릭
    Contorol Files 에서 Maximum Datafiles 는 1024로 설정 -> apply -> NEXT 
Scan Listener 관련 Failed 라면 -> Ignore All 체크 하고 -> Next  
Save Response File : /home/oracle/dbca_19c.rsp -> save -> Cancel 로 빠져나옴


[DRDB1:oracle@rdb01d][/home/oracle]$ awk -F= 'NF && $1 !~ /^#/ && $2!=""' /home/oracle/dbca_19c.rsp > /home/oracle/dbca_19c_new.rsp
[DRDB1:oracle@rdb01d][/home/oracle]$ cat /home/oracle/dbca_19c_new.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=CDRDB
sid=CDRDB
databaseConfigType=RAC
policyManaged=false
createServerPool=false
force=false
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=pdb

useLocalUndoForPDBs=true
nodelist=rdb01d,rdb02d
templateName=/u01/app/oracle/product/19c/db_1/assistants/dbca/templates/General_Purpose.dbc
systemPassword=
emExpressPort=5500
runCVUChecks=TRUE
omsPort=0
dvConfiguration=false
olsConfiguration=false
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/
datafileDestination=+FRA1/{DB_UNIQUE_NAME}/
recoveryAreaDestination=+FRA1
storageType=ASM
diskGroupName=+FRA1/{DB_UNIQUE_NAME}/
recoveryGroupName=+FRA1
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
registerWithDirService=false
listeners=LISTENER
skipListenerRegistration=false
variables=ORACLE_BASE_HOME=/u01/app/oracle/product/19c/db_1,DB_UNIQUE_NAME=CDRDB,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=CDRDB,ORACLE_HOME=/u01/app/oracle/product/19c/db_1,SID=CDRDB
initParams=CDRDB1.undo_tablespace=UNDOTBS1,CDRDB2.undo_tablespace=UNDOTBS2,sga_target=1536MB,db_block_size=8192BYTES,cluster_database=true,family:dw_helper.instance_mode=read-only,log_archive_dest_1='LOCATION=+FRA1',nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=CDRDBXDB),diagnostic_dest={ORACLE_BASE},remote_login_passwordfile=exclusive,db_create_file_dest=+FRA1/{DB_UNIQUE_NAME}/,db_create_online_log_dest_2=+FRA1,db_create_online_log_dest_1=+DATA1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,processes=320,pga_aggregate_target=512MB,CDRDB1.thread=1,CDRDB2.thread=2,nls_territory=KOREA,local_listener=-oraagent-dummy-,db_recovery_file_dest_size=10240MB,open_cursors=300,log_archive_format=%t_%s_%r.dbf,compatible=19.0.0,db_name=CDRDB,CDRDB1.instance_number=1,CDRDB2.instance_number=2,db_recovery_file_dest=+FRA1,audit_trail=db
sampleSchema=false
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=0

--> 분명 dbca 실행 ui에서는 pdb 생성을 안하기로 한거같은데 response file에는 pdb 1개 만들기로 되어 있음 추후 확인해볼것


[DRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/19c/db_1/bin/dbca -silent -ignorePrereqFailure -createDatabase -responseFile /home/oracle/dbca_19c_new.rsp
Enter SYS user password:

Enter SYSTEM user password:

Enter DBSNMP user password:

Enter PDBADMIN User Password:
--> 비밀번호 모두 oracle, oracle로 입력함

[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'PDBADMIN' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'DBSNMP' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06801] Specified Fast Recovery Area size (10,240 MB) is less than the recommended value.
   CAUSE: Fast Recovery Area size should at least be three times the database size (3,928 MB).
   ACTION: Specify Fast Recovery Area Size to be at least three times the database size.
Prepare for db operation
7% complete
Copying database files
27% complete
Creating and starting Oracle instance
28% complete
31% complete
35% complete
37% complete
40% complete
Creating cluster database views
41% complete
53% complete
Completing Database Creation
57% complete
59% complete
60% complete
Creating Pluggable Databases
64% complete
80% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/CDRDB.
Database Information:
Global Database Name:CDRDB
System Identifier(SID) Prefix:CDRDB
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/CDRDB/CDRDB.log" for further details.

 

--아래 위치에 가면 dbca 진행 사항 로그를 확인 가능
--dbca
/u01/app/oracle/cfgtoollogs/dbca/CDRDB

[DRDB1:oracle@rdb01d][/u01/app/oracle/cfgtoollogs/dbca/CDRDB]$ tail -f /u01/app/oracle/cfgtoollogs/dbca/CDRDB/trace.log_2025-07-25_08-24-13PM

 

--datapatch
/u01/app/oracle/cfgtoollogs/sqlpatch

[DRDB1:oracle@rdb01d][/u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_7505_2025_07_25_20_29_40]$ tail -f /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_7505_2025_07_25_20_29_40/sqlpatch_debug.log
--> 로그를 모니터링하면서 진행사항을 확인할 것

 

--만약 방금 만든 db를 지운다면
/u01/app/oracle/product/19c/db_1/bin/dbca -silent -deleteDatabase -sourceDB CPTDB -sid CDRDB -sysDBAUserName sys -sysDBAPassword oracle
--> 정말 지울꺼 아니면 돌리면 안됨!!! (예시로 정리해 놓은 것임)


--자동으로 grid 에도 등록됨
[DRDB1:oracle@rdb01d][/home/oracle]$ alias csrt
alias csrt='crsctl stat res -t'
[DRDB1:oracle@rdb01d][/home/oracle]$ csrt
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.chad
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.net1.network
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
ora.ons
               ONLINE  ONLINE       rdb01d                   STABLE
               ONLINE  ONLINE       rdb02d                   STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rdb01d                   STABLE
      2        ONLINE  ONLINE       rdb02d                   STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rdb01d                   STABLE
      2        ONLINE  ONLINE       rdb02d                   STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.DATA1.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rdb01d                   STABLE
      2        ONLINE  ONLINE       rdb02d                   STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.FRA1.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rdb01d                   STABLE
      2        ONLINE  ONLINE       rdb02d                   STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.MGMT.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rdb01d                   STABLE
      2        ONLINE  ONLINE       rdb02d                   STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rdb01d                   Started,STABLE
      2        ONLINE  ONLINE       rdb02d                   Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rdb01d                   STABLE
      2        ONLINE  ONLINE       rdb02d                   STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.cdrdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _1,STABLE

ora.cvu
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
ora.qosmserver
      1        OFFLINE OFFLINE                               STABLE
ora.rdb01d.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.rdb02d.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rdb02d                   STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rdb01d                   STABLE
--------------------------------------------------------------------------------


4-7. 기존 12cR2 noncdb의 메타 데이터 생성 (xml 파일 생성)

 

[DRDB1:oracle@rdb01d][/home/oracle]$ which srvctl
/u01/app/oracle/product/12c/db_1/bin/srvctl

[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl stop database -db drdb

[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl start database -db drdb -startoption "READ ONLY"

ora.drdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,Readonly,HOME=/
                                                             u01/app/oracle/produ
                                                             ct/12c/db_1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,Readonly,HOME=/
                                                             u01/app/oracle/produ
                                                             ct/12c/db_1,STABLE

 

[DRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[DRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/12c/db_1/bin/sqlplus

[DRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 25 22:11:46 2025

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL> select open_mode from v$database;

OPEN_MODE
------------------------------------------------------------
READ ONLY

 

SQL>
BEGIN
  DBMS_PDB.DESCRIBE(pdb_descr_file => '/tmp/DRDB_12cR2_noncdb.xml');
END;
/

 

SQL> quit

 

[DRDB1:oracle@rdb01d][/home/oracle]$ cat /tmp/DRDB_12cR2_noncdb.xml
<?xml version="1.0" encoding="UTF-8"?>
<PDB>
  <xmlversion>1</xmlversion>
  <pdbname>DRDB</pdbname>
  <cid>0</cid>
  <byteorder>1</byteorder>
  <vsn>203424000</vsn>
  <vsns>
    <vsnnum>12.2.0.1.0</vsnnum>
    <cdbcompt>12.2.0.0.0</cdbcompt>
    <pdbcompt>12.2.0.0.0</pdbcompt>
    <vsnlibnum>0.0.0.0.24</vsnlibnum>
    <vsnsql>24</vsnsql>
    <vsnbsv>8.0.0.0.0</vsnbsv>
  </vsns>
  <dbid>1008397436</dbid>
  <ncdb2pdb>1</ncdb2pdb>
  <cdbid>1008397436</cdbid>
  <guid>30B38734AD19110EE0631F00A8C05A6C</guid>
  <uscnbas>16058248</uscnbas>
  <uscnwrp>0</uscnwrp>
  <undoscn>7</undoscn>
  <rdba>4194824</rdba>
  <tablespace>
    <name>SYSTEM</name>
    <type>0</type>
    <tsn>0</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>8</bmunitsize>
    <file>
      <path>+DATA1/DRDB/DATAFILE/system.257.1196204603</path>
      <afn>1</afn>
      <rfn>1</rfn>
      <createscnbas>7</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>110080</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <fdbid>1008397436</fdbid>
      <fcpsb>16058247</fcpsb>
      <fcpsw>0</fcpsw>
      <frlsb>10682465</frlsb>
      <frlsw>0</frlsw>
      <frlt>1200392658</frlt>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>1280</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>SYSAUX</name>
    <type>0</type>
    <tsn>1</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>8</bmunitsize>
    <file>
      <path>+DATA1/DRDB/DATAFILE/sysaux.258.1196204689</path>
      <afn>3</afn>
      <rfn>3</rfn>
      <createscnbas>4665</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>189440</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <fdbid>1008397436</fdbid>
      <fcpsb>16058247</fcpsb>
      <fcpsw>0</fcpsw>
      <frlsb>10682465</frlsb>
      <frlsw>0</frlsw>
      <frlt>1200392658</frlt>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>1280</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>UNDOTBS1</name>
    <type>2</type>
    <tsn>2</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>8</bmunitsize>
    <file>
      <path>+DATA1/DRDB/DATAFILE/undotbs1.259.1196204725</path>
      <afn>4</afn>
      <rfn>4</rfn>
      <createscnbas>1406609</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>23680</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <fdbid>1008397436</fdbid>
      <fcpsb>16058247</fcpsb>
      <fcpsw>0</fcpsw>
      <frlsb>10682465</frlsb>
      <frlsw>0</frlsw>
      <frlt>1200392658</frlt>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>640</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>TEMP</name>
    <type>1</type>
    <tsn>3</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>128</bmunitsize>
    <file>
      <path>+DATA1/DRDB/TEMPFILE/temp.264.1196204817</path>
      <afn>1</afn>
      <rfn>1</rfn>
      <createscnbas>1408675</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>5888</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>80</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>USERS</name>
    <type>0</type>
    <tsn>4</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>8</bmunitsize>
    <file>
      <path>+DATA1/DRDB/DATAFILE/users.260.1196204725</path>
      <afn>7</afn>
      <rfn>7</rfn>
      <createscnbas>29999</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>640</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <fdbid>1008397436</fdbid>
      <fcpsb>16058247</fcpsb>
      <fcpsw>0</fcpsw>
      <frlsb>10682465</frlsb>
      <frlsw>0</frlsw>
      <frlt>1200392658</frlt>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>160</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>UNDOTBS2</name>
    <type>2</type>
    <tsn>5</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>8</bmunitsize>
    <file>
      <path>+DATA1/DRDB/DATAFILE/undotbs2.265.1196204885</path>
      <afn>5</afn>
      <rfn>5</rfn>
      <createscnbas>1418153</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>9600</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <fdbid>1008397436</fdbid>
      <fcpsb>16058247</fcpsb>
      <fcpsw>0</fcpsw>
      <frlsb>10682465</frlsb>
      <frlsw>0</frlsw>
      <frlt>1200392658</frlt>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>3200</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>TUNER_DATA1</name>
    <type>0</type>
    <tsn>6</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>8</bmunitsize>
    <file>
      <path>+DATA1/DRDB/DATAFILE/tuner_data1.269.1197155159</path>
      <afn>2</afn>
      <rfn>2</rfn>
      <createscnbas>2398280</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>196608</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <fdbid>1008397436</fdbid>
      <fcpsb>16058247</fcpsb>
      <fcpsw>0</fcpsw>
      <frlsb>10682465</frlsb>
      <frlsw>0</frlsw>
      <frlt>1200392658</frlt>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>65536</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>TUNER_IDX1</name>
    <type>0</type>
    <tsn>7</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>8</bmunitsize>
    <file>
      <path>+DATA1/DRDB/DATAFILE/tuner_idx1.270.1197155177</path>
      <afn>8</afn>
      <rfn>8</rfn>
      <createscnbas>2398323</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>131072</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <fdbid>1008397436</fdbid>
      <fcpsb>16058247</fcpsb>
      <fcpsw>0</fcpsw>
      <frlsb>10682465</frlsb>
      <frlsw>0</frlsw>
      <frlt>1200392658</frlt>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>65536</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <tablespace>
    <name>TUNER_TEMP</name>
    <type>1</type>
    <tsn>8</tsn>
    <status>1</status>
    <issft>0</issft>
    <isnft>0</isnft>
    <encts>0</encts>
    <flags>0</flags>
    <bmunitsize>128</bmunitsize>
    <file>
      <path>+DATA1/DRDB/TEMPFILE/tuner_temp.271.1197155195</path>
      <afn>2</afn>
      <rfn>1</rfn>
      <createscnbas>2398351</createscnbas>
      <createscnwrp>0</createscnwrp>
      <status>1</status>
      <fileblocks>16384</fileblocks>
      <blocksize>8192</blocksize>
      <vsn>203423744</vsn>
      <autoext>1</autoext>
      <maxsize>4194302</maxsize>
      <incsize>12800</incsize>
      <plugscn>0</plugscn>
      <plugafn>0</plugafn>
      <plugdbid>0</plugdbid>
    </file>
  </tablespace>
  <recover>0</recover>
  <optional>
    <ncdb2pdb>1</ncdb2pdb>
    <csid>846</csid>
    <ncsid>2000</ncsid>
    <options>
      <option>APS=12.2.0.1.0</option>
      <option>CATALOG=12.2.0.1.0</option>
      <option>CATJAVA=12.2.0.1.0</option>
      <option>CATPROC=12.2.0.1.0</option>
      <option>CONTEXT=12.2.0.1.0</option>
      <option>DV=12.2.0.1.0</option>
      <option>JAVAVM=12.2.0.1.0</option>
      <option>OLS=12.2.0.1.0</option>
      <option>ORDIM=12.2.0.1.0</option>
      <option>OWM=12.2.0.1.0</option>
      <option>RAC=12.2.0.1.0</option>
      <option>SDO=12.2.0.1.0</option>
      <option>XDB=12.2.0.1.0</option>
      <option>XML=12.2.0.1.0</option>
      <option>XOQ=12.2.0.1.0</option>
    </options>
    <olsoid>0</olsoid>
    <dv>0</dv>
    <APEX>NULL</APEX>
    <parameters>
      <parameter>processes=320</parameter>
      <parameter>nls_language='AMERICAN'</parameter>
      <parameter>nls_territory='KOREA'</parameter>
      <parameter>_ipddb_enable=TRUE</parameter>
      <parameter>sga_target=5033164800</parameter>
      <parameter>db_block_size=8192</parameter>
      <parameter>compatible='12.2.0'</parameter>
      <parameter>data_guard_sync_latency=0</parameter>
      <parameter>archive_lag_target=0</parameter>
      <parameter>cluster_database=TRUE</parameter>
      <parameter>db_flashback_retention_target=2880</parameter>
      <parameter>open_cursors=300</parameter>
      <parameter>pga_aggregate_target=1678770176</parameter>
      <parameter>optimizer_dynamic_sampling=0</parameter>
      <parameter>optimizer_adaptive_reporting_only=TRUE</parameter>
      <parameter>optimizer_adaptive_plans=FALSE</parameter>
      <parameter>optimizer_adaptive_statistics=FALSE</parameter>
    </parameters>
    <sqlpatches>
      <sqlpatch>DBRU bundle patch 220118 (DATABASE JAN 2022 RELEASE UPDATE 12.2.0.1.220118): APPLY SUCCESS</sqlpatch>
    </sqlpatches>
    <tzvers>
      <tzver>primary version:26</tzver>
      <tzver>secondary version:0</tzver>
    </tzvers>
    <walletkey>0</walletkey>
    <services>
      <service>SYS$BACKGROUND,</service>
      <service>SYS$USERS,</service>
      <service>DRDB_DGB,DRDB_DGB</service>
      <service>DRDBXDB,DRDBXDB</service>
      <service>DRDB,DRDB</service>
      <service>DRDB_STBXDB,DRDB_STBXDB</service>
      <service>DRDB_STB,DRDB_STB</service>
    </services>
    <opatches/>
    <hasclob>1</hasclob>
    <awr/>
    <hardvsnchk>0</hardvsnchk>
    <localundo>1</localundo>
    <apps/>
    <dbedition>8</dbedition>
  </optional>
</PDB>

 

4-8. 12cR2에서 추출한 xml 파일로 12cR2 noncdb를 19c cdb 내에 PDB로 plug-in 시킴

 

[DRDB1:oracle@rdb01d][/home/oracle]$ which srvctl
/u01/app/oracle/product/12c/db_1/bin/srvctl

[DRDB1:oracle@rdb01d][/home/oracle]$ echo $ORACLE_HOME
/u01/app/oracle/product/12c/db_1

[DRDB1:oracle@rdb01d][/home/oracle]$ echo $ORACLE_SID
DRDB1

[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl stop database -db drdb

[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH


[CDRDB:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

 

[CDRDB:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 25 23:44:25 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

SET SERVEROUTPUT ON
DECLARE
  compatible CONSTANT VARCHAR2(3) :=
    CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY('/tmp/DRDB_12cR2_noncdb.xml')
    WHEN TRUE THEN 'YES'
    ELSE 'NO'
  END;
BEGIN
  DBMS_OUTPUT.PUT_LINE('Is Compatible? => ' || compatible);
END;
/

 

CREATE PLUGGABLE DATABASE DRDB
USING '/tmp/DRDB_12cR2_noncdb.xml'
COPY
;

Pluggable database created.

 

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO
         5 DRDB                           MOUNTED


-------------------------------여기서 새로운 ssh 창 하나 더 열어서 : 시작-----------------------------------
[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_UNQNAME_LOWER=cdrdb
[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1

[CDRDB1:oracle@rdb01d][/home/oracle]$ alias alog
alias alog='tail -f $ORACLE_BASE/diag/rdbms/$ORACLE_UNQNAME_LOWER/$ORACLE_SID/trace/alert_$ORACLE_SID.log'

[CDRDB1:oracle@rdb01d][/home/oracle]$ alog
--> alert log 모니터링
--------------------------------여기서 새로운 ssh 창 하나 더 열어서 : 종료----------------------------------

 

--cdrdb1에 접속해서 pdb 플러그인 상황 확인

--오렌지 툴로 붙으려면 tnsnames.ora 설정

--CDB
CDRDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CDRDB)
    )
  )


 

--PDB
CDRDB1_DRDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DRDB)
    )
  )
 
SELECT A.NAME, A.MESSAGE, A.STATUS, A.*
  FROM PDB_PLUG_IN_VIOLATIONS A
 WHERE NAME = 'DRDB' 
 ORDER BY A.NAME, A.LINE
;


4-9. plug-in 시킨 PDB를 19c로 업그레이드

 

[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss

alias ss='rlwrap sqlplus "/as sysdba"'

[CDRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/19c/db_1/bin/sqlplus

[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 08:58:09 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            MOUNTED
         5 DRDB                           MOUNTED

SQL> alter pluggable database DRDB open upgrade;

Pluggable database altered.

 

SQL> ALTER SESSION SET container = DRDB;

Session altered.

 

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         5 DRDB                           MIGRATE    YES


--새로운 창 하나 열어서
[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
[CDRDB1:oracle@rdb01d][/home/oracle]$ which perl
/usr/bin/perl

[CDRDB1:oracle@rdb01d][/home/oracle]$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -c 'DRDB' -l /tmp -n 4 $ORACLE_HOME/rdbms/admin/catupgrd.sql
--> PDB로 플러그인한 DRDB 를 병렬도 4로 업그레이드함 (pdb 업그레이드 시 cdb 레벨에서 cluster_Database 파라미터를 false로 하지 않아도 pdb 업그레이드에 성공함)

--> 업그레이드 세부 로그
[DRDB1:oracle@rdb01d][/tmp]$ tail -f /tmp/catupgrddrdb0.log


----------------여기서 새로운 ssh 창 하나 더 열어서 : 시작----------------------------------------------
[DRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_UNQNAME_LOWER=cdrdb
[CDRDB:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ alias alog
alias alog='tail -f $ORACLE_BASE/diag/rdbms/$ORACLE_UNQNAME_LOWER/$ORACLE_SID/trace/alert_$ORACLE_SID.log'

[CDRDB1:oracle@rdb01d][/home/oracle]$ alog
--> 위치는 여기임 /u01/app/oracle/diag/rdbms/cdrdb/CDRDB1/trace/alert_CDRDB1.log
---------------여기서 새로운 ssh 창 하나 더 열어서 : 종료-----------------------------------------------


Argument list for [/u01/app/oracle/product/19c/db_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in                       c = DRDB
Do not run in                C = 0
Input Directory              d = 0
Echo OFF                     e = 1
Simulate                     E = 0
Forced cleanup               F = 0
Log Id                       i = 0
Child Process                I = 0
Log Dir                      l = /tmp
Priority List Name           L = 0
Upgrade Mode active          M = 0
SQL Process Count            n = 4
SQL PDB Process Count        N = 0
Open Mode Normal             o = 0
Start Phase                  p = 0
End Phase                    P = 0
Reverse Order                r = 0
AutoUpgrade Resume           R = 0
Script                       s = 0
Serial Run                   S = 0
RO User Tablespaces          T = 0
Display Phases               y = 0
Debug catcon.pm              z = 0
Debug catctl.pl              Z = 0

catctl.pl VERSION: [19.0.0.0.0]
           STATUS: [Production]
            BUILD: [RDBMS_19.27.0.0.0DBRU_LINUX.X64_250405]


/u01/app/oracle/product/19c/db_1/rdbms/admin/orahome = [/u01/app/oracle/product/19c/db_1]
/u01/app/oracle/product/19c/db_1/bin/orabasehome = [/u01/app/oracle/product/19c/db_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19c/db_1]

Analyzing file /u01/app/oracle/product/19c/db_1/rdbms/admin/catupgrd.sql

Log file directory = [/tmp]

catcon::set_log_file_base_path: ALL catcon-related output will be written to [/tmp/catupgrd_catcon_2299.lst]

catcon::set_log_file_base_path: catcon: See [/tmp/catupgrd*.log] files for output generated by scripts

catcon::set_log_file_base_path: catcon: See [/tmp/catupgrd_*.lst] files for spool files, if any


Number of Cpus        = 4
Database Name         = CDRDB
DataBase Version      = 19.0.0.0.0
Parallel SQL Process Count (PDB)      = 2
Parallel SQL Process Count (CDB$ROOT) = 4
Concurrent PDB Upgrades               = 2
Generated PDB Inclusion:[DRDB]
CDB$ROOT  Open Mode = [OPEN]
Concurrent PDB Upgrades Reset           = 1
DataBase Version      = 19.0.0.0.0

Start processing of PDBs (DRDB)
[/u01/app/oracle/product/19c/db_1/perl/bin/perl /u01/app/oracle/product/19c/db_1/rdbms/admin/catctl.pl -c 'DRDB' -l /tmp -n 2 -I -i drdb /u01/app/oracle/product/19c/db_1/rdbms/admin/catupgrd.sql]

Argument list for [/u01/app/oracle/product/19c/db_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in                       c = DRDB
Do not run in                C = 0
Input Directory              d = 0
Echo OFF                     e = 1
Simulate                     E = 0
Forced cleanup               F = 0
Log Id                       i = drdb
Child Process                I = 1
Log Dir                      l = /tmp
Priority List Name           L = 0
Upgrade Mode active          M = 0
SQL Process Count            n = 2
SQL PDB Process Count        N = 0
Open Mode Normal             o = 0
Start Phase                  p = 0
End Phase                    P = 0
Reverse Order                r = 0
AutoUpgrade Resume           R = 0
Script                       s = 0
Serial Run                   S = 0
RO User Tablespaces          T = 0
Display Phases               y = 0
Debug catcon.pm              z = 0
Debug catctl.pl              Z = 0

catctl.pl VERSION: [19.0.0.0.0]
           STATUS: [Production]
            BUILD: [RDBMS_19.27.0.0.0DBRU_LINUX.X64_250405]


/u01/app/oracle/product/19c/db_1/rdbms/admin/orahome = [/u01/app/oracle/product/19c/db_1]
/u01/app/oracle/product/19c/db_1/bin/orabasehome = [/u01/app/oracle/product/19c/db_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19c/db_1]

Analyzing file /u01/app/oracle/product/19c/db_1/rdbms/admin/catupgrd.sql

Log file directory = [/tmp]

catcon::set_log_file_base_path: ALL catcon-related output will be written to [/tmp/catupgrddrdb_catcon_2697.lst]

catcon::set_log_file_base_path: catcon: See [/tmp/catupgrddrdb*.log] files for output generated by scripts

catcon::set_log_file_base_path: catcon: See [/tmp/catupgrddrdb_*.lst] files for spool files, if any


Number of Cpus        = 4
Database Name         = CDRDB
DataBase Version      = 19.0.0.0.0
DRDB Open Mode = [MIGRATE]
Generated PDB Inclusion:[DRDB]
CDB$ROOT  Open Mode = [OPEN]
Components in [DRDB]
    Installed [APS CATALOG CATJAVA CATPROC CONTEXT DV JAVAVM OLS ORDIM OWM RAC SDO XDB XML XOQ]
Not Installed [APEX EM MGW ODM WK]
DataBase Version      = 19.0.0.0.0

------------------------------------------------------
Phases [0-107]         Start Time:[2025_07_26 09:03:35]
Container Lists Inclusion:[DRDB] Exclusion:[NONE]
------------------------------------------------------
***********   Executing Change Scripts   ***********
Serial   Phase #:0    [DRDB] Files:1    Time: 75s
***************   Catalog Core SQL   ***************
Serial   Phase #:1    [DRDB] Files:5    Time: 153s
Restart  Phase #:2    [DRDB] Files:1    Time: 0s
***********   Catalog Tables and Views   ***********
Parallel Phase #:3    [DRDB] Files:19   Time: 107s
Restart  Phase #:4    [DRDB] Files:1    Time: 0s
*************   Catalog Final Scripts   ************
Serial   Phase #:5    [DRDB] Files:7    Time: 31s
*****************   Catproc Start   ****************
Serial   Phase #:6    [DRDB] Files:1    Time: 19s
*****************   Catproc Types   ****************
Serial   Phase #:7    [DRDB] Files:2    Time: 22s
Restart  Phase #:8    [DRDB] Files:1    Time: 0s
****************   Catproc Tables   ****************
Parallel Phase #:9    [DRDB] Files:72   Time: 68s
Restart  Phase #:10   [DRDB] Files:1    Time: 0s
*************   Catproc Package Specs   ************
Serial   Phase #:11   [DRDB] Files:1    Time: 162s
Restart  Phase #:12   [DRDB] Files:1    Time: 0s
**************   Catproc Procedures   **************
Parallel Phase #:13   [DRDB] Files:95   Time: 14s
Restart  Phase #:14   [DRDB] Files:1    Time: 0s
Parallel Phase #:15   [DRDB] Files:122  Time: 35s
Restart  Phase #:16   [DRDB] Files:1    Time: 0s
Serial   Phase #:17   [DRDB] Files:29   Time: 5s
Restart  Phase #:18   [DRDB] Files:1    Time: 0s
*****************   Catproc Views   ****************
Parallel Phase #:19   [DRDB] Files:31   Time: 52s
Restart  Phase #:20   [DRDB] Files:1    Time: 0s
Serial   Phase #:21   [DRDB] Files:3    Time: 11s
Restart  Phase #:22   [DRDB] Files:1    Time: 0s
Parallel Phase #:23   [DRDB] Files:25   Time: 121s
Restart  Phase #:24   [DRDB] Files:1    Time: 1s
Parallel Phase #:25   [DRDB] Files:12   Time: 70s
Restart  Phase #:26   [DRDB] Files:1    Time: 0s
Serial   Phase #:27   [DRDB] Files:1    Time: 0s
Serial   Phase #:28   [DRDB] Files:8    Time: 4s
Serial   Phase #:29   [DRDB] Files:1    Time: 0s
Restart  Phase #:30   [DRDB] Files:1    Time: 0s
***************   Catproc CDB Views   **************
Serial   Phase #:31   [DRDB] Files:1    Time: 0s
Restart  Phase #:32   [DRDB] Files:1    Time: 0s
Serial   Phase #:34   [DRDB] Files:1    Time: 0s
*****************   Catproc PLBs   *****************
Serial   Phase #:35   [DRDB] Files:300  Time: 31s
Serial   Phase #:36   [DRDB] Files:1    Time: 0s
Restart  Phase #:37   [DRDB] Files:1    Time: 0s
Serial   Phase #:38   [DRDB] Files:10   Time: 3s
Restart  Phase #:39   [DRDB] Files:1    Time: 0s
***************   Catproc DataPump   ***************
Serial   Phase #:40   [DRDB] Files:3    Time: 47s
Restart  Phase #:41   [DRDB] Files:1    Time: 1s
******************   Catproc SQL   *****************
Parallel Phase #:42   [DRDB] Files:13   Time: 77s
Restart  Phase #:43   [DRDB] Files:1    Time: 0s
Parallel Phase #:44   [DRDB] Files:11   Time: 11s
Restart  Phase #:45   [DRDB] Files:1    Time: 0s
Parallel Phase #:46   [DRDB] Files:3    Time: 2s
Restart  Phase #:47   [DRDB] Files:1    Time: 0s
*************   Final Catproc scripts   ************
Serial   Phase #:48   [DRDB] Files:1    Time: 15s
Restart  Phase #:49   [DRDB] Files:1    Time: 1s
**************   Final RDBMS scripts   *************
Serial   Phase #:50   [DRDB] Files:1    Time: 24s
************   Upgrade Component Start   ***********
Serial   Phase #:51   [DRDB] Files:1    Time: 1s
Restart  Phase #:52   [DRDB] Files:1    Time: 0s
**********   Upgrading Java and non-Java   *********
Serial   Phase #:53   [DRDB] Files:2    Time: 516s
*****************   Upgrading XDB   ****************
Restart  Phase #:54   [DRDB] Files:1    Time: 1s
Serial   Phase #:56   [DRDB] Files:3    Time: 6s
Serial   Phase #:57   [DRDB] Files:3    Time: 3s
Parallel Phase #:58   [DRDB] Files:10   Time: 5s
Parallel Phase #:59   [DRDB] Files:25   Time: 11s
Serial   Phase #:60   [DRDB] Files:4    Time: 14s
Serial   Phase #:61   [DRDB] Files:1    Time: 0s
Serial   Phase #:62   [DRDB] Files:32   Time: 13s
Serial   Phase #:63   [DRDB] Files:1    Time: 0s
Parallel Phase #:64   [DRDB] Files:6    Time: 10s
Serial   Phase #:65   [DRDB] Files:2    Time: 17s
Serial   Phase #:66   [DRDB] Files:3    Time: 29s
****************   Upgrading ORDIM   ***************
Restart  Phase #:67   [DRDB] Files:1    Time: 0s
Serial   Phase #:69   [DRDB] Files:1    Time: 1s
Parallel Phase #:70   [DRDB] Files:2    Time: 188s
Restart  Phase #:71   [DRDB] Files:1    Time: 1s
Parallel Phase #:72   [DRDB] Files:2    Time: 0s
Serial   Phase #:73   [DRDB] Files:2    Time: 1s
*****************   Upgrading SDO   ****************
Restart  Phase #:74   [DRDB] Files:1    Time: 0s
Serial   Phase #:76   [DRDB] Files:1    Time: 54s
Serial   Phase #:77   [DRDB] Files:2    Time: 3s
Restart  Phase #:78   [DRDB] Files:1    Time: 0s
Serial   Phase #:79   [DRDB] Files:1    Time: 41s
Restart  Phase #:80   [DRDB] Files:1    Time: 0s
Parallel Phase #:81   [DRDB] Files:3    Time: 200s
Restart  Phase #:82   [DRDB] Files:1    Time: 0s
Serial   Phase #:83   [DRDB] Files:1    Time: 8s
Restart  Phase #:84   [DRDB] Files:1    Time: 0s
Serial   Phase #:85   [DRDB] Files:1    Time: 12s
Restart  Phase #:86   [DRDB] Files:1    Time: 0s
Parallel Phase #:87   [DRDB] Files:4    Time: 214s
Restart  Phase #:88   [DRDB] Files:1    Time: 1s
Serial   Phase #:89   [DRDB] Files:1    Time: 0s
Restart  Phase #:90   [DRDB] Files:1    Time: 0s
Serial   Phase #:91   [DRDB] Files:2    Time: 82s
Restart  Phase #:92   [DRDB] Files:1    Time: 0s
Serial   Phase #:93   [DRDB] Files:1    Time: 0s
Restart  Phase #:94   [DRDB] Files:1    Time: 1s
*******   Upgrading ODM, WK, EXF, RUL, XOQ   *******
Serial   Phase #:95   [DRDB] Files:1    Time: 31s
Restart  Phase #:96   [DRDB] Files:1    Time: 0s
***********   Final Component scripts    ***********
Serial   Phase #:97   [DRDB] Files:1    Time: 2s
*************   Final Upgrade scripts   ************
Serial   Phase #:98   [DRDB] Files:1    Time: 76s
*******************   Migration   ******************
Serial   Phase #:99   [DRDB] Files:1    Time: 0s
***   End PDB Application Upgrade Pre-Shutdown   ***
Serial   Phase #:100  [DRDB] Files:1    Time: 1s
Serial   Phase #:101  [DRDB] Files:1    Time: 3s
Serial   Phase #:102  [DRDB] Files:1    Time: 2s
*****************   Post Upgrade   *****************
Serial   Phase #:103  [DRDB] Files:1    Time: 2s
****************   Summary report   ****************
Serial   Phase #:104  [DRDB] Files:1    Time: 1s
***   End PDB Application Upgrade Post-Shutdown   **
Serial   Phase #:105  [DRDB] Files:1    Time: 1s
Serial   Phase #:106  [DRDB] Files:1    Time: 1s
Serial   Phase #:107  [DRDB] Files:1     Time: 0s

------------------------------------------------------
Phases [0-107]         End Time:[2025_07_26 09:48:50]
Container Lists Inclusion:[DRDB] Exclusion:[NONE]
------------------------------------------------------

Grand Total Time: 2716s [DRDB]

 LOG FILES: (/tmp/catupgrddrdb*.log)

Upgrade Summary Report Located in:
/tmp/upg_summary.log

     Time: 2722s For PDB(s)

Grand Total Time: 2722s

 LOG FILES: (/tmp/catupgrd*.log)


Grand Total Upgrade Time:    [0d:0h:45m:22s]


[DRDB1:oracle@rdb01d][/tmp]$ cat /tmp/upg_summary.log

Oracle Database Release 19 Post-Upgrade Status Tool    07-26-2025 09:48:4
Container Database: CDRDB
[CON_ID: 5 => DRDB]

Component                               Current         Full     Elapsed Time
Name                                    Status          Version  HH:MM:SS

Oracle Server                          UPGRADED     19.27.0.0.0  00:19:20
JServer JAVA Virtual Machine           UPGRADED     19.27.0.0.0  00:02:02
Oracle XDK                             UPGRADED     19.27.0.0.0  00:02:20
Oracle Database Java Packages          UPGRADED     19.27.0.0.0  00:00:31
OLAP Analytic Workspace                UPGRADED     19.27.0.0.0  00:00:11
Oracle Label Security                  UPGRADED     19.27.0.0.0  00:00:22
Oracle Database Vault                  UPGRADED     19.27.0.0.0  00:00:59
Oracle Text                            UPGRADED     19.27.0.0.0  00:01:07
Oracle Workspace Manager               UPGRADED     19.27.0.0.0  00:00:59
Oracle Real Application Clusters       UPGRADED     19.27.0.0.0  00:00:00
Oracle XML Database                    UPGRADED     19.27.0.0.0  00:01:47
Oracle Multimedia                      UPGRADED     19.27.0.0.0  00:03:10
Spatial                                UPGRADED     19.27.0.0.0  00:10:13
Oracle OLAP API                        UPGRADED     19.27.0.0.0  00:00:30
Datapatch                                                        00:01:07
Final Actions                                                    00:01:16
Post Upgrade                                                     00:00:00

Total Upgrade Time: 00:45:02 [CON_ID: 5 => DRDB]

Database time zone version is 26. It is older than current release time
zone version 44. Time zone upgrade is needed using the DBMS_DST package.

Grand Total Upgrade Time:    [0d:0h:45m:22s]


SELECT A.NAME, A.MESSAGE, A.STATUS, A.*
  FROM PDB_PLUG_IN_VIOLATIONS A
 WHERE NAME = 'DRDB' 
 ORDER BY A.NAME, A.LINE
;

 

4-10. plug-in 시킨 PDB에서 noncdb_to_pdb.sql 스크립트를 실행

 

[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[CDRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/19c/db_1/bin/sqlplus

[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 10:02:47 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0


SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            MOUNTED
         5 DRDB                           MOUNTED


SQL> ALTER SESSION SET container=DRDB;


SQL> @?/rdbms/admin/noncdb_to_pdb.sql

 

...생략

SQL>
SQL> -- leave the PDB in the same state it was when we started
SQL> BEGIN
  2    execute immediate '&open_sql &restricted_state';
  3  EXCEPTION
  4    WHEN OTHERS THEN
  5    BEGIN
  6      IF (sqlcode <> -900) THEN
  7        RAISE;
  8      END IF;
  9    END;
 10  END;
 11  /

PL/SQL procedure successfully completed.

 

----------해당 세션은 그대로 두고 새로운 세션을 하나 열어서 cptdb 로 접속 (시작)-------------
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[CDRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/19c/db_1/bin/sqlplus
[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 10:04:19 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

set linesize 300
col name for a10
col message for a150
col status for a10
SELECT A.NAME, A.MESSAGE, A.STATUS
--, A.*
  FROM PDB_PLUG_IN_VIOLATIONS A
ORDER BY A.NAME, A.LINE;

--> pbd plugin 작업의 상태를 파악 할 수 있음

 

NAME       MESSAGE                                                                                                                                                STATUS
---------- ------------------------------------------------------------------------------------------------------------------------------------------------------ ----------
DRDB       CDB parameter sga_target mismatch: Previous 4800M Current 1536M                                                                                        RESOLVED
DRDB       Database option APS mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED
DRDB       PDB's version does not match CDB's version: PDB's version 12.2.0.1.0. CDB's version 19.0.0.0.0.                                                        RESOLVED
DRDB       PDB plugged in is a non-CDB, requires noncdb_to_pdb.sql be run.                                                                                        PENDING
DRDB       Database option CATALOG mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                  RESOLVED
DRDB       CDB parameter compatible mismatch: Previous '12.2.0' Current '19.0.0'                                                                                  RESOLVED
DRDB       Database option CATJAVA mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                  RESOLVED
DRDB       CDB parameter db_flashback_retention_target mismatch: Previous 2880 Current 1440                                                                       RESOLVED
DRDB       CDB parameter pga_aggregate_target mismatch: Previous 1601M Current 512M                                                                               RESOLVED
DRDB       Database option CATPROC mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                  RESOLVED
DRDB       CDB parameter optimizer_dynamic_sampling mismatch: Previous 0 Current 2                                                                                RESOLVED

NAME       MESSAGE                                                                                                                                                STATUS
---------- ------------------------------------------------------------------------------------------------------------------------------------------------------ ----------
DRDB       Database option CONTEXT mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                  RESOLVED
DRDB       CDB parameter optimizer_adaptive_reporting_only mismatch: Previous TRUE Current FALSE                                                                  RESOLVED
DRDB       Database option DV mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                       RESOLVED
DRDB       Database option JAVAVM mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                   RESOLVED
DRDB       CDB parameter optimizer_adaptive_plans mismatch: Previous FALSE Current TRUE                                                                           RESOLVED
DRDB       Database option OLS mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED
DRDB       Database option ORDIM mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                    RESOLVED
DRDB       Database option OWM mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED
DRDB       Database option RAC mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED
DRDB       Database option SDO mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED
DRDB       Database option XDB mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED

NAME       MESSAGE                                                                                                                                                STATUS
---------- ------------------------------------------------------------------------------------------------------------------------------------------------------ ----------
DRDB       Database option XML mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED
DRDB       Database option XOQ mismatch: PDB installed version 12.2.0.1.0. CDB installed version 19.0.0.0.0.                                                      RESOLVED
PDB$SEED   '19.27.0.0.0 Release_Update 2504061311' is installed in the CDB but no release updates are installed in the PDB                                        RESOLVED

25 rows selected.
----------해당 세션은 그대로 두고 새로운 세션을 하나 열어서 cptdb 로 접속 (종료)-------------

 

--위에서 noncdb_to_pdb.sql 스크립트를 수행이 완료된 해당 쉘을 수행 시킨 ssh 접속 창에서 아래의 명령을 수행

SQL> show con_name

CON_NAME
------------------------------
DRDB

 

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         5 DRDB                           MOUNTED

 

SQL> alter pluggable database DRDB open;

Pluggable database altered.

 

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         5 DRDB                           READ WRITE NO


set linesize 300
col name for a10
col message for a150
col status for a10
SELECT A.NAME, A.MESSAGE, A.STATUS
--, A.*
  FROM PDB_PLUG_IN_VIOLATIONS A
where status <> 'RESOLVED'
ORDER BY A.NAME, A.LINE;

NAME       MESSAGE                                                                                                                                                STATUS
---------- ------------------------------------------------------------------------------------------------------------------------------------------------------ ----------
DRDB       Character set mismatch: PDB character set KO16MSWIN949. CDB character set AL32UTF8.                                                                    PENDING

1 row selected.

 

4-11. DB 업그레이드 후 후속 작업

 

[[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
[CDRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/19c/db_1/bin/sqlplus

[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 10:20:47 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

 

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

 

SQL> alter session set container=DRDB;

Session altered.

 

SQL> select count(*) as cnt from dba_objects where status = 'INVALID';

       CNT
----------
         4

 

SQL>

col object_name for a20
col object_type for a10
col STATUS for a10
select object_name, object_type, status from dba_objects where status = 'INVALID';

OBJECT_NAME          OBJECT_TYP STATUS
-------------------- ---------- ----------
SECURE_DML           PROCEDURE  INVALID
SECURE_EMPLOYEES     TRIGGER    INVALID
ADD_JOB_HISTORY      PROCEDURE  INVALID
UPDATE_JOB_HISTORY   TRIGGER    INVALID

 


SQL>

set linesize 300
col object_name for a20
col ddl for a50
col object_type for a20
SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('PACKAGE')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER PACKAGE'|| ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE BODY;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('PACKAGE BODY')
         AND STATUS = 'INVALID'
 )
UNION ALL
SELECT *
  FROM
     (
         SELECT OBJECT_NAME
              , STATUS
              , OBJECT_TYPE
              , LAST_DDL_TIME
              , 'ALTER PUBLIC ' ||  OBJECT_TYPE || ' ' || '"' ||  OBJECT_NAME || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
          WHERE 1=1
            AND OBJECT_TYPE IN ('SYNONYM') AND OWNER = 'PUBLIC'
            AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('TYPE')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER TYPE'  || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE BODY;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('TYPE BODY')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('VIEW')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('PROCEDURE')
         AND STATUS = 'INVALID'
 )
 UNION ALL
 SELECT *
 FROM
 (
        SELECT OBJECT_NAME
             , STATUS
             , OBJECT_TYPE
             , LAST_DDL_TIME
             , 'ALTER ' || OBJECT_TYPE || ' ' || OWNER || '.' || '"'|| OBJECT_NAME  || '"' || ' COMPILE;' AS DDL
          FROM DBA_OBJECTS
         WHERE 1=1
           AND OBJECT_TYPE IN ('TRIGGER')
         AND STATUS = 'INVALID'
 )
 ORDER BY 3
;

--> 이 sql문을 실행하면 오브젝트를 컴파일 할 수있는 스크립트를 출력해줌

 

OBJECT_NAME          STATUS     OBJECT_TYPE          LAST_DDL_TIME       DDL
-------------------- ---------- -------------------- ------------------- --------------------------------------------------
SECURE_DML           INVALID    PROCEDURE            2025-03-19 23:07:03 ALTER PROCEDURE HR."SECURE_DML" COMPILE;
ADD_JOB_HISTORY      INVALID    PROCEDURE            2025-03-19 23:07:04 ALTER PROCEDURE HR."ADD_JOB_HISTORY" COMPILE;
SECURE_EMPLOYEES     INVALID    TRIGGER              2025-03-19 23:07:04 ALTER TRIGGER HR."SECURE_EMPLOYEES" COMPILE;
UPDATE_JOB_HISTORY   INVALID    TRIGGER              2025-03-19 23:07:04 ALTER TRIGGER HR."UPDATE_JOB_HISTORY" COMPILE;


SQL> ALTER PROCEDURE HR."SECURE_DML" COMPILE;

Procedure altered.

SQL> ALTER PROCEDURE HR."ADD_JOB_HISTORY" COMPILE;

Procedure altered.

SQL> ALTER TRIGGER HR."SECURE_EMPLOYEES" COMPILE;

Trigger altered.

SQL> ALTER TRIGGER HR."UPDATE_JOB_HISTORY" COMPILE;

Trigger altered.

 

SQL> select count(*) as cnt from dba_objects where status = 'INVALID';

       CNT
----------
         0

 

SQL> @/u01/app/oracle/cfgtoollogs/DRDB/preupgrade/postupgrade_fixups.sql

Session altered.


PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.


Package created.

No errors.

Package body created.


PL/SQL procedure successfully completed.

No errors.

 

 

Package created.

No errors.

Package body created.

No errors.
WARNING - This script was generated for database DRDB.
Executing Oracle POST-Upgrade Fixup Script

Auto-Generated by:       Oracle Preupgrade Script
                         Version: 19.0.0.0.0 Build: 13
Generated on:            2025-07-23 17:29:10

For Source Database:     DRDB
Source Database Version: 12.2.0.1.0
For Upgrade to Version:  19.0.0.0.0

Preup                             Preupgrade
Action                            Issue Is
Number  Preupgrade Check Name     Remedied    Further DBA Action
------  ------------------------  ----------  --------------------------------
    9.  old_time_zones_exist      NO          Manual fixup recommended.
   10.  dir_symlinks              YES         None.
   11.  post_dictionary           YES         None.
   12.  post_fixed_objects        NO          Informational only.
                                              Further action is optional.

The fixup scripts have been run and resolved what they can. However,
there are still issues originally identified by the preupgrade that
have not been remedied and are still present in the database.
Depending on the severity of the specific issue, and the nature of
the issue itself, that could mean that your database upgrade is not
fully complete.  To resolve the outstanding issues, start by reviewing
the postupgrade_fixups.sql and searching it for the name of
the failed CHECK NAME or Preupgrade Action Number listed above.
There you will find the original corresponding diagnostic message
from the preupgrade which explains in more detail what still needs
to be done.

PL/SQL procedure successfully completed.

Session altered.

 

SQL> EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

 

--이건 할필요 없음 이미 했음(POST-Upgrade Fixup Script에서 실행완료한 상태라고 나옴)
--SQL> exec dbms_stats.gather_dictionary_stats;

 

SQL> quit

 

--지금부터 타임존 업그레이드할 것임 (해당 타임존 업그레이드 과정은 진행 중 진통이 있었음 추후 테스트 시 더 자세히 볼것)
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH

[CDRDB1:oracle@rdb01d][/home/oracle]$ srvctl stop database -db cdrdb


[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'


[CDRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/19c/db_1/bin/sqlplus

[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 10:58:30 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.

Connected to an idle instance.

 

SQL> startup
ORACLE instance started.

Total System Global Area 1610612032 bytes
Fixed Size                  9178432 bytes
Variable Size             939524096 bytes
Database Buffers          654311424 bytes
Redo Buffers                7598080 bytes
Database mounted.
Database opened.

 

--CDB 레벨까지 타임존을 업그레이드 할 것음

SQL> alter system set cluster_database=false scope=spfile;

System altered.

 

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

 

SQL> startup
ORACLE instance started.

Total System Global Area 1610612032 bytes
Fixed Size                  9178432 bytes
Variable Size             939524096 bytes
Database Buffers          654311424 bytes
Redo Buffers                7598080 bytes
Database mounted.
Database opened.

 

SQL> show parameter cluster_database

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cluster_database                     boolean     FALSE
cluster_database_instances           integer     1


SQL> show con_name;

CON_NAME
------------------------------
CDB$ROOT

 

SQL> set linesize 300
SQL> SELECT * FROM v$timezone_file;

FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_32.dat              32          0

 

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            MOUNTED
         5 DRDB                          
MOUNTED

  
SQL> alter pluggable database PDB open;
  
SQL> alter session set container=PDB;

Session altered.

 

SQL> SELECT * FROM v$timezone_file;

FILENAME                                                        VERSION     CON_ID
------------------------------------------------------------ ---------- ----------
timezlrg_32.dat                                                      32          0

 

SQL> alter session set container=CDB$ROOT;

Session altered.
  
SQL> alter pluggable database DRDB open; 
Pluggable database altered.


SQL> alter session set container=DRDB;

Session altered.

 

SQL> SELECT * FROM v$timezone_file;

FILENAME                                                        VERSION     CON_ID
------------------------------------------------------------ ---------- ----------
timezlrg_26.dat                                                      26          0

--> 이건 12cr2를 plugin한 다음 업그레이드한 원래 noncdb가 pdb가 된 pdb이므로 12cr2의 타임존으로 되어 있음

 

SQL> alter session set container=cdb$root;

Session altered.

 

SQL> SELECT DBMS_DST.get_latest_timezone_version FROM dual;

GET_LATEST_TIMEZONE_VERSION
---------------------------
                         44
--> 결국 cdb$root, pdb, drdb 모두 44로 업그레이드해야함


DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  l_tz_version := DBMS_DST.get_latest_timezone_version; 
  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_prepare(l_tz_version);
END;
/

PL/SQL procedure successfully completed.


SQL>
COLUMN property_name FORMAT A30
COLUMN property_value FORMAT A20

SELECT property_name, property_value
FROM   database_properties
WHERE  property_name LIKE 'DST_%'
ORDER BY property_name;

PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         32
DST_SECONDARY_TT_VERSION       44
DST_UPGRADE_STATE              PREPARE

 

SQL> TRUNCATE TABLE sys.dst$affected_tables;

Table truncated.

 

SQL> TRUNCATE TABLE sys.dst$error_table;

Table truncated.

 

SQL> EXEC DBMS_DST.find_affected_tables;

PL/SQL procedure successfully completed.

 

SQL> SELECT * FROM sys.dst$affected_tables;

no rows selected

 

SQL> SELECT * FROM sys.dst$error_table;

no rows selected


SQL> EXEC DBMS_DST.end_prepare;

PL/SQL procedure successfully completed.

SQL> quit

 

-- 스크립트 하나를 생성
[CDRDB1:oracle@rdb01d][/home/oracle]$ vi /tmp/upgrade_tzf.sql
[CDRDB1:oracle@rdb01d][/home/oracle]$ cat /tmp/upgrade_tzf.sql
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;

SET SERVEROUTPUT ON
DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  SELECT DBMS_DST.get_latest_timezone_version
  INTO   l_tz_version
  FROM   dual;

  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_upgrade(l_tz_version);
END;
/

 

[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[CDRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/19c/db_1/bin/sqlplus

[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO
         5 DRDB                           READ WRITE NO

--> 다 open 된 상태인지 확인해야함

 

[CDRDB1:oracle@rdb01d][/home/oracle]$ echo $ORACLE_HOME
/u01/app/oracle/product/19c/db_1

 

--cdb$root만 업그레이드

[CDRDB1:oracle@rdb01d][/home/oracle]$
$ORACLE_HOME/perl/bin/perl \
    -I$ORACLE_HOME/perl/lib \
    -I$ORACLE_HOME/rdbms/admin \
    $ORACLE_HOME/rdbms/admin/catcon.pl \
    -l /tmp/ \
    -b upgrade_tzf \
    -c 'CDB$ROOT' \
    /tmp/upgrade_tzf.sql

 

--cdb$root를 제외하고 모두 업그레이드

[CDRDB1:oracle@rdb01d][/home/oracle]$ 
$ORACLE_HOME/perl/bin/perl \
    -I$ORACLE_HOME/perl/lib \
    -I$ORACLE_HOME/rdbms/admin \
    $ORACLE_HOME/rdbms/admin/catcon.pl \
    -l /tmp/ \
    -b upgrade_tzf \
    -C 'CDB$ROOT' \
    /tmp/upgrade_tzf.sql


[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export ORACLE_SID=CDRDB1
[CDRDB1:oracle@rdb01d][/home/oracle]$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'

[CDRDB1:oracle@rdb01d][/home/oracle]$ which sqlplus
/u01/app/oracle/product/19c/db_1/bin/sqlplus

[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

 

SQL> SELECT * FROM v$timezone_file;

FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_44.dat              44          0

 

SQL> alter session set container=PDB;

Session altered.

 

SQL> SELECT * FROM v$timezone_file;

FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_44.dat              44          0

 

SQL> alter session set container=DRDB;

Session altered.

SQL> SELECT * FROM v$timezone_file;

FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_44.dat              44          0

 

SQL> alter session set container=CDB$ROOT;

Session altered.

 

SQL> alter system set cluster_database=true scope=spfile;

System altered.

 

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

 

SQL> startup
ORACLE instance started.

Total System Global Area 1610612032 bytes
Fixed Size                  9178432 bytes
Variable Size             939524096 bytes
Database Buffers          654311424 bytes
Redo Buffers                7598080 bytes
Database mounted.
Database opened.


SQL> alter pluggable database DRDB open;


SQL> alter session set container=DRDB;

SQL> @/u01/app/oracle/cfgtoollogs/DRDB/preupgrade/postupgrade_fixups.sql

Session altered.


PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.


Package created.

No errors.

Package body created.


PL/SQL procedure successfully completed.

No errors.

 

 

Package created.

No errors.

Package body created.

No errors.
WARNING - This script was generated for database DRDB.
Executing Oracle POST-Upgrade Fixup Script

Auto-Generated by:       Oracle Preupgrade Script
                         Version: 19.0.0.0.0 Build: 13
Generated on:            2025-07-23 17:29:10

For Source Database:     DRDB
Source Database Version: 12.2.0.1.0
For Upgrade to Version:  19.0.0.0.0

Preup                             Preupgrade
Action                            Issue Is
Number  Preupgrade Check Name     Remedied    Further DBA Action
------  ------------------------  ----------  --------------------------------
    9.  old_time_zones_exist      YES         None.
   10.  dir_symlinks              YES         None.
   11.  post_dictionary           YES         None.
   12.  post_fixed_objects        NO          Informational only.
                                              Further action is optional.

The fixup scripts have been run and resolved what they can. However,
there are still issues originally identified by the preupgrade that
have not been remedied and are still present in the database.
Depending on the severity of the specific issue, and the nature of
the issue itself, that could mean that your database upgrade is not
fully complete.  To resolve the outstanding issues, start by reviewing
the postupgrade_fixups.sql and searching it for the name of
the failed CHECK NAME or Preupgrade Action Number listed above.
There you will find the original corresponding diagnostic message
from the preupgrade which explains in more detail what still needs
to be done.

PL/SQL procedure successfully completed.


Session altered.

 

SQL> alter session set container=DRDB;

SQL> @/u01/app/oracle/product/19c/db_1/rdbms/admin/utlusts.sql TEXT

Oracle Database Release 19 Post-Upgrade Status Tool    07-26-2025 12:10:4
Container Database: CDRDB
[CON_ID: 5 => DRDB]

Component                               Current         Full     Elapsed Time
Name                                    Status          Version  HH:MM:SS

Oracle Server                             VALID     19.27.0.0.0  00:19:20
JServer JAVA Virtual Machine              VALID     19.27.0.0.0  00:02:02
Oracle XDK                                VALID     19.27.0.0.0  00:02:20
Oracle Database Java Packages             VALID     19.27.0.0.0  00:00:31
OLAP Analytic Workspace                   VALID     19.27.0.0.0  00:00:11
Oracle Label Security                     VALID     19.27.0.0.0  00:00:22
Oracle Database Vault                     VALID     19.27.0.0.0  00:00:59
Oracle Text                               VALID     19.27.0.0.0  00:01:07
Oracle Workspace Manager                  VALID     19.27.0.0.0  00:00:59
Oracle Real Application Clusters          VALID     19.27.0.0.0  00:00:00
Oracle XML Database                       VALID     19.27.0.0.0  00:01:47
Oracle Multimedia                         VALID     19.27.0.0.0  00:03:10
Spatial                                   VALID     19.27.0.0.0  00:10:13
Oracle OLAP API                           VALID     19.27.0.0.0  00:00:30
Datapatch                                                        00:01:07
Final Actions                                                    00:01:16
Post Upgrade                                                     00:00:00
Post Compile                                                     00:05:25

Total Upgrade Time: 00:50:27 [CON_ID: 5 => DRDB]

Database time zone version is 44. It meets current release needs.

 

SQL> alter session set container=DRDB;


SQL> @/u01/app/oracle/product/19c/db_1/rdbms/admin/catuppst.sql
TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP DBRESTART              2025-07-26 12:13:22
DBUA_TIMESTAMP DBRESTART     FINISHED 2025-07-26 12:13:22  Container=DRDB Id=5
DBUA_TIMESTAMP DBRESTART         NONE 2025-07-26 12:13:22


TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DBUA_TIMESTAMP CATUPPST       STARTED 2025-07-26 12:13:22 Container=DRDB Id=5

TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP POSTUP_BGN             2025-07-26 12:13:22
DBUA_TIMESTAMP POSTUP_BGN    FINISHED 2025-07-26 12:13:22  Container=DRDB Id=5
DBUA_TIMESTAMP POSTUP_BGN        NONE 2025-07-26 12:13:22


TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP CATREQ_BGN             2025-07-26 12:13:22
DBUA_TIMESTAMP CATREQ_BGN    FINISHED 2025-07-26 12:13:22  Container=DRDB Id=5
DBUA_TIMESTAMP CATREQ_BGN        NONE 2025-07-26 12:13:22

sPrvVersion = 12.2.0.1.0 nPrevMajorVer = 12
sRetFunc = ?/rdbms/admin/catupshd.sql
catrequtlmg: utlmmig.sql (bootstrap objects migration) not called
catrequtlmg: Gathering statistics not required returning

TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP CATREQ_END             2025-07-26 12:13:22
DBUA_TIMESTAMP CATREQ_END    FINISHED 2025-07-26 12:13:22  Container=DRDB Id=5
DBUA_TIMESTAMP CATREQ_END        NONE 2025-07-26 12:13:22

catuppst: Dropping library DBMS_DDL_INTERNAL_LIB
catuppst: Dropping view _CURRENT_EDITION_OBJ_MIG
catuppst: Dropping view _CURRENT_EDITION_STUB_MIG
catuppst: Dropping view _ACTUAL_EDITION_OBJ_MIG
catuppst: Dropping view DBA_PART_KEY_COLUMNS_V$_MIG
catuppst: Dropping view DBA_SUBPART_KEY_COLUMNS_V$_MIG
catuppst: Dropping table OBJ$MIG
catuppst: Dropping table USER$MIG
catuppst: Dropping table COL$MIG
catuppst: Dropping table CLU$MIG
catuppst: Dropping table CON$MIG
catuppst: Dropping table BOOTSTRAP$MIG
catuppst: Dropping table TAB$MIG
catuppst: Dropping table TS$MIG
catuppst: Dropping table IND$MIG
catuppst: Dropping table ICOL$MIG
catuppst: Dropping table LOB$MIG
catuppst: Dropping table COLTYPE$MIG
catuppst: Dropping table SUBCOLTYPE$MIG
catuppst: Dropping table NTAB$MIG
catuppst: Dropping table REFCON$MIG
catuppst: Dropping table OPQTYPE$MIG
catuppst: Dropping table ICOLDEP$MIG
catuppst: Dropping table VIEWTRCOL$MIG
catuppst: Dropping table ATTRCOL$MIG
catuppst: Dropping table TYPE_MISC$MIG
catuppst: Dropping table LIBRARY$MIG
catuppst: Dropping table ASSEMBLY$MIG
catuppst: Dropping table TSQ$MIG
catuppst: Dropping table FET$MIG

TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP POSTUP_END             2025-07-26 12:13:23
DBUA_TIMESTAMP POSTUP_END    FINISHED 2025-07-26 12:13:23  Container=DRDB Id=5
DBUA_TIMESTAMP POSTUP_END        NONE 2025-07-26 12:13:23


TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP CATUPPST               2025-07-26 12:13:23
DBUA_TIMESTAMP CATUPPST      FINISHED 2025-07-26 12:13:23  Container=DRDB Id=5
DBUA_TIMESTAMP CATUPPST          NONE 2025-07-26 12:13:23

 

--> 2번 노드로 올려줌
[CDRDB1:oracle@rdb01d][/home/oracle]$ srvctl start instance -db cdrdb -n rdb02d

 

4-12. 업그레이드한 신규 db로 사용하기

 

--RAC 1번 노드
[root@rdb01d][/root]$ vi ~root/.bash_profile
[root@rdb01d][/root]$ cat ~root/.bash_profile | grep -i 19c
export GRID_HOME=/u01/app/19c/grid

export DB_HOME=$ORACLE_BASE/product/19c/db_1


[root@rdb01d][/root]$ vi ~grid/.bash_profile
[root@rdb01d][/root]$ cat ~grid/.bash_profile | grep 19c
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1

 

[root@rdb01d][/root]$ vi ~oracle/.bash_profile
[root@rdb01d][/root]$ cat ~oracle/.bash_profile | grep -i 19c
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1

 

[root@rdb01d][/root]$ vi ~oracle/.bash_profile
[root@rdb01d][/root]$ cat ~oracle/.bash_profile | grep -i cdrdb
export ORACLE_UNQNAME=CDRDB
export ORACLE_UNQNAME_LOWER=cdrdb
export ORACLE_DBNAME=CDRDB
export ORACLE_DBNAME_LOWER=cdrdb
export ORACLE_SID=CDRDB1
export ORACLE_SID_LOWER=cdrdb1

 

[CDRDB1:oracle@rdb01d][/home/oracle]$ vi /u01/app/oracle/product/19c/db_1/network/admin/tnsnames.ora
[CDRDB1:oracle@rdb01d][/home/oracle]$ cat /u01/app/oracle/product/19c/db_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19c/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

CDRDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = drdb2-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CDRDB)
    )
  )

CDRDB1_DRDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.31)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DRDB)
    )
  )

--> pdb인 drdb를 추가!

 

[CDRDB1:oracle@rdb01d][/home/oracle]$ vi .bash_profile
[CDRDB1:oracle@rdb01d][/home/oracle]$ cat .bash_profile | grep alias | grep ssd
alias ssd='rlwrap sqlplus
sys/oracle@CDRDB1_DRDB as sysdba'


--RAC 2번 노드
[root@rdb02d][/root]$ vi ~root/.bash_profile
[root@rdb02d][/root]$ cat ~root/.bash_profile | grep -i 19c
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1


[root@rdb02d][/root]$ vi ~grid/.bash_profile
[root@rdb02d][/root]$ cat ~grid/.bash_profile | grep 19c
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1

 

[root@rdb02d][/root]$ vi ~oracle/.bash_profile
[root@rdb02d][/root]$ cat ~oracle/.bash_profile | grep -i 19c
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1

 

[root@rdb02d][/root]$ vi ~oracle/.bash_profile
[root@rdb02d][/root]$ cat ~oracle/.bash_profile | grep -i cdrdb
export ORACLE_UNQNAME=CDRDB
export ORACLE_UNQNAME_LOWER=cdrdb
export ORACLE_DBNAME=CDRDB
export ORACLE_DBNAME_LOWER=cdrdb
export ORACLE_SID=CDRDB2
export ORACLE_SID_LOWER=cdrdb2

 

[CDRDB2:oracle@rdb02d][/home/oracle]$ vi /u01/app/oracle/product/19c/db_1/network/admin/tnsnames.ora
[CDRDB2:oracle@rdb02d][/home/oracle]$ cat /u01/app/oracle/product/19c/db_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19c/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

CDRDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = drdb2-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CDRDB)
    )
  )

CDRDB2_DRDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.32)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DRDB)
    )
  )

--> pdb인 drdb를 추가!


[CDRDB1:oracle@rdb02d][/home/oracle]$ vi .bash_profile
[CDRDB1:oracle@rdb02d][/home/oracle]$ cat .bash_profile | grep alias | grep ssd
alias ssd='rlwrap sqlplus
sys/oracle@CDRDB1_DRDB as sysdba'

[CDRDB2:oracle@rdb02d][/u01/app/oracle/product/19c/db_1/network/admin]$ /u01/app/oracle/product/12c/db_1/bin/srvctl remove database -db drdb
Remove the database drdb? (y/[n]) y


[CPTDB:oracle@tdb01p][/home/oracle]$ csrt
ora.cdrdb.db
      1        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _1,STABLE


--RAC1번
[root@rdb01d][/root]$ mv /u01/app/oracle/product/19c/db_1/sqlplus/admin/glogin.sql /u01/app/oracle/product/19c/db_1/sqlplus/admin/glogin.sql.bak
[root@rdb01d][/root]$ cp -p /u01/app/oracle/product/12c/db_1/sqlplus/admin/glogin.sql.bak /u01/app/oracle/product/19c/db_1/sqlplus/admin/glogin.sql


--RAC2번
[root@rdb02d][/root]$ mv /u01/app/oracle/product/19c/db_1/sqlplus/admin/glogin.sql /u01/app/oracle/product/19c/db_1/sqlplus/admin/glogin.sql.bak
[root@rdb02d][/root]$ cp -p /u01/app/oracle/product/12c/db_1/sqlplus/admin/glogin.sql.bak /u01/app/oracle/product/19c/db_1/sqlplus/admin/glogin.sql

 

-- 기존에 백업 해둔 파라미터 파일
[CDRDB1:oracle@rdb01d][/home/oracle]$ cat /tmp/backup_before_upgrade/pfile_DRDB.ora
DRDB2.__data_transfer_cache_size=0
DRDB1.__data_transfer_cache_size=0
DRDB2.__db_cache_size=3774873600
DRDB1.__db_cache_size=3774873600
DRDB2.__inmemory_ext_roarea=0
DRDB1.__inmemory_ext_roarea=0
DRDB2.__inmemory_ext_rwarea=0
DRDB1.__inmemory_ext_rwarea=0
DRDB2.__java_pool_size=16777216
DRDB1.__java_pool_size=16777216
DRDB2.__large_pool_size=33554432
DRDB1.__large_pool_size=33554432
DRDB1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
DRDB2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
DRDB2.__pga_aggregate_target=1694498816
DRDB1.__pga_aggregate_target=1694498816
DRDB2.__sga_target=5033164800
DRDB1.__sga_target=5033164800
DRDB2.__shared_io_pool_size=268435456
DRDB1.__shared_io_pool_size=268435456
DRDB2.__shared_pool_size=922746880
DRDB1.__shared_pool_size=922746880
DRDB2.__streams_pool_size=0
DRDB1.__streams_pool_size=0
*.archive_lag_target=0
*.audit_file_dest='/u01/app/oracle/admin/DRDB/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='12.2.0'
*.control_files='+FRA1/DRDB/CONTROLFILE/current.256.1196204797','+DATA1/DRDB/CONTROLFILE/current.261.1196204797'
*.data_guard_sync_latency=0
*.db_block_size=8192
*.db_create_file_dest='+DATA1'
*.db_create_online_log_dest_1='+FRA1'
*.db_create_online_log_dest_2='+DATA1'
*.db_flashback_retention_target=2880
*.db_name='DRDB'
*.db_recovery_file_dest='+FRA1'
*.db_recovery_file_dest_size=26492m
*.dg_broker_start=FALSE
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DRDBXDB)'
family:dw_helper.instance_mode='read-only'
DRDB1.instance_number=1
DRDB2.instance_number=2
*.local_listener='-oraagent-dummy-'
*.log_archive_dest_1='LOCATION=+FRA1 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DRDB'
*.log_archive_dest_2=''
*.log_archive_dest_state_2='RESET'
DRDB1.log_archive_format='%t_%s_%r.dbf'
DRDB2.log_archive_format='%t_%s_%r.dbf'
*.log_archive_min_succeed_dest=1
DRDB1.log_archive_trace=255
DRDB2.log_archive_trace=255
*.nls_language='AMERICAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.optimizer_adaptive_plans=FALSE
*.optimizer_adaptive_reporting_only=TRUE
*.optimizer_adaptive_statistics=FALSE
*.optimizer_dynamic_sampling=0
*.pga_aggregate_target=1601m
*.processes=320
*.remote_login_passwordfile='exclusive'
*.sga_target=4800m
*.standby_file_management='MANUAL'
DRDB2.thread=2
DRDB1.thread=1
DRDB2.undo_tablespace='UNDOTBS2'
DRDB1.undo_tablespace='UNDOTBS1'


--> 현재 업그레이드한 19c cdb의 파라미터 파일 백업
[CDRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as sysdba"'
[CDRDB1:oracle@rdb01d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 12:41:19 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> create pfile from spfile;

File created.

[CDRDB1:oracle@rdb01d][/home/oracle]$ cp /u01/app/oracle/product/19c/db_1/dbs/initCDRDB1.ora /u01/app/oracle/product/19c/db_1/dbs/initCDRDB1.ora.bak


[CPTDB:oracle@tdb01p][/u01/app/oracle/product/19c/db_1/dbs]$ cat initCPTDB.ora.bak
[CDRDB1:oracle@rdb01d][/u01/app/oracle/product/19c/db_1/dbs]$ cat /u01/app/oracle/product/19c/db_1/dbs/initCDRDB1.ora.bak
CDRDB1.__data_transfer_cache_size=0
CDRDB2.__data_transfer_cache_size=0
CDRDB1.__db_cache_size=587202560
CDRDB2.__db_cache_size=905969664
CDRDB1.__inmemory_ext_roarea=0
CDRDB2.__inmemory_ext_roarea=0
CDRDB1.__inmemory_ext_rwarea=0
CDRDB2.__inmemory_ext_rwarea=0
CDRDB1.__java_pool_size=100663296
CDRDB2.__java_pool_size=0
CDRDB1.__large_pool_size=16777216
CDRDB2.__large_pool_size=16777216
CDRDB1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
CDRDB2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
CDRDB1.__pga_aggregate_target=536870912
CDRDB2.__pga_aggregate_target=536870912
CDRDB1.__sga_target=1610612736
CDRDB2.__sga_target=1610612736
CDRDB1.__shared_io_pool_size=67108864
CDRDB2.__shared_io_pool_size=83886080
CDRDB1.__shared_pool_size=822083584
CDRDB2.__shared_pool_size=587202560
CDRDB1.__streams_pool_size=0
CDRDB2.__streams_pool_size=0
CDRDB1.__unified_pga_pool_size=0
CDRDB2.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/CDRDB/adump'
*.audit_trail='db'
*.cluster_database=TRUE
*.compatible='19.0.0'
*.control_files='+DATA1/CDRDB/CONTROLFILE/current.282.1207427361','+FRA1/CDRDB/CONTROLFILE/current.267.1207427361'
*.db_block_size=8192
*.db_create_file_dest='+FRA1'
*.db_create_online_log_dest_1='+DATA1'
*.db_create_online_log_dest_2='+FRA1'
*.db_name='CDRDB'
*.db_recovery_file_dest='+FRA1'
*.db_recovery_file_dest_size=10240m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=CDRDBXDB)'
*.enable_pluggable_database=true
family:dw_helper.instance_mode='read-only'
CDRDB1.instance_number=1
CDRDB2.instance_number=2
*.local_listener='-oraagent-dummy-'
*.nls_language='AMERICAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.pga_aggregate_target=512m
*.processes=320
*.remote_login_passwordfile='exclusive'
*.sga_target=1536m
CDRDB2.thread=2
CDRDB1.thread=1
CDRDB2.undo_tablespace='UNDOTBS2'
CDRDB1.undo_tablespace='UNDOTBS1'

 

--> 업그레이드 전 과 업그레이드 후의 파라미터 파일을 참고하여 신규 파라미터 파일 생성

[CDRDB1:oracle@rdb01d][/u01/app/oracle/product/19c/db_1/dbs]$ vi /u01/app/oracle/product/19c/db_1/dbs/initCDRDB1.ora
[CDRDB1:oracle@rdb01d][/u01/app/oracle/product/19c/db_1/dbs]$ cat /u01/app/oracle/product/19c/db_1/dbs/initCDRDB1.ora
*.audit_file_dest='/u01/app/oracle/admin/CDRDB/adump'
*.audit_trail='db'
*.cluster_database=TRUE
*.compatible='19.0.0'
*.control_files='+DATA1/CDRDB/CONTROLFILE/current.282.1207427361','+FRA1/CDRDB/CONTROLFILE/current.267.1207427361'
*.db_block_size=8192
*.db_create_file_dest='+FRA1'
*.db_create_online_log_dest_1='+DATA1'
*.db_create_online_log_dest_2='+FRA1'
*.db_name='CDRDB'
*.db_recovery_file_dest='+FRA1'
*.db_recovery_file_dest_size=10240m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=CDRDBXDB)'
*.enable_pluggable_database=true
family:dw_helper.instance_mode='read-only'
CDRDB1.instance_number=1
CDRDB2.instance_number=2
*.local_listener='-oraagent-dummy-'
*.nls_language='AMERICAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.pga_aggregate_target=1601m
*.processes=320
*.remote_login_passwordfile='exclusive'
*.sga_target=4800m
CDRDB2.thread=2
CDRDB1.thread=1
CDRDB2.undo_tablespace='UNDOTBS2'
CDRDB1.undo_tablespace='UNDOTBS1'

 

--우선 2번 노드부터 내림
[CDRDB2:oracle@rdb02d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 12:48:05 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

[2025-07-26:12:57:29][rdb02d]<SYS@CDRDB2> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.


[CDRDB1:oracle@rdb01d][/u01/app/oracle/product/19c/db_1/dbs]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 12:47:44 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> startup nomount pfile='/u01/app/oracle/product/19c/db_1/dbs/initCDRDB1.ora';
ORACLE instance started.

Total System Global Area 5033161624 bytes
Fixed Size                  9188248 bytes
Variable Size             973078528 bytes
Database Buffers         4043309056 bytes
Redo Buffers                7585792 bytes

 

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> alter database mount;

Database altered.

 

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> alter database open;

Database altered.

 

-- 파라미터 파일을 spfile로 생성
[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> create spfile='+DATA1' from pfile='/u01/app/oracle/product/19c/db_1/dbs/initCDRDB1.ora';

File created.

 

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string

 

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

 

SQL> startup
ORACLE instance started.

Total System Global Area 5033161624 bytes
Fixed Size                  9188248 bytes
Variable Size             973078528 bytes
Database Buffers         4043309056 bytes
Redo Buffers                7585792 bytes
Database mounted.

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            MOUNTED
         5 DRDB                           MOUNTED


[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> alter pluggable database DRDB open;

Pluggable database altered.

 

[2025-07-26:12:57:29][rdb01d]<SYS@CDRDB1> alter pluggable database DRDB save state;

--> 앞으로 pdb인 drdb가 자동으로 open되도록 함

 

--> rac2번 노드로 기동시킴

[CDRDB2:oracle@rdb02d][/home/oracle]$ ss

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 26 12:58:45 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.

Connected to an idle instance.

[2025-07-26 12:58:46][rdb02d]<SYS@CDRDB2> startup


5. 기존 디비로 원상복구 시키기

 

[+ASM1:grid@rdb01d][/home/grid]$ which srvctl
/u01/app/19c/grid/bin/srvctl

 

-- 우선 업그레이드 완료된 19c db를 내림

[+ASM1:grid@rdb01d][/home/grid]$ srvctl stop database -db cdrdb

 

[+ASM1:grid@rdb01d][/home/grid]$ asmcmd ls -l +DATA1/DRDB/PARAMETERFILE
Type           Redund  Striped  Time             Sys  Name
PARAMETERFILE  UNPROT  COARSE   JUL 25 22:00:00  Y    spfi
le.268.1198106043

[+ASM1:grid@rdb01d][/home/grid]$ asmcmd ls -l +DATA1/DRDB/PASSWORD
Type      Redund  Striped  Time             Sys  Name
PASSWORD  UNPROT  COARSE   MAR 19 23:00:00  Y    pwddrdb.256.1196204543

 

[CDRDB1:oracle@rdb01d][/home/oracle]$  /u01/app/oracle/product/12c/db_1/bin/srvctl add database -db DRDB \
 -dbname PTDB -oraclehome /u01/app/oracle/product/12c/db_1 \
 -pwfile '+DATA1/DRDB/PASSWORD/pwddrdb.256.1196204543' \
 -spfile '+DATA1/DRDB/PASSWORD/pwddrdb.256.1196204543' \
 -instance DRDB1
 
[+ASM1:grid@rdb01d][/home/grid]$ csrt
ora.drdb.db
      1        OFFLINE OFFLINE                               STABLE
      2        OFFLINE OFFLINE                               STABLE

 

[CDRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/12c/db_1/bin/srvctl add instance -db drdb -i DRDB2 -n rdb02d
[CDRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/12c/db_1/bin/srvctl add instance -db drdb -i DRDB1 -n rdb01d
[CDRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/12c/db_1/bin/srvctl start database -db drdb

ora.drdb.db
      1        ONLINE  ONLINE       rdb02d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rdb01d                   Open,HOME=/u01/app/o
                                                             racle/product/12c/db
                                                             _1,STABLE


[+ASM1:grid@rdb01d][/home/grid]$ lsnrctl status

--> 리스너 확인해서 pc클라이언트 통해서도 붙어볼것

 

6. 기존 디비 삭제 (원상 복구 할일 없는 상황)

 

[CDRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/12c/db_1/bin/srvctl stop database -db drdb
[CDRDB1:oracle@rdb01d][/home/oracle]$ /u01/app/oracle/product/12c/db_1/bin/srvctl remove database -db drdb
Remove the database drdb? (y/[n]) y

 

[CPTDB:oracle@tdb01p][/home/oracle]$ srvctl start database -db cdrdb

[+ASM1:grid@rdb01d][/home/grid]$ asmcmd
ASMCMD [+] > cd DATA1
ASMCMD [+DATA1] > ls
CDRDB/
DRDB/
ASMCMD [+DATA1] > rm -rf DRDB

 

ASMCMD [+DATA1] > cd ..
ASMCMD [+] > cd +FRA1
ASMCMD [+FRA1] > ls
CDRDB/
DRDB/

ASMCMD [+FRA1] > rm -rf DRDB

 

반응형

+ Recent posts