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