1. 업그레이드 작업

A) preupgrade_fixups 스크립트 수행

preupgrade_fixups 수행
SET ECHO ON;
SET SERVEROUTPUT ON;
@/u01/app/oracle/cfgtoollogs/racdb/preupgrade/preupgrade_fixups.sql
[racdb1:/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 24 10:15:15 2020

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> SET ECHO ON;
SQL> SET SERVEROUTPUT ON;
SQL> @/u01/app/oracle/cfgtoollogs/racdb/preupgrade/preupgrade_fixups.sql
SQL> REM
SQL> REM    Oracle PRE-Upgrade Fixup Script
SQL> REM
SQL> REM    Auto-Generated by:       Oracle Preupgrade Script
SQL> REM                             Version: 19.0.0.0.0 Build: 1
SQL> REM    Generated on:            2020-04-22 15:40:44
SQL> REM
SQL> REM    Source Database:         RACDB
SQL> REM    Source Database Version: 11.2.0.4.0
SQL> REM    For Upgrade to Version:     19.0.0.0.0
SQL> REM
SQL>
SQL> REM
SQL> REM    Setup Environment
SQL> REM
SQL> SET ECHO OFF SERVEROUTPUT ON FORMAT WRAPPED TAB OFF LINESIZE 200;
Executing Oracle PRE-Upgrade Fixup Script

Auto-Generated by:       Oracle Preupgrade Script
                         Version: 19.0.0.0.0 Build: 1
Generated on:            2020-04-22 15:40:44

For Source Database:     RACDB
Source Database Version: 11.2.0.4.0
For Upgrade to Version:  19.0.0.0.0

Preup                             Preupgrade
Action                            Issue Is
Number  Preupgrade Check Name     Remedied    Further DBA Action
------  ------------------------  ----------  --------------------------------
    1.  dictionary_stats          YES         None.
    2.  pre_fixed_objects         YES         None.
    3.  rman_recovery_version     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.


B) 11g 데이터베이스 중지

모든 노드의 11g 인스턴스 중지 (11g 데이터베이스 중지)
shutdown immediate
SQL> select instance_name from v$instance;

INSTANCE_NAME
------------------------------------------------
racdb1

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

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
[racdb2:/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 24 10:20:58 2020

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> select instance_name from v$instance;

INSTANCE_NAME
------------------------------------------------
racdb2

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

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
[root@rac1 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.proxy_advm
               OFFLINE OFFLINE      rac1                     STABLE
               OFFLINE OFFLINE      rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.cvu
      1        ONLINE  ONLINE       rac1                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.racdb.db
      1        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                             ABLE
      2        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                             ABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac1                     STABLE
--------------------------------------------------------------------------------


C) 19c 환경 설정

vi .bash_profile 로 $DB_HOME 경로 변경
export DB_HOME=$ORACLE_BASE/product/19.0.0/db_1
[root@rac1 ~]# cat ~oracle/.bash_profile | grep DB_HOME
export DB_HOME=$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_HOME=$DB_HOME

[root@rac1 ~]# cat .bash_profile | grep DB_HOME
export DB_HOME=$ORACLE_BASE/product/19.0.0/db_1
[root@rac2 ~]# cat ~oracle/.bash_profile | grep DB_HOME
export DB_HOME=$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_HOME=$DB_HOME

[root@rac2 ~]# cat .bash_profile | grep DB_HOME
export DB_HOME=$ORACLE_BASE/product/19.0.0/db_1


1번 노드 재사용 파일 복제 및 패스워드 파일 생성
cp $ORACLE_BASE/product/11.2.0/db_1/network/admin/*.ora $DB_HOME/network/admin/
cp $ORACLE_BASE/product/11.2.0/db_1/dbs/initracdb1.ora $DB_HOME/dbs/
orapwd file=$ORACLE_HOME/dbs/orapwracdb1 force=y format=12
[racdb1:/home/oracle]> cp $ORACLE_BASE/product/11.2.0/db_1/network/admin/*.ora $ORACLE_BASE/product/19.0.0/db_1/network/admin/
cp: cannot stat `/u01/app/oracle/product/11.2.0/db_1/network/admin/*.ora': 그런 파일이나 디렉터리가 없습니다

[racdb1:/home/oracle]> cp $ORACLE_BASE/product/11.2.0/db_1/dbs/initracdb1.ora $ORACLE_BASE/product/19.0.0/db_1/dbs/

[racdb1:/home/oracle]> orapwd file=$ORACLE_HOME/dbs/orapwracdb1 force=y format=12

Enter password for SYS: <SYS 계정 암호 입력>


2번 노드 재사용 파일 복제 및 패스워드 파일 생성
cp $ORACLE_BASE/product/11.2.0/db_1/network/admin/*.ora $DB_HOME/network/admin/
cp $ORACLE_BASE/product/11.2.0/db_1/dbs/initracdb2.ora $DB_HOME/dbs/
orapwd file=$ORACLE_HOME/dbs/orapwracdb2 force=y format=12


[racdb2:/home/oracle]> cp $ORACLE_BASE/product/11.2.0/db_1/network/admin/*.ora $ORACLE_BASE/product/19.0.0/db_1/network/admin/
cp: cannot stat `/u01/app/oracle/product/11.2.0/db_1/network/admin/*.ora': 그런 파일이나 디렉터리가 없습니다

[racdb2:/home/oracle]> cp $ORACLE_BASE/product/11.2.0/db_1/dbs/initracdb2.ora $ORACLE_BASE/product/19.0.0/db_1/dbs/

[racdb2:/home/oracle]> orapwd file=$ORACLE_HOME/dbs/orapwracdb2 force=y format=12

Enter password for SYS: <SYS 계정 암호 입력>


D) 싱글 DB로 전환 및 Upgrade 모드 기동

싱글 DB 전환 후 1번 노드 upgrade 모드로 기동
conn / as sysdba
startup nomount
alter system set cluster_database=false scope=spfile;
startup force upgrade
[racdb1:/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 24 10:23:22 2020
Version 19.7.0.0.0

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

Connected to an idle instance.

SQL> startup nomount
ORACLE instance started.

Total System Global Area 3221222464 bytes
Fixed Size                  8901696 bytes
Variable Size             738197504 bytes
Database Buffers         2466250752 bytes
Redo Buffers                7872512 bytes

SQL> show parameter cluster_database

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
cluster_database                     boolean                           TRUE
cluster_database_instances           integer                           2

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

System altered.

SQL> shutdown abort
ORACLE instance shut down.

SQL> startup upgrade
ORACLE instance started.

Total System Global Area 3221222464 bytes
Fixed Size                  8901696 bytes
Variable Size             738197504 bytes
Database Buffers         2466250752 bytes
Redo Buffers                7872512 bytes
Database mounted.
Database opened.

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.7.0.0.0


E) 업그레이드 수행

dbupgrade 스크립트 실행
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1
$ORACLE_HOME/bin/dbupgrade
[racdb1:/home/oracle]> echo $ORACLE_HOME
/u01/app/oracle/product/19.0.0/db_1

[racdb1:/home/oracle]> $ORACLE_HOME/bin/dbupgrade

Argument list for [/u01/app/oracle/product/19.0.0/db_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in                       c = 0
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 = 0
Priority List Name           L = 0
Upgrade Mode active          M = 0
SQL Process Count            n = 0
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.7.0.0.0DBRU_LINUX.X64_200403]


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

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

Log file directory = [/tmp/cfgtoollogs/upgrade20200424102522]

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

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

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


Number of Cpus        = 2
Database Name         = racdb
DataBase Version      = 11.2.0.4.0
catcon::set_log_file_base_path: ALL catcon-related output will be written to [/u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/racdb/upgrade20200424102533/catupgrd_catcon_22590.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/racdb/upgrade20200424102533/catupgrd*.log] files for output generated by scripts

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/racdb/upgrade20200424102533/catupgrd_*.lst] files for spool files, if any


Log file directory = [/u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/racdb/upgrade20200424102533]

Parallel SQL Process Count            = 4
Components in [racdb]
    Installed [APS CATALOG CATJAVA CATPROC CONTEXT JAVAVM ORDIM OWM RAC SDO XDB XML XOQ]
Not Installed [APEX DV EM MGW ODM OLS WK]
DataBase Version      = 11.2.0.4.0

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

------------------------------------------------------
Phases [0-107]         End Time:[2020_04_24 11:33:16]
------------------------------------------------------

Grand Total Time: 4054s

 LOG FILES: (/u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/racdb/upgrade20200424102533/catupgrd*.log)

Upgrade Summary Report Located in:
/u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/racdb/upgrade20200424102533/upg_summary.log

Grand Total Upgrade Time:    [0d:1h:7m:34s]


F) Time Zone 업그레이드 수행

Upgrade 모드로 기동 후 Time Zone 버전 조회
startup upgrade;
select * from V$TIMEZONE_FILE;
select DBMS_DST.GET_LATEST_TIMEZONE_VERSION from dual;
[racdb1:/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 24 11:34:32 2020
Version 19.7.0.0.0

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

Connected to an idle instance.

SQL> startup upgrade;
ORACLE instance started.

Total System Global Area 3221222464 bytes
Fixed Size                  8901696 bytes
Variable Size             822083584 bytes
Database Buffers         2382364672 bytes
Redo Buffers                7872512 bytes
Database mounted.
Database opened.

SQL> col FILENAME form a20
SQL> select FILENAME, VERSION from V$TIMEZONE_FILE;

FILENAME                VERSION
-------------------- ----------
timezlrg_14.dat              14

SQL> select DBMS_DST.GET_LATEST_TIMEZONE_VERSION from dual;

GET_LATEST_TIMEZONE_VERSION
---------------------------
                         32


Time Zone 업그레이드 영향도 분석
SET SERVEROUTPUT ON;
exec DBMS_DST.BEGIN_PREPARE(DBMS_DST.GET_LATEST_TIMEZONE_VERSION);
exec DBMS_DST.FIND_AFFECTED_TABLES;
select * from SYS.DST$AFFECTED_TABLES;
select * from SYS.DST$ERROR_TABLE;
select * from SYS.DST$TRIGGER_TABLE;
exec DBMS_DST.END_PREPARE;
SQL> SET SERVEROUTPUT ON;
SQL> exec DBMS_DST.BEGIN_PREPARE(DBMS_DST.GET_LATEST_TIMEZONE_VERSION);
A prepare window has been successfully started.

PL/SQL procedure successfully completed.

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> select * from SYS.DST$TRIGGER_TABLE;

no rows selected

SQL> exec DBMS_DST.END_PREPARE;
A prepare window has been successfully ended.

PL/SQL procedure successfully completed.


Time Zone 업그레이드 윈도우 시작 및 재기동
exec DBMS_DST.BEGIN_UPGRADE(DBMS_DST.GET_LATEST_TIMEZONE_VERSION);
shutdown immediate
startup
SQL> exec DBMS_DST.BEGIN_UPGRADE(DBMS_DST.GET_LATEST_TIMEZONE_VERSION);
An upgrade window has been successfully started.

PL/SQL procedure successfully completed.

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

SQL> startup
ORACLE instance started.

Total System Global Area 3221222464 bytes
Fixed Size                  8901696 bytes
Variable Size             822083584 bytes
Database Buffers         2382364672 bytes
Redo Buffers                7872512 bytes
Database mounted.
Database opened.


데이터베이스 Time Zone 업그레이드
SET SERVEROUTPUT ON;
DECLARE
  failed_num PLS_INTEGER;
BEGIN
  DBMS_DST.UPGRADE_DATABASE(failed_num);
  DBMS_OUTPUT.PUT_LINE('DBMS_DST.UPGRADE_DATABASE : ' || failed_num);
END;
/


SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
  2    failed_num PLS_INTEGER;
  3  BEGIN
  4    DBMS_DST.UPGRADE_DATABASE(failed_num);
  5    DBMS_OUTPUT.PUT_LINE('DBMS_DST.UPGRADE_DATABASE : ' || failed_num);
  6  END;
  7  /
Table list: "MDSYS"."SDO_DIAG_MESSAGES_TABLE"
Number of failures: 0
Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_L"
Number of failures: 0
Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_S"
Number of failures: 0
DBMS_DST.UPGRADE_DATABASE : 0

PL/SQL procedure successfully completed.


Time Zone 업그레이드 윈도우 종료
SET SERVEROUTPUT ON;
DECLARE
  failed_num PLS_INTEGER;
BEGIN
  DBMS_DST.END_UPGRADE(failed_num);
  DBMS_OUTPUT.PUT_LINE('DBMS_DST.END_UPGRADE : ' || failed_num);
END;
/
SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
  2    failed_num PLS_INTEGER;
  3  BEGIN
  4    DBMS_DST.END_UPGRADE(failed_num);
  5    DBMS_OUTPUT.PUT_LINE('DBMS_DST.END_UPGRADE : ' || failed_num);
  6  END;
  7  /
An upgrade window has been successfully ended.
DBMS_DST.END_UPGRADE : 0

PL/SQL procedure successfully completed.


Time Zone 업그레이드 결과 확인
select PROPERTY_NAME, PROPERTY_VALUE
  from DATABASE_PROPERTIES
 where PROPERTY_NAME like 'DST_%'
 order by PROPERTY_NAME;
SQL> col PROPERTY_NAME form a30
SQL> col PROPERTY_VALUE form a20
SQL> select PROPERTY_NAME, PROPERTY_VALUE
  2  from   DATABASE_PROPERTIES
  3  where  PROPERTY_NAME like 'DST_%'
  4  order by PROPERTY_NAME;

PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         32
DST_SECONDARY_TT_VERSION       0
DST_UPGRADE_STATE              NONE


G) Fixed Objects 통계 수집

Fixed Objects 통계 수집
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

PL/SQL procedure successfully completed.


H) postupgrade_fixups 스크립트 수행

postupgrade_fixups 스크립트 수행
SET ECHO ON;
SET SERVEROUTPUT ON;
@/u01/app/oracle/cfgtoollogs/racdb/preupgrade/postupgrade_fixups.sql
SQL> SET ECHO ON;
SQL> SET SERVEROUTPUT ON;
SQL> @/u01/app/oracle/cfgtoollogs/racdb/preupgrade/postupgrade_fixups.sql
SQL> REM
SQL> REM    Oracle POST-Upgrade Fixup Script
SQL> REM
SQL> REM    Auto-Generated by:       Oracle Preupgrade Script
SQL> REM                             Version: 19.0.0.0.0 Build: 1
SQL> REM    Generated on:            2020-04-22 15:40:47
SQL> REM
SQL> REM    Source Database:         RACDB
SQL> REM    Source Database Version: 11.2.0.4.0
SQL> REM    For Upgrade to Version:  19.0.0.0.0
SQL> REM
SQL> 
SQL> REM
SQL> REM    Setup Environment
SQL> REM
SQL> SET ECHO OFF SERVEROUTPUT ON FORMAT WRAPPED TAB OFF LINESIZE 200;

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.
Executing Oracle POST-Upgrade Fixup Script

Auto-Generated by:       Oracle Preupgrade Script
                         Version: 19.0.0.0.0 Build: 1
Generated on:            2020-04-18 08:12:18

For Source Database:     RACDB
Source Database Version: 11.2.0.4.0
For Upgrade to Version:  19.0.0.0.0

Preup                             Preupgrade
Action                            Issue Is
Number  Preupgrade Check Name     Remedied    Further DBA Action
------  ------------------------  ----------  --------------------------------
    4.  old_time_zones_exist      YES         None.
    5.  post_dictionary           YES         None.
    6.  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.


I) 객체 재컴파일

Invalid 객체 및 컴포넌트 재컴파일
@?/rdbms/admin/utlrp.sql


SQL> select count(*) from DBA_OBJECTS where STATUS = 'INVALID';

  COUNT(*)
----------
      6614

SQL> set pages 20
SQL> col COMP_NAME form a35
SQL> col VERSION_FULL form a15
SQL> col STATUS form a10

SQL> select COMP_NAME, VERSION_FULL, STATUS from DBA_REGISTRY;

COMP_NAME                           VERSION_FULL    STATUS
----------------------------------- --------------- ----------
Oracle Database Catalog Views       19.7.0.0.0      UPGRADED
Oracle Database Packages and Types  19.7.0.0.0      UPGRADED
JServer JAVA Virtual Machine        19.7.0.0.0      UPGRADED
Oracle XDK                          19.7.0.0.0      UPGRADED
Oracle Database Java Packages       19.7.0.0.0      UPGRADED
Oracle Real Application Clusters    19.7.0.0.0      UPGRADED
OLAP Analytic Workspace             19.7.0.0.0      UPGRADED
Oracle Workspace Manager            19.7.0.0.0      UPGRADED
Oracle Text                         19.7.0.0.0      UPGRADED
Oracle XML Database                 19.7.0.0.0      UPGRADED
Oracle Multimedia                   19.7.0.0.0      UPGRADED
Spatial                             19.7.0.0.0      LOADING
Oracle OLAP API                     19.7.0.0.0      VALID

13 rows selected.

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

Session altered.


TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN              2020-04-24 11:47:42

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#

PL/SQL procedure successfully completed.


TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END              2020-04-24 11:59:02

DOC> The following query reports the number of invalid objects.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  0

DOC> The following query reports the number of exceptions caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC> Note: Typical compilation errors (due to coding errors) are not
DOC>       logged into this table: they go into DBA_ERRORS instead.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          0


Function created.


PL/SQL procedure successfully completed.


Function dropped.


PL/SQL procedure successfully completed.

SQL> select count(*) from DBA_OBJECTS where STATUS = 'INVALID';

  COUNT(*)
----------
         0

SQL> select COMP_NAME, VERSION_FULL, STATUS from DBA_REGISTRY;

COMP_NAME                           VERSION_FULL    STATUS
----------------------------------- --------------- ----------
Oracle Database Catalog Views       19.7.0.0.0      VALID
Oracle Database Packages and Types  19.7.0.0.0      VALID
JServer JAVA Virtual Machine        19.7.0.0.0      VALID
Oracle XDK                          19.7.0.0.0      VALID
Oracle Database Java Packages       19.7.0.0.0      VALID
Oracle Real Application Clusters    19.7.0.0.0      VALID
OLAP Analytic Workspace             19.7.0.0.0      VALID
Oracle Workspace Manager            19.7.0.0.0      VALID
Oracle Text                         19.7.0.0.0      VALID
Oracle XML Database                 19.7.0.0.0      VALID
Oracle Multimedia                   19.7.0.0.0      VALID
Spatial                             19.7.0.0.0      VALID
Oracle OLAP API                     19.7.0.0.0      VALID

13 rows selected.


J) 클러스터 DB로 전환

클러스터 DB로 전환 및 재기동을 위한 중지
alter system set cluster_database=true scope=spfile;
shutdown immediate
SQL> col NAME form a20
SQL> col VALUE form a10
SQL> select NAME, VALUE from V$PARAMETER where name = 'cluster_database';

NAME                 VALUE
-------------------- ----------
cluster_database     FALSE

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

System altered.

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

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.7.0.0.0
[racdb1:/home/oracle]> crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.proxy_advm
               OFFLINE OFFLINE      rac1                     STABLE
               OFFLINE OFFLINE      rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.cvu
      1        ONLINE  ONLINE       rac1                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.racdb.db
      1        ONLINE  OFFLINE                               STABLE
      2        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                             ABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac1                     STABLE
--------------------------------------------------------------------------------


데이터베이스 설정 업데이트 및 재기동
$DB_HOME/bin/srvctl upgrade database -d racdb -o $DB_HOME
srvctl start database -d racdb
[racdb1:/home/oracle]> $DB_HOME/bin/srvctl upgrade database -d racdb -o $DB_HOME

[racdb1:/home/oracle]> srvctl start database -d racdb
[racdb1:/home/oracle]> crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.proxy_advm
               OFFLINE OFFLINE      rac1                     STABLE
               OFFLINE OFFLINE      rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
ora.cvu
      1        ONLINE  ONLINE       rac1                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             /db_1,STABLE
      2        ONLINE  ONLINE       rac2                     Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             /db_1,STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac1                     STABLE
--------------------------------------------------------------------------------


K) APEX 설치 (옵션)

19c에 호환되는 APEX 설치
@?/apex/catapx.sql <APEX 관리자 암호> SYSAUX SYSAUX TEMP /i/ NONE


  • 레이블 없음