Oracle 11g RAC 原地升级到 19c

作者 | JiekeXu

来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)

如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Oracle 11g RAC 原地升级到 19c,欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!

记得去年初的一段时间内,总是在进行数据库 19c 的升级,安装,测试工作,当时不知怎的,有一个特殊的要求就是原地升级 11g RAC 到 19c,刚好操作系统版本以及 JDK 均满足要求,就当学习了,顺便将第一次的测试步骤大概记录了下来,便有了这篇文章。

目  录

一、GI 升级
   1) 准备 Linux-zSer 环境 19c 软件,RU19.10 补丁包 p32126842
   2) 两节点停集群 备份家目录
   3)新建 19c 升级目录
   4) 环境变量
   5) 图形化升级 GI
   6)ORA-59303
   7)跑升级脚本完成 GI 安装
   8) 挂载磁盘组
   9) 最终集群状态如下
二、DB 升级
   10)DB 软件安装
   11) 数据库实例操作
       参数文件创建
       附:19c 升级参数文件
   12)跑升级脚本 dbupgrade

说明:原环境架构为 Linux-zSer 环境,OS:Suse12sp5  DB:11.2.0.4 RAC

一、GI 升级

1) 准备 Linux-zSer 环境 19c 软件,RU19.10 补丁包 p32126842








drwxrwxrwx  4 grid oinstall       4096 Feb  5 19:52 32126842-rwxr-xr-x  1 grid oinstall 2835755051 Mar  6 22:02 LINUX.ZSERIES64_193000_db_home.zip-rwxr-xr-x  1 grid oinstall 2519769777 Mar  6 22:00 LINUX.ZSERIES64_193000_grid_home.zipdrwxr-x--- 15 grid oinstall       4096 Nov  6 03:51 OPatch-rw-r--r--  1 grid oinstall 2754599824 Mar  6 22:07 p32126842_190000_Linux-zSer_1910_GI_OJVM.zip-rwxr-xr-x  1 grid oinstall  173937575 Mar  6 22:06 p6880880_122010_Linux-zSer_12.2.0.1.23.zip-rw-rw-r--  1 grid oinstall     796834 Feb  5 20:21 PatchSearch.xml

2) 两节点停集群 备份家目录




# /app/product/11.2.0/grid/bin/crsctl stop crs# tar -zcvf /app/GI.tar.gz  /app/grid /app/oracle /app/product /app/oraInventory

3)新建 19c 升级目录




















mkdir -p /backup/app/19.0.0.0/grid mkdir -p /backup/app/grid mkdir -p /backup/app/oracle/product/19.0.0.0/dbhome_1chown -R grid:oinstall /backupchown -R oracle:oinstall /backup/app/oraclechmod -R 775 /backup
--注意:这里新建目录应该按照 oracle 标准目录 OFA 结构建立,但由于不满足,最好建立成如下路径,ORACLE_BASE 不需改动,ORACLE_HOME 如下即可。mkdir -p /app/product/19.0.0./gridmkdir -p /app/oracle/product/19.0.0/dbhome_1
官方文档建议如下:# mkdir -p /u01/app/19.0.0/grid# mkdir -p /u01/app/grid# mkdir -p /u01/app/oracle# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1# chown -R grid:oinstall /u01# chown oracle:oinstall /u01/app/oracle# chmod -R 775 /u01/


If you create the OFA path /u01, and grant oracle 755 permissions to write to that path, then the Oracle Inventory directory is created in the path /u01/app/oraInventory, and Oracle Universal Installer creates the path /u01/app/oracle, and configures the ORACLE_BASE environment variable for the Oracle user to that path. If you are performing an Oracle Database installation, then the Oracle home is installed under the Oracle base. However, if you are installing Oracle Grid Infrastructure for a cluster, then be aware that ownership of the path for the Grid home is changed to root after installation and the Grid base and Grid home should be in different locations, such as
/u01/app/19.0.0/grid for the Grid home path, and /u01/app/grid for the Grid base. For example:
/u01/app/oraInventory, owned by grid:oinstall
/u01/app/oracle, owned by oracle:oinstall
/u01/app/oracle/product/19.0.0/dbhome_1/, owned by oracle:oinistall
/u01/app/grid, owned by grid:oinstall
/u01/app/19.0.0/grid, owned by root

4) 环境变量

Grid 原有 11g 环境变量










umask 022export ORACLE_BASE=/app/gridexport ORACLE_HOME=/app/product/11.2.0/gridexport ORACLE_SID=+ASM1export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"export PATH=${ORACLE_HOME}/bin:${ORACLE_HOME}/OPatch:${PATH}export HOST=`hostname | cut -f1 -d"."`export PS1='${HOST}:$PWD(${ORACLE_SID})>'


GRID 19c 环境变量:













jieker1:/home/grid(+ASM)>more .bash_profile_19c umask 022export ORACLE_BASE=/backup/app/gridexport ORACLE_HOME=/backup/app/19.0.0.0/gridexport ORACLE_SID=+ASM1export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"export JAVA_HOME=$ORACLE_HOME/jdkexport PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/jre/bin:$ORACLE_HOME/jdk/binexport HOST=`hostname | cut -f1 -d"."`export PS1='${HOST}:$PWD(${ORACLE_SID})>'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib


ORACLE:
原有 11g 环境变量











umask 022export ORACLE_BASE=/app/oracleexport ORACLE_HOME=/app/product/11.2.0/dbexport ORACLE_SID=jiekedb1export NLS_LANG=AMERICAN_AMERICA.AL32UTF8export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"export LD_LIBRARY_PATH=${ORACLE_HOME}/libexport PATH=${ORACLE_HOME}/bin:${ORACLE_HOME}/OPatch:${PATH}export HOST=`hostname | cut -f1 -d"."`export PS1='${HOST}:$PWD(${ORACLE_SID})>'


Oracle 19c 环境变量












more .bash_profile_19c 
umask 022export ORACLE_BASE=/backup/app/oracleexport ORACLE_HOME=/backup/app/oracle/product/19.0.0.0/dbhome_1export ORACLE_SID=jiekedb1export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:.export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"export HOST=`hostname | cut -f1 -d"."`export PS1='${HOST}:$PWD(${ORACLE_SID})$'


5) 图形化升级 GI

RAC1  Grid 用户解压 GI 安装软件到 19c 环境变量 $ORACLE_HOME






unzip LINUX.ZSERIES64_193000_grid_home.zip -d $ORACLE_HOMEcd $ORACLE_HOME--调用图形界面jieker1:/backup/app/19.0.0.0/grid(+ASM1)>./gridSetup.sh

以升级模式运行 gridSetup.sh

上面的检查关键信息一定要检查通过!!!

6)ORA-59303

在升级 GI 的过程中一定会出现磁盘组兼容性问题而无法正常挂载,就会报如下错误。

ORA-15032: not all alterations performed
ORA-59303: The attribute compatible.asm (11.2.0.0.0) of the diskgroup being mounted should be 11.2.0.2.0 or higher. (DBD ERROR: OCIStmtExecute)



SQL> alter diskgroup ARCH set attribute 'compatible.asm'='11.2.0.4.0';

映像中这里的 OCR 盘我使用的是新划分的 1G 大小的三块盘,新的 OCR 磁盘组为JIEKER_OCR

7)跑升级脚本完成 GI 安装


跑升级脚本 rootupgrade.sh

rootupgrade.sh 脚本简要信息示例如下:
















2021/04/08 16:03:28 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.2021/04/08 16:03:28 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.2021/04/08 16:03:29 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.2021/04/08 16:03:30 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'2021/04/08 16:03:38 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.2021/04/08 16:04:16 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.2021/04/08 16:04:17 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.2021/04/08 16:04:18 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.2021/04/08 16:04:19 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.2021/04/08 16:04:41 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.2021/04/08 16:06:04 CLSRSC-343: Successfully started Oracle Clusterware stack2021/04/08 16:06:04 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.2021/04/08 16:06:17 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.2021/04/08 16:06:32 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded

8) 挂载磁盘组









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  NameMOUNTED  NORMAL  N        4096            4096   4096  4194304      3072     2204             1024             590              0             Y  JIEKER_OCR/ASMCMD> ASMCMD> mount JIEKE_ARCHORA-15032: not all alterations performedORA-59303: The attribute compatible.asm (11.2.0.0.0) of the diskgroup being mounted should be 11.2.0.2.0 or higher. (DBD ERROR: OCIStmtExecute)ASMCMD>


这里挂载归档磁盘组就会报 ORA-59303,那么我们来查看一下磁盘组的兼容性,发现全是 0,我们需要将其设置为最低为 19.0.0.0.0。























jieker1:/home/grid(+ASM1)>sqlplus / as sysasm SQL*Plus: Release 19.0.0.0.0 - Production on Thu Apr 8 16:29:50 2021Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.Connected to:Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - ProductionVersion 19.3.0.0.0
SQL> col COMPATIBILITY for a20SQL> col DATABASE_COMPATIBILITY for a18SQL> col name for a16select GROUP_NUMBER,NAME,BLOCK_SIZE,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;
SQL> GROUP_NUMBER NAME             BLOCK_SIZE COMPATIBILITY        DATABASE_COMPATIBI------------ ---------------- ---------- -------------------- ------------------           0 JIEKE_DATA                 0 0.0.0.0.0            0.0.0.0.0           0 JIEKE_OCR                  0 0.0.0.0.0            0.0.0.0.0           0 JIEKE_ARCH                 0 0.0.0.0.0            0.0.0.0.0           1 JIEKER_OCR              4096 19.0.0.0.0           10.1.0.0.0

当去改参数时又会报错 ORA-15032:并不是所有的改变都被执行








SQL> alter diskgroup JIEKE_ARCH set attribute 'compatible.asm'='19.0.0.0.0';alter diskgroup JIEKE_ARCH set attribute 'compatible.asm'='19.0.0.0.0'*ERROR at line 1:ORA-15032: not all alterations performedORA-15001: diskgroup "JIEKE_ARCH" does not exist or is not mounted

那么,怎么办呢?这里就需要到一个隐含参数 ‘_disk_sector_size_override’,可以设置_disk_sector_size_override 参数为 true,来覆盖扇区的设置,这样就可以强制挂载磁盘组。



































SQL> col KSPPINM for a30 SQL> col KSPPSTVL for a30 SQL> col KSPPDESC for a39SQL> select ksppinm,ksppstvl,ksppdesc from x$ksppi x,x$ksppcv y where x.indx = y.indx and ksppinm='_disk_sector_size_override';KSPPINM                        KSPPSTVL                       KSPPDESC------------------------------ ------------------------------ ---------------------------------------_disk_sector_size_override     FALSE                          if TRUE, OSD sector size could be overr                                                              idden--支持动态修改SQL> alter system set "_disk_sector_size_override"=true;System altered.
SQL> select ksppinm,ksppstvl,ksppdesc from x$ksppi x,x$ksppcv y where x.indx = y.indx and ksppinm='_disk_sector_size_override';
KSPPINM                        KSPPSTVL                       KSPPDESC------------------------------ ------------------------------ ---------------------------------------_disk_sector_size_override     TRUE                           if TRUE, OSD sector size could be overr                                                              idden--强制挂载磁盘组SQL> alter diskgroup JIEKE_ARCH  mount restricted;Diskgroup altered.
--修改磁盘组兼容性参数SQL> alter diskgroup JIEKE_ARCH  SET ATTRIBUTE 'compatible.asm'='19.0.0.0.0'Diskgroup altered.
SQL> select GROUP_NUMBER,NAME,BLOCK_SIZE,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;GROUP_NUMBER NAME             BLOCK_SIZE COMPATIBILITY        DATABASE_COMPATIBI------------ ---------------- ---------- -------------------- ------------------           0 JIEKE_DATA                 0 0.0.0.0.0            0.0.0.0.0           0 JIEKE_OCR                  0 0.0.0.0.0            0.0.0.0.0           1 JIEKER_OCR              4096 19.0.0.0.0           10.1.0.0.0           2 JIEKE_ARCH              4096 19.0.0.0.0           10.1.0.0.0

接下来我们对数据磁盘组 DATA 磁盘组也进行如上操作





















SQL> alter diskgroup JIEKE_DATA  mount restricted;Diskgroup altered.
SQL> alter diskgroup JIEKE_DATA  SET ATTRIBUTE 'compatible.asm'='19.0.0.0.0'; Diskgroup altered.
SQL> select GROUP_NUMBER,NAME,BLOCK_SIZE,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;
GROUP_NUMBER NAME             BLOCK_SIZE COMPATIBILITY        DATABASE_COMPATIBI------------ ---------------- ---------- -------------------- ------------------           0 JIEKE_OCR                  0 0.0.0.0.0            0.0.0.0.0           1 JIEKER_OCR              4096 19.0.0.0.0           10.1.0.0.0           2 JIEKE_ARCH              4096 19.0.0.0.0           10.1.0.0.0           3 JIEKE_DATA              4096 19.0.0.0.0           10.1.0.0.0
SQL> ALTER diskgroup JIEKE_ARCH dismount;Diskgroup altered.
SQL> ALTER diskgroup JIEKE_DATA dismount;Diskgroup altered.


当然也可以直接在 CMD 里运行 mount 磁盘组的命令。

注意:JIEKE_OCR 旧的磁盘组不用挂载,新的 OCR 磁盘组为 JIEKER_OCR。

















ASMCMD> lsdgState    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  NameMOUNTED  NORMAL  N        4096            4096   4096  4194304      3072     2204             1024             590              0             Y  JIEKER_OCR/ASMCMD> ASMCMD> mount JIEKE_ARCHASMCMD> lsdgState    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  NameMOUNTED  NORMAL  N        4096            4096   4096  4194304      3072     2204             1024             590              0             Y  JIEKER_OCR/MOUNTED  EXTERN  N        4096            4096   4096  4194304    102400   102268                0          102268              0             N  JIEKE_ARCH/ASMCMD> mount JIEKE_DATAASMCMD> lsdgState    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB   Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  NameMOUNTED  NORMAL  N        4096            4096   4096  4194304      3072      2204             1024             590              0             Y  JIEKER_OCR/MOUNTED  EXTERN  N        4096            4096   4096  4194304    102400    102268                0          102268              0             N  JIEKE_ARCH/MOUNTED  EXTERN  N        4096            4096   4096  4194304  31457280  13640924                0        13640924              0             N  JIEKE_DATA/ASMCMD>



















SQL> select GROUP_NUMBER,NAME,BLOCK_SIZE,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;
GROUP_NUMBER NAME             BLOCK_SIZE COMPATIBILITY        DATABASE_COMPATIBI------------ ---------------- ---------- -------------------- ------------------           0 JIEKE_OCR                  0 0.0.0.0.0            0.0.0.0.0           1 JIEKER_OCR              4096 19.0.0.0.0           10.1.0.0.0           2 JIEKE_ARCH              4096 19.0.0.0.0           10.1.0.0.0           3 JIEKE_DATA              4096 19.0.0.0.0           10.1.0.0.0SQL> select GROUP_NUMBER,NAME,TYPE,STATE,total_mb/1024 total_gb,free_mb/1024 free_gb from v$asm_diskgroup;
GROUP_NUMBER NAME             TYPE   STATE         TOTAL_GB    FREE_GB------------ ---------------- ------ ----------- ---------- ----------           0 JIEKE_OCR                DISMOUNTED           0          0           1 JIEKER_OCR        NORMAL MOUNTED              3 2.12890625           2 JIEKE_ARCH        EXTERN MOUNTED            100 99.8710938           3 JIEKE_DATA        EXTERN MOUNTED          30720 13321.2148

9) 最终集群状态如下






















































jieker2:/home/grid(+ASM2)>crsctl status res -t --------------------------------------------------------------------------------Name           Target  State        Server                   State details       --------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.LISTENER.lsnr               ONLINE  ONLINE       jieker1                   STABLE               ONLINE  ONLINE       jieker2                   STABLEora.net1.network               ONLINE  ONLINE       jieker1                   STABLE               ONLINE  ONLINE       jieker2                   STABLEora.ons               ONLINE  ONLINE       jieker1                   STABLE               ONLINE  ONLINE       jieker2                   STABLE--------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)      1        ONLINE  ONLINE       jieker1                   STABLE      2        ONLINE  ONLINE       jieker2                   STABLE      3        OFFLINE OFFLINE                               STABLEora.JIEKER_OCR.dg(ora.asmgroup)      1        ONLINE  ONLINE       jieker1                   STABLE      2        ONLINE  ONLINE       jieker2                   STABLE      3        OFFLINE OFFLINE                               STABLEora.JIEKE_ARCH.dg(ora.asmgroup)      1        ONLINE  ONLINE       jieker1                   STABLE      2        ONLINE  ONLINE       jieker2                   STABLE      3        OFFLINE OFFLINE                               STABLEora.JIEKE_DATA.dg(ora.asmgroup)      1        ONLINE  ONLINE       jieker1                   STABLE      2        ONLINE  ONLINE       jieker2                   STABLE      3        OFFLINE OFFLINE                               STABLEora.LISTENER_SCAN1.lsnr      1        ONLINE  ONLINE       jieker1                   STABLEora.asm(ora.asmgroup)      1        ONLINE  ONLINE       jieker1                   STABLE      2        ONLINE  ONLINE       jieker2                   Started,STABLE      3        OFFLINE OFFLINE                               STABLEora.asmnet1.asmnetwork(ora.asmgroup)      1        ONLINE  ONLINE       jieker1                   STABLE      2        ONLINE  ONLINE       jieker2                   STABLE      3        OFFLINE OFFLINE                               STABLEora.cvu      1        ONLINE  ONLINE       jieker1                   STABLEora.jieker1.vip      1        ONLINE  ONLINE       jieker1                   STABLEora.jieker2.vip      1        ONLINE  ONLINE       jieker2                   STABLEora.scan1.vip      1        ONLINE  ONLINE       jieker1                   STABLE

二、DB 升级

10)DB 软件安装


软件安装和正常的 19c DB 软件安装没有区别,只要 JDK 版本合适,操作系统版本合适,正常下一步下一步就好。

调用图形化运行 ./runInstaller

其他步骤截图略。

11) 数据库实例操作

  • 参数文件创建

使用原先修改好的 19c 参数文件 pfile_19c_forupdate.ora 启动数据库。




































jieker1:/home/oracle(jiekedb1)$ sqlplus / as sysdba 
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 9 17:25:41 2021Version 19.10.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 4.4560E+10 bytesFixed Size                 30247520 bytesVariable Size            7516192768 bytesDatabase Buffers         3.6910E+10 bytesRedo Buffers              103968768 bytesSQL> create pfile='/home/oracle/pfile_19c_forupdate.ora'  from spfile;File created.SQL> shu immediate ORA-01507: database not mounted
jieker1:/home/oracle(ysJIEKE1)$  sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 9 20:06:24 2021Version 19.10.0.0.0
Copyright (c) 1982, 2020, Oracle.  All rights reserved.
Connected to:Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - ProductionVersion 19.10.0.0.0
SQL> shu immediate Database closed.Database dismounted.ORACLE instance shut down.


  • 附:19c 升级参数文件










































































































vim pfile_19c_forupdate.ora
jiekedb2.__data_transfer_cache_size=0jiekedb1.__data_transfer_cache_size=0jiekedb2.__db_cache_size=36909875200jiekedb1.__db_cache_size=36775657472jiekedb2.__inmemory_ext_roarea=0jiekedb1.__inmemory_ext_roarea=0jiekedb2.__inmemory_ext_rwarea=0jiekedb1.__inmemory_ext_rwarea=0jiekedb2.__java_pool_size=0jiekedb1.__java_pool_size=0jiekedb2.__large_pool_size=671088640jiekedb1.__large_pool_size=671088640jiekedb1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environmentjiekedb2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environmentjiekedb2.__pga_aggregate_target=14898167808jiekedb1.__pga_aggregate_target=14898167808jiekedb2.__sga_target=44560285696jiekedb1.__sga_target=44560285696jiekedb2.__shared_io_pool_size=134217728jiekedb1.__shared_io_pool_size=134217728jiekedb2.__shared_pool_size=6710886400jiekedb1.__shared_pool_size=6845104128jiekedb2.__streams_pool_size=0jiekedb1.__streams_pool_size=0jiekedb2.__unified_pga_pool_size=0jiekedb1.__unified_pga_pool_size=0*._cleanup_rollback_entries=10000*._clusterwide_global_transactions=FALSE*._cursor_obsolete_threshold=100*._lm_tickets=5000*._memory_imm_mode_without_autosga=FALSE*._optim_peek_user_binds=FALSE*._optimizer_adaptive_cursor_sharing=FALSE*._optimizer_extended_cursor_sharing_rel='NONE'*._optimizer_extended_cursor_sharing='NONE'*._optimizer_use_feedback=FALSE*._PX_use_large_pool=TRUE*._rollback_segment_count=500*._undo_autotune=FALSE*._use_adaptive_log_file_sync='FALSE'*.aq_tm_processes=1*.archive_lag_target=1800*.audit_file_dest='/u01/app/oracle/admin/jiekedb/adump'*.audit_trail='NONE'#*.cluster_database=true   --以升级模式启动时关闭节点 2 并修改此参数*.compatible='19.0.0'*.control_file_record_keep_time=39#*.control_files='+JIEKE_DATA/jiekedb/CONTROLFILE/current.885.1069371489','+JIEKE_ARCH/jiekedb/CONTROLFILE/current.256.1069371491' –注释掉现有控制文件*.control_files='+JIEKE_DATA/jiekedb/CONTROLFILE/Current.673.1060408079' –使用原先的控制文件*.db_block_checking='MEDIUM'*.db_block_checksum='FULL'*.db_block_size=8192*.db_create_file_dest='+JIEKE_DATA'*.db_create_online_log_dest_1='+JIEKE_DATA'*.db_create_online_log_dest_2='+JIEKE_ARCH'*.db_domain=''*.db_files=8192*.db_lost_write_protect='TYPICAL'*.db_name='jiekedb'*.db_writer_processes=8*.deferred_segment_creation=FALSE*.diagnostic_dest='/u01/app/oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=jiekedbXDB)'*.enable_ddl_logging=TRUE*.event='10949 trace name context forever','28401 trace name context forever,level 1','10503 trace name context forever, level 4000'*.fast_start_mttr_target=180*.gcs_server_processes=10family:dw_helper.instance_mode='read-only'jiekedb2.instance_number=2jiekedb1.instance_number=1*.job_queue_processes=1000*.local_listener='-oraagent-dummy-'*.log_archive_config='DG_CONFIG=(jiekedb, jiekedb3)'*.log_archive_dest_1='location=+JIEKE_ARCH'*.log_archive_dest_2='SERVICE=jiekedb3 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jiekedb3'*.log_archive_dest_state_1='ENABLE'*.log_archive_dest_state_2='DEFER'*.log_checkpoints_to_alert=TRUE*.max_dump_file_size='102400000'*.max_idle_blocker_time=5*.nls_language='AMERICAN'*.nls_territory='AMERICA'*.open_cursors=300*.optimizer_adaptive_plans=FALSE*.optimizer_adaptive_statistics=FALSE*.parallel_degree_policy='MANUAL'*.parallel_force_local=TRUE*.parallel_max_servers=128*.pga_aggregate_limit=0*.pga_aggregate_target=14165m*.processes=8000*.remote_listener='JIEKEr-cls-scan:1521'*.remote_login_passwordfile='exclusive'*.resource_manager_plan='DEFAULT_PLAN'*.sga_max_size=42494m*.sga_target=42494m*.standby_file_management='AUTO'jiekedb2.thread=2jiekedb1.thread=1*.undo_retention=43200jiekedb2.undo_tablespace='UNDOTBS2'jiekedb1.undo_tablespace='UNDOTBS1'


12)跑升级脚本 dbupgrade

以升级模式启动节点 1  DB











SQL> startup upgrade pfile='/home/oracle/pfile_19c_forupdate.ora'ORACLE instance started.
Total System Global Area 4.4560E+10 bytesFixed Size                 30247520 bytesVariable Size            7516192768 bytesDatabase Buffers         3.6910E+10 bytesRedo Buffers              103968768 bytesDatabase mounted.Database opened.


$ORACLE_HOME/bin/dbupgrade -n 8 -l /tmp















































































































































































































jieker1:/home/oracle(jiekedb1)$ $ORACLE_HOME/bin/dbupgrade -n 8 -l /tmp 
Argument list for [/u01/app/oracle/product/19.0.0.0/dbhome_1/rdbms/admin/catctl.pl]For Oracle internal use only A = 0Run in                       c = 0Do not run in                C = 0Input Directory              d = 0Echo OFF                     e = 1Simulate                     E = 0Forced cleanup               F = 0Log Id                       i = 0Child Process                I = 0Log Dir                      l = /tmpPriority List Name           L = 0Upgrade Mode active          M = 0SQL Process Count            n = 8SQL PDB Process Count        N = 0Open Mode Normal             o = 0Start Phase                  p = 0End Phase                    P = 0Reverse Order                r = 0AutoUpgrade Resume           R = 0Script                       s = 0Serial Run                   S = 0RO User Tablespaces          T = 0Display Phases               y = 0Debug catcon.pm              z = 0Debug catctl.pl              Z = 0
catctl.pl VERSION: [19.0.0.0.0]           STATUS: [Production]            BUILD: [RDBMS_19.10.0.0.0DBRU_LINUX.ZSERIES64_210107]
/u01/app/oracle/product/19.0.0.0/dbhome_1/rdbms/admin/orahome = [/u01/app/oracle/product/19.0.0.0/dbhome_1]/u01/app/oracle/product/19.0.0.0/dbhome_1/bin/orabasehome = [/u01/app/oracle/product/19.0.0.0/dbhome_1]catctlGetOraBaseLogDir = [/u01/app/oracle/product/19.0.0.0/dbhome_1]
Analyzing file /u01/app/oracle/product/19.0.0.0/dbhome_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_112867.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        = 48Database Name         = jiekedbDataBase Version      = 11.2.0.4.0Parallel SQL Process Count            = 8Components in [jiekedb]    Installed [APEX CATALOG CATJAVA CATPROC EM JAVAVM ORDIM OWM RAC XDB XML]Not Installed [APS CONTEXT DV MGW ODM OLS SDO WK XOQ]DataBase Version      = 11.2.0.4.0
------------------------------------------------------Phases [0-107]         Start Time:[2021_04_09 17:36:33]------------------------------------------------------***********   Executing Change Scripts   ***********Serial   Phase #:0    [jiekedb] Files:1    Time: 62s***************   Catalog Core SQL   ***************Serial   Phase #:1    [jiekedb] Files:5    Time: 20sRestart  Phase #:2    [jiekedb] Files:1    Time: 0s***********   Catalog Tables and Views   ***********Parallel Phase #:3    [jiekedb] Files:19   Time: 3sRestart  Phase #:4    [jiekedb] Files:1    Time: 0s*************   Catalog Final Scripts   ************Serial   Phase #:5    [jiekedb] Files:7    Time: 9s*****************   Catproc Start   ****************Serial   Phase #:6    [jiekedb] Files:1    Time: 6s*****************   Catproc Types   ****************Serial   Phase #:7    [jiekedb] Files:2    Time: 4sRestart  Phase #:8    [jiekedb] Files:1    Time: 0s****************   Catproc Tables   ****************Parallel Phase #:9    [jiekedb] Files:68   Time: 5sRestart  Phase #:10   [jiekedb] Files:1    Time: 0s*************   Catproc Package Specs   ************Serial   Phase #:11   [jiekedb] Files:1    Time: 27sRestart  Phase #:12   [jiekedb] Files:1    Time: 0s**************   Catproc Procedures   **************Parallel Phase #:13   [jiekedb] Files:94   Time: 1sRestart  Phase #:14   [jiekedb] Files:1    Time: 0sParallel Phase #:15   [jiekedb] Files:122  Time: 3sRestart  Phase #:16   [jiekedb] Files:1    Time: 0sSerial   Phase #:17   [jiekedb] Files:24   Time: 1sRestart  Phase #:18   [jiekedb] Files:1    Time: 0s*****************   Catproc Views   ****************Parallel Phase #:19   [jiekedb] Files:32   Time: 4sRestart  Phase #:20   [jiekedb] Files:1    Time: 0sSerial   Phase #:21   [jiekedb] Files:3    Time: 6sRestart  Phase #:22   [jiekedb] Files:1    Time: 0sParallel Phase #:23   [jiekedb] Files:25   Time: 49sRestart  Phase #:24   [jiekedb] Files:1    Time: 0sParallel Phase #:25   [jiekedb] Files:12   Time: 36sRestart  Phase #:26   [jiekedb] Files:1    Time: 0sSerial   Phase #:27   [jiekedb] Files:1    Time: 0sSerial   Phase #:28   [jiekedb] Files:3    Time: 1sSerial   Phase #:29   [jiekedb] Files:1    Time: 0sRestart  Phase #:30   [jiekedb] Files:1    Time: 1s***************   Catproc CDB Views   **************Serial   Phase #:31   [jiekedb] Files:1    Time: 0sRestart  Phase #:32   [jiekedb] Files:1    Time: 0sSerial   Phase #:34   [jiekedb] Files:1    Time: 0s*****************   Catproc PLBs   *****************Serial   Phase #:35   [jiekedb] Files:295  Time: 11sSerial   Phase #:36   [jiekedb] Files:1    Time: 0sRestart  Phase #:37   [jiekedb] Files:1    Time: 0sSerial   Phase #:38   [jiekedb] Files:9    Time: 3sRestart  Phase #:39   [jiekedb] Files:1    Time: 0s***************   Catproc DataPump   ***************Serial   Phase #:40   [jiekedb] Files:3    Time: 25sRestart  Phase #:41   [jiekedb] Files:1    Time: 0s******************   Catproc SQL   *****************Parallel Phase #:42   [jiekedb] Files:13   Time: 35sRestart  Phase #:43   [jiekedb] Files:1    Time: 0sParallel Phase #:44   [jiekedb] Files:11   Time: 3sRestart  Phase #:45   [jiekedb] Files:1    Time: 0sParallel Phase #:46   [jiekedb] Files:3    Time: 0sRestart  Phase #:47   [jiekedb] Files:1    Time: 0s*************   Final Catproc scripts   ************Serial   Phase #:48   [jiekedb] Files:1    Time: 4sRestart  Phase #:49   [jiekedb] Files:1    Time: 0s**************   Final RDBMS scripts   *************Serial   Phase #:50   [jiekedb] Files:1    Time: 13s************   Upgrade Component Start   ***********Serial   Phase #:51   [jiekedb] Files:1    Time: 0sRestart  Phase #:52   [jiekedb] Files:1    Time: 0s**********   Upgrading Java and non-Java   *********Serial   Phase #:53   [jiekedb] Files:2    Time: 182s*****************   Upgrading XDB   ****************Restart  Phase #:54   [jiekedb] Files:1    Time: 0sSerial   Phase #:56   [jiekedb] Files:3    Time: 11sSerial   Phase #:57   [jiekedb] Files:3    Time: 1sParallel Phase #:58   [jiekedb] Files:10   Time: 1sParallel Phase #:59   [jiekedb] Files:25   Time: 2sSerial   Phase #:60   [jiekedb] Files:4    Time: 3sSerial   Phase #:61   [jiekedb] Files:1    Time: 0sSerial   Phase #:62   [jiekedb] Files:32   Time: 1sSerial   Phase #:63   [jiekedb] Files:1    Time: 0sParallel Phase #:64   [jiekedb] Files:6    Time: 5sSerial   Phase #:65   [jiekedb] Files:2    Time: 11sSerial   Phase #:66   [jiekedb] Files:3    Time: 41s****************   Upgrading ORDIM   ***************Restart  Phase #:67   [jiekedb] Files:1    Time: 1sSerial   Phase #:69   [jiekedb] Files:1    Time: 0sParallel Phase #:70   [jiekedb] Files:2    Time: 13sRestart  Phase #:71   [jiekedb] Files:1    Time: 0sParallel Phase #:72   [jiekedb] Files:2    Time: 58sSerial   Phase #:73   [jiekedb] Files:2    Time: 1s*****************   Upgrading SDO   ****************Restart  Phase #:74   [jiekedb] Files:1    Time: 0sSerial   Phase #:76   [jiekedb] Files:1    Time: 0sSerial   Phase #:77   [jiekedb] Files:2    Time: 0sRestart  Phase #:78   [jiekedb] Files:1    Time: 0sSerial   Phase #:79   [jiekedb] Files:1    Time: 1sRestart  Phase #:80   [jiekedb] Files:1    Time: 0sParallel Phase #:81   [jiekedb] Files:3    Time: 0sRestart  Phase #:82   [jiekedb] Files:1    Time: 0sSerial   Phase #:83   [jiekedb] Files:1    Time: 0sRestart  Phase #:84   [jiekedb] Files:1    Time: 0sSerial   Phase #:85   [jiekedb] Files:1    Time: 1sRestart  Phase #:86   [jiekedb] Files:1    Time: 0sParallel Phase #:87   [jiekedb] Files:4    Time: 0sRestart  Phase #:88   [jiekedb] Files:1    Time: 0sSerial   Phase #:89   [jiekedb] Files:1    Time: 0sRestart  Phase #:90   [jiekedb] Files:1    Time: 0sSerial   Phase #:91   [jiekedb] Files:2    Time: 1sRestart  Phase #:92   [jiekedb] Files:1    Time: 0sSerial   Phase #:93   [jiekedb] Files:1    Time: 0sRestart  Phase #:94   [jiekedb] Files:1    Time: 0s*******   Upgrading ODM, WK, EXF, RUL, XOQ   *******Serial   Phase #:95   [jiekedb] Files:1    Time: 4sRestart  Phase #:96   [jiekedb] Files:1    Time: 0s***********   Final Component scripts    ***********Serial   Phase #:97   [jiekedb] Files:1    Time: 1s*************   Final Upgrade scripts   ************Serial   Phase #:98   [jiekedb] Files:1    Time: 68s*******************   Migration   ******************Serial   Phase #:99   [jiekedb] Files:1    Time: 23s***   End PDB Application Upgrade Pre-Shutdown   ***Serial   Phase #:100  [jiekedb] Files:1    Time: 0sSerial   Phase #:101  [jiekedb] Files:1    Time: 0sSerial   Phase #:102  [jiekedb] Files:1    Time: 51s*****************   Post Upgrade   *****************Serial   Phase #:103  [jiekedb] Files:1    Time: 35s****************   Summary report   ****************Serial   Phase #:104  [jiekedb] Files:1    Time: 1s***   End PDB Application Upgrade Post-Shutdown   **Serial   Phase #:105  [jiekedb] Files:1    Time: 0sSerial   Phase #:106  [jiekedb] Files:1    Time: 0sSerial   Phase #:107  [jiekedb] Files:1     Time: 26s
------------------------------------------------------Phases [0-107]         End Time:[2021_04_09 17:51:08]------------------------------------------------------
Grand Total Time: 876s
LOG FILES: (/tmp/catupgrd*.log)
Upgrade Summary Report Located in:/tmp/upg_summary.log
Grand Total Upgrade Time:    [0d:0h:14m:36s]

升级完之后数据库已经关闭,可将 pfile 中关于集群的参数注释 #*.cluster_database=true 去掉 #,然后用 pfile 启动去重建 spfile.



vim '/home/oracle/pfile_19c_forupdate.ora'#*.cluster_database=true































jieker1:/home/oracle(jiekedb1)$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 9 19:46:13 2021Version 19.10.0.0.0Copyright (c) 1982, 2020, Oracle.  All rights reserved.Connected to an idle instance.SQL> startup pfile='/home/oracle/pfile_19c_forupdate.ora';ORACLE instance started.
Total System Global Area 4.4560E+10 bytesFixed Size                 30247520 bytesVariable Size            7516192768 bytesDatabase Buffers         3.6910E+10 bytesRedo Buffers              103968768 bytesDatabase mounted.Database opened.SQL> create spfile='+JIEKE_DATA/jiekedb/spfilejiekedb.ora' from pfile='/home/oracle/pfile_19c_forupdate.ora';
File created.SQL> shu immediate Database closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - ProductionVersion 19.10.0.0.0jieker1:/home/oracle(jiekedb1)$ srvctl start database -d jiekedb jieker1:/home/oracle(jiekedb1)$ srvctl status database -d jiekedb Instance jiekedb1 is running on node jieker1Instance jiekedb2 is running on node jieker2



总结

以上大概步骤为去年 4 月份一测试 RAC 升级 19c 时做的测试步骤,主要就是 GI 升级这块以及后面的数据库实例升级,DB 软件直接安装即可,其他的一些小细节这里没有记录,比如打补丁呀,磁盘挂载呀等等均没有涉及。而实际生产环境步骤肯定要比这个详细完善,这里只是抛砖引玉,供大家借鉴。况且,一般生产环境均是先搭建 19c 新环境迁移升级,很少有直接在原环境下进行升级操作。

以上如有错误及不到的地方,还望海涵。如果有不理解的地方及不周到的地方,也希望正在阅读的你可以添加我个人微信添加我个人微信【JiekeXu_DBA】沟通,谢谢!


全文完,希望可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!

————————————————————————————
公众号:JiekeXu DBA之路
CSDN :https://blog.csdn.net/JiekeXu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————



Oracle 表碎片检查及整理方案

OGG|Oracle GoldenGate 基础

2021 年公众号历史文章合集整理

2020 年公众号历史文章合集整理

Oracle 19c RAC 遇到的几个问题

OGG|Oracle 数据迁移后比对一致性

利用 OGG 迁移 Oracle11g 到 19C

OGG|Oracle GoldenGate 微服务架构

Oracle 查询表空间使用率超慢问题一则

国产数据库|TiDB 5.4 单机快速安装初体验

Oracle ADG 备库停启维护流程及增量恢复

Linux 环境搭建 MySQL8.0.28 主从同步环境

请使用浏览器的分享功能分享到微信等