Sunday, August 28, 2022

free -m Oracle Recommends to have 8 GB Physical Memory for each node It is necessary to have at least 3GB for SGA to correctly upgrade (and runs) the GI 19c version grid@exadb01]$ sqlplus / as sysasm SQL> alter system set sga_max_size = 3G scope=spfile sid='*'; SQL> alter system set sga_target = 3G scope=spfile sid='*'; SQL> alter system set memory_target=0 sid='*' scope=spfile; SQL> alter system set memory_max_target=0 sid='*' scope=spfile /* required workaround */; SQL> alter system reset memory_max_target sid='*' scope=spfile; SQL> alter system set use_large_pages=true sid='*' scope=spfile /* 11.2.0.2 and later(Linux only) */; crsctl query crs activeversion [oracle@ol7-121-rac1 ~]$ crsctl query crs softwareversion Oracle Clusterware version on node [ol7-121-rac1] is [12.1.0.2.0] 19.3.0/ /u02/app/19.3.0/gri mkdir -p /u01/app/19.3.0/grid chown -R grid:oinstall /u01/app/19.3.0/grid unzip -q /media/sf_software/LINUX.X64_193000_grid_home.zip unzip -q /tmp/LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid [oracle@ol7-121-rac1 ./runcluvfy.sh stage -pre crsinst -upgrade -rolling \ -src_crshome /drcrs/app/oracle/product/grid12c \ -dest_crshome dumparea/oracle/app/grid19c \ -dest_version 19.0.0.0.0 -fixup -verbose cd /u01/app/19.3.0/grid ./runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /u01/app/12.1.0.2/grid -dest_crshome /u01/app/19.3.0/grid -dest_version 19.0.0.0.0 -fixup -verbose -method sudo -user oracle Update opatch version and apply patches 28553832 and 27006180 Verifying Oracle patch:28553832 ...FAILED Verifying Oracle patch:21255373 ...FAILED cd /u01/grid/cv/rpm rpm -ivh cvuqdisk-1.0.10-1.rpm [grid@exacl04n1 +ASM1]$ sqlplus / as sysdba SQL*Plus: Release 18.0.0.0.0 - Production on Fri Jan 24 14:57:24 2020 Version 18.6.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.6.0.0.0 SQL> show parameter memory_target NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ memory_target big integer 0 SQL> show parameter memory_max_target NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ memory_max_target big integer 0 SQL> show parameter use_large_pages NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ use_large_pages string TRUE SQL> show parameter sga_max_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_max_size big integer 3G SQL> show parameter sga_target NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_target big integer 3G Another point is stop all Oracle Databases running in the node before executing the script. So, in the first node was called the rootupgrade.sh: [root@exacl04n1 ~]# /u01/app/19.0.0.0/grid/rootupgrade.sh echo "ALTER DISKGROUP DATAC4 SET ATTRIBUTE 'compatible.asm' = '19.3.0.0.0';" | sqlplus -s / as sysasm Diskgroup altered. [grid@exacl04n1 +ASM1]$ echo "ALTER DISKGROUP RECOC4 SET ATTRIBUTE 'compatible.asm' = '19.3.0.0.0';" | sqlplus -s / as sysasm Diskgroup altered. [grid@exacl04n1 +ASM1]$ /u01/app/19.0.0.0/grid/oui/bin/runInstaller -nowait -waitforcompletion -ignoreSysPrereqs -updateNodeList ORACLE_HOME=/u01/app/19.0.0.0/grid "CLUSTER_NODES={exacl04n1,exacl04n2}" CRS=true LOCAL_NODE=exacl04n1 Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 16174 MB Passed The inventory pointer is located at /etc/oraInst.loc [grid@exacl04n1 +ASM1]$ cat /u01/app/oraInventory/ContentsXML/inventory.xml |grep grid # 安装并应用DB OJVM patch 30484981. su - oracle -- Shutdown DB and Listener sqlplus / as sysdba shutdown immediate exit lsnrctl stop -- Run: opatch apply cd $ORACLE_HOME/OPatch ./opatch apply /u01/orasw/patches/30463595/30484981 -oh $ORACLE_HOME -- Startup DB and Listener sqlplus / as sysdba startup exit lsnrctl start -- Run: datapatch cd $ORACLE_HOME/OPatch ./datapatch -verbose Check dba_registry COL version FORMAT a10 COL action FORMAT a10 COL status FORMAT a10 COL action_time FORMAT a30 COL description FORMAT a65 SELECT patch_id,patch_type,action,status,action_time,description FROM dba_registry_sqlpatch; 重新编译 $ cd $ORACLE_HOME/rdbms/admin oracle@anbob:/u01/app/oracle/product/19JVM/rdbms/admin $ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl --n 1 --e --b utlrp --d '''.''' utlrp.sql SQL> select count(*) from cdb_objects where status='INVALID'; COUNT(*) ---------- 0