{"id":864,"date":"2021-08-15T13:09:55","date_gmt":"2021-08-15T16:09:55","guid":{"rendered":"https:\/\/www.fernandosimon.com\/blog\/?p=864"},"modified":"2021-08-15T17:59:52","modified_gmt":"2021-08-15T20:59:52","slug":"21c-grid-infrastructure-upgrade","status":"publish","type":"post","link":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/","title":{"rendered":"21c Grid Infrastructure Upgrade"},"content":{"rendered":"<p style=\"text-align: justify;\">With the release of the 21c of Oracle Database is time to study new features. The 21c version of Grid Infrastructure (and ASM) was released and an upgrade from orders versions can be executed. It is not a complex task, but some details need to be verified. In this post, I will show the steps to upgrade the Grid Infrastructure to 21c. If you need to upgrade from 18c to 19c you can check my <a href=\"https:\/\/www.fernandosimon.com\/blog\/19c-grid-infrastructure-upgrade\/\" target=\"_blank\" rel=\"noopener\">previous post<\/a>.<\/p>\n<h1 style=\"text-align: justify;\">Planning<\/h1>\n<p style=\"text-align: justify;\">The first step that you need to do is plan everything. You need to check the requirements, read the docs, download files, and plan the actions. While I am writing this post, there is no official MOS docs about how to upgrade the GI to 19c. The first place to the procedure is the <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/21\/cwlin\/grid-infrastructure-installation-and-upgrade-guide-linux.pdf\" target=\"_blank\" rel=\"noopener\">official doc for GI Installation and Upgrade<\/a>, mainly <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/21\/cwlin\/upgrading-oracle-grid-infrastructure.html#GUID-DF76F201-3374-486F-9D19-06276764569F\" target=\"_blank\" rel=\"noopener\">chapter 11<\/a>. And another good example is <a href=\"https:\/\/support.oracle.com\/epmos\/faces\/DocContentDisplay?id=2542082.1\" target=\"_blank\" rel=\"noopener\">19c Grid Infrastructure and Database Upgrade steps for Exadata Database Machine running on Oracle Linux (Doc ID 2542082.1)<\/a>.<\/p>\n<p style=\"text-align: justify;\">So, what you need to consider:<\/p>\n<ul style=\"text-align: justify;\">\n<li>OS version: If it is compatible with 21c and if you are using asmlib or asm filter, check kernel modules and <a href=\"https:\/\/support.oracle.com\/epmos\/faces\/DocContentDisplay?id=1369107.1\" target=\"_blank\" rel=\"noopener\">certification matrix<\/a>.<\/li>\n<li>Current GI: Maybe you need to apply some patches. The best practice recommends using the last version.<\/li>\n<li>Used features (like AFD, HAIP, Resources): Check compatibilities of the old features with 21c. Maybe you need to remove HAIP or change your crs resources.<\/li>\n<li>21c requirements for GI: Check memory, space, and database versions.<\/li>\n<li>Oracle Home patches (for databases running): Check if you need to apply some patches for your database to be compatible with GI 21c.<\/li>\n<li>Backup of your Databases: Just in case you need to roll back something.<\/li>\n<\/ul>\n<h1 style=\"text-align: justify;\">My environment<\/h1>\n<p style=\"text-align: justify;\">The environment that I am using for this example is:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Oracle Linux 8.4.<\/li>\n<li>GI cluster with two nodes.<\/li>\n<li>ASM Filter for disk access.<\/li>\n<li>19.11 for GI.<\/li>\n<li>19.12 for Oracle Home database.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">I personally recommend upgrading your current GI to 19c before upgrade or apply one of the last PSU for your running version. This avoids a lot of errors since most of the know bugs will be patched. Check below my environment:<\/p>\n<p style=\"text-align: justify;\"><!--more Click here to read more...--><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# uname -a\r\nLinux oel8n1.oralocal 5.4.17-2102.201.3.el8uek.x86_64 #2 SMP Fri Apr 23 09:05:57 PDT 2021 x86_64 x86_64 x86_64 GNU\/Linux\r\n[root@oel8n1 ~]#\r\n[root@oel8n1 ~]#\r\n[root@oel8n1 ~]# cat \/etc\/redhat-release\r\nRed Hat Enterprise Linux release 8.4 (Ootpa)\r\n[root@oel8n1 ~]# su - grid \r\n[grid@oel8n1 install]$ $ORACLE_HOME\/OPatch\/opatch lspatches\r\n32399816;OJVM RELEASE UPDATE: 19.11.0.0.210420 (32399816)\r\n32585572;DBWLM RELEASE UPDATE 19.0.0.0.0 (32585572)\r\n32584670;TOMCAT RELEASE UPDATE 19.0.0.0.0 (32584670)\r\n32579761;OCW RELEASE UPDATE 19.11.0.0.0 (32579761)\r\n32576499;ACFS RELEASE UPDATE 19.11.0.0.0 (32576499)\r\n32545013;Database Release Update : 19.11.0.0.210420 (32545013)\r\n\r\nOPatch succeeded.\r\n[grid@oel8n1 install]$\r\n[grid@oel8n1 install]$ crsctl stat res -t\r\n--------------------------------------------------------------------------------\r\nName           Target  State        Server                   State details\r\n--------------------------------------------------------------------------------\r\nLocal Resources\r\n--------------------------------------------------------------------------------\r\nora.LISTENER.lsnr\r\n               ONLINE  ONLINE       oel8n1                   STABLE\r\n               ONLINE  ONLINE       oel8n2                   STABLE\r\nora.chad\r\n               OFFLINE OFFLINE      oel8n1                   STABLE\r\n               OFFLINE OFFLINE      oel8n2                   STABLE\r\nora.net1.network\r\n               ONLINE  ONLINE       oel8n1                   STABLE\r\n               ONLINE  ONLINE       oel8n2                   STABLE\r\nora.ons\r\n               ONLINE  ONLINE       oel8n1                   STABLE\r\n               ONLINE  ONLINE       oel8n2                   STABLE\r\nora.proxy_advm\r\n               OFFLINE OFFLINE      oel8n1                   STABLE\r\n               OFFLINE OFFLINE      oel8n2                   STABLE\r\n--------------------------------------------------------------------------------\r\nCluster Resources\r\n--------------------------------------------------------------------------------\r\nora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\n      2        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.DATA.dg(ora.asmgroup)\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\n      2        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.LISTENER_SCAN1.lsnr\r\n      1        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.LISTENER_SCAN2.lsnr\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\nora.LISTENER_SCAN3.lsnr\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\nora.RECO.dg(ora.asmgroup)\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\n      2        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.SYSTEMDG.dg(ora.asmgroup)\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\n      2        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.asm(ora.asmgroup)\r\n      1        ONLINE  ONLINE       oel8n1                   Started,STABLE\r\n      2        ONLINE  ONLINE       oel8n2                   Started,STABLE\r\nora.asmnet1.asmnetwork(ora.asmgroup)\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\n      2        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.cdb19t.db\r\n      1        ONLINE  ONLINE       oel8n1                   Open,HOME=\/u01\/app\/o\r\n                                                             racle\/product\/19.0.0\r\n                                                             .0\/dbhome_1,STABLE\r\n      2        ONLINE  ONLINE       oel8n2                   Open,HOME=\/u01\/app\/o\r\n                                                             racle\/product\/19.0.0\r\n                                                             .0\/dbhome_1,STABLE\r\nora.cvu\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\nora.oel8n1.vip\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\nora.oel8n2.vip\r\n      1        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.qosmserver\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\nora.scan1.vip\r\n      1        ONLINE  ONLINE       oel8n2                   STABLE\r\nora.scan2.vip\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\nora.scan3.vip\r\n      1        ONLINE  ONLINE       oel8n1                   STABLE\r\n--------------------------------------------------------------------------------\r\n[grid@oel8n1 install]$<\/pre>\n<p style=\"text-align: justify;\"><em>At the end of the post, I attached the log of and GI upgrade from 19.5 to 21c, and this particular GI runs using ASMLIB. The server in this case runs at OEL 7.6.<\/em><\/p>\n<h1 style=\"text-align: justify;\">Upgrading<\/h1>\n<h2 style=\"text-align: justify;\">Creating folders<\/h2>\n<p style=\"text-align: justify;\">After requirements meet, you can create the folders for your GI in all nodes of the cluster:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# mkdir -p \/u01\/app\/21.0.0.0\/grid\r\n[root@oel8n1 ~]# chown grid \/u01\/app\/21.0.0.0\/grid\r\n[root@oel8n1 ~]# chgrp -R oinstall \/u01\/app\/21.0.0.0\/grid\r\n[root@oel8n1 ~]#\r\n\r\n####################################\r\n#\r\n# Second NODE\r\n#\r\n####################################\r\n[root@oel8n2 ~]# mkdir -p \/u01\/app\/21.0.0.0\/grid\r\n[root@oel8n2 ~]# chown grid \/u01\/app\/21.0.0.0\/grid\r\n[root@oel8n2 ~]# chgrp -R oinstall \/u01\/app\/21.0.0.0\/grid\r\n[root@oel8n2 ~]#<\/pre>\n<h2 style=\"text-align: justify;\">Unzip GI<\/h2>\n<p style=\"text-align: justify;\">After, in the first node, you can unzip the GI installation (as the same user that runs your GI today). Look at the source and destination:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@oel8n1 ~]$ unzip -qa \/u01\/install\/Grid\/V1011504-01.zip -d \/u01\/app\/21.0.0.0\/grid\r\n[grid@oel8n1 ~]$<\/pre>\n<h2 style=\"text-align: justify;\">runcluvy<\/h2>\n<p style=\"text-align: justify;\">The next step is executing runcluvy to check if all the requirements are meet to upgrade the GI. Check below the usage and attention to the parameters. The output is cropped but you can check the <a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Upgrade-GI-21c-runcluvy-raw-output.txt\" target=\"_blank\" rel=\"noopener\">full output at this link<\/a>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@oel8n1 grid]$ .\/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome \/u01\/app\/19.0.0.0\/grid -dest_crshome \/u01\/app\/21.0.0.0\/grid -dest_version 21.0.0.0.0 -fixup -verbose\r\n\r\nPerforming following verification checks ...\r\n\r\n  Physical Memory ...\r\n  Node Name     Available                 Required                  Status\r\n  ------------  ------------------------  ------------------------  ----------\r\n  oel8n2        11.6928GB (1.2260776E7KB)  8GB (8388608.0KB)         passed\r\n  oel8n1        11.6928GB (1.2260776E7KB)  8GB (8388608.0KB)         passed\r\n  Physical Memory ...PASSED\r\n...\r\n...\r\n...\r\n  DefaultTasksMax parameter ...PASSED\r\n  zeroconf check ...PASSED\r\n  ASM Filter Driver configuration ...PASSED\r\n  Systemd login manager IPC parameter ...PASSED\r\n\r\nPre-check for cluster services setup was unsuccessful.\r\nChecks did not pass for the following nodes:\r\n        oel8n2,oel8n1\r\n\r\n\r\nFailures were encountered during execution of CVU verification request \"stage -pre crsinst\".\r\n\r\nSwap Size ...FAILED\r\noel8n2: PRVF-7573 : Sufficient swap size is not available on node \"oel8n2\"\r\n        [Required = 11.6928GB (1.2260776E7KB) ; Found = 3.9648GB (4157436.0KB)]\r\n\r\noel8n1: PRVF-7573 : Sufficient swap size is not available on node \"oel8n1\"\r\n        [Required = 11.6928GB (1.2260776E7KB) ; Found = 3.9648GB (4157436.0KB)]\r\n\r\nCRS Integrity ...FAILED\r\nthat default ASM disk discovery string is in use ...FAILED\r\nRPM Package Manager database ...INFORMATION\r\nPRVG-11250 : The check \"RPM Package Manager database\" was not performed because\r\nit needs 'root' user privileges.\r\n\r\nRefer to My Oracle Support notes \"2548970.1\" for more details regarding errors\r\nPRVG-11250\".\r\n\r\n\r\nCVU operation performed:      stage -pre crsinst\r\nDate:                         Aug 15, 2021 9:44:11 AM\r\nClusterware version:          19.0.0.0.0\r\nCVU home:                     \/u01\/app\/21.0.0.0\/grid\r\nGrid home:                    \/u01\/app\/19.0.0.0\/grid\r\nUser:                         grid\r\nOperating system:             Linux5.4.17-2102.201.3.el8uek.x86_64\r\n[grid@oel8n1 grid]$\r\n<\/pre>\n<p style=\"text-align: justify;\">Above you can see that I got 3 errors: swap, rpm database, and ASM disk string (asm_diskstring). About the last one, the explanation (according to the doc) is:<\/p>\n<p style=\"text-align: justify;\"><em>The default value of ASM_DISKSTRING might not find all disks in all situations. In addition, if your installation uses multipathing software, then the software might place pseudo-devices in a path that is different from the operating system default.<\/em><\/p>\n<p style=\"text-align: justify;\">But in my case everything is correct (I am using AFD and the correct way to set is using dsset) and I can continue:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@oel8n1 grid]$ asmcmd\r\nASMCMD&gt; dsget\r\nparameter:\r\nprofile:\/dev\/sd*,AFD:*,AFD:*\r\nASMCMD&gt;\r\n[grid@oel8n1 grid]$<\/pre>\n<p style=\"text-align: justify;\"><strong>If you face any\/whatever error, please verify and fix it before continuing.<\/strong><\/p>\n<h2 style=\"text-align: justify;\">gridSetup.sh<\/h2>\n<p style=\"text-align: justify;\">Since 12.1 is possible to apply patches before calling the installation. In this case (since 21c was released a few days ago), there is no RU or RUR to be applied. If some exist (while you are upgrading and following here) you can call gridSetup with -applyRU or -applyRUR parameter. One example you can find in my <a href=\"https:\/\/www.fernandosimon.com\/blog\/19c-grid-infrastructure-upgrade\/\" target=\"_blank\" rel=\"noopener\">previous post<\/a>.<\/p>\n<p style=\"text-align: justify;\">Is needed to unset the ORACLE_HOME, ORACLE_BASE, and ORACLE_SID before calling the gridSetup.sh<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@oel8n1 ~]$ unset ORACLE_HOME\r\n[grid@oel8n1 ~]$ unset ORACLE_BASE\r\n[grid@oel8n1 ~]$ unset ORACLE_SID\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ cd \/u01\/app\/21.0.0.0\/grid\/\r\n[grid@oel8n1 grid]$\r\n[grid@oel8n1 grid]$\r\n[grid@oel8n1 grid]$ .\/gridSetup.sh\r\nERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.\r\nLaunching Oracle Grid Infrastructure Setup Wizard...\r\n<\/pre>\n<p style=\"text-align: justify;\">And after we have:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-865 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png\" alt=\"\" width=\"470\" height=\"269\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png 470w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01-300x172.png 300w\" sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">And the next steps are basically <em>NextNextFinish<\/em> until the moment that we need to execute the rootupgrade.sh in each node. Check the gallery below:<\/p>\n<p class=\"jetpack-slideshow-noscript robots-nocontent\">This slideshow requires JavaScript.<\/p><div id=\"gallery-864-1-slideshow\" class=\"jetpack-slideshow-window jetpack-slideshow jetpack-slideshow-black\" data-trans=\"fade\" data-autostart=\"1\" data-gallery=\"[{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-02.png&quot;,&quot;id&quot;:&quot;866&quot;,&quot;title&quot;:&quot;Grid-Install-02&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-03.png&quot;,&quot;id&quot;:&quot;867&quot;,&quot;title&quot;:&quot;Grid-Install-03&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-04.png&quot;,&quot;id&quot;:&quot;868&quot;,&quot;title&quot;:&quot;Grid-Install-04&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-05.png&quot;,&quot;id&quot;:&quot;869&quot;,&quot;title&quot;:&quot;Grid-Install-05&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-06.png&quot;,&quot;id&quot;:&quot;870&quot;,&quot;title&quot;:&quot;Grid-Install-06&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-07.png&quot;,&quot;id&quot;:&quot;871&quot;,&quot;title&quot;:&quot;Grid-Install-07&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-08.png&quot;,&quot;id&quot;:&quot;872&quot;,&quot;title&quot;:&quot;Grid-Install-08&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-09.png&quot;,&quot;id&quot;:&quot;873&quot;,&quot;title&quot;:&quot;Grid-Install-09&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-10.png&quot;,&quot;id&quot;:&quot;874&quot;,&quot;title&quot;:&quot;Grid-Install-10&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-11.png&quot;,&quot;id&quot;:&quot;875&quot;,&quot;title&quot;:&quot;Grid-Install-11&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-12.png&quot;,&quot;id&quot;:&quot;876&quot;,&quot;title&quot;:&quot;Grid-Install-12&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;}]\" itemscope itemtype=\"https:\/\/schema.org\/ImageGallery\"><\/div>\n<p style=\"text-align: justify;\">And the rootupgrade request for both nodes:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-13.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-877 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-13.png\" alt=\"\" width=\"983\" height=\"677\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-13.png 983w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-13-300x207.png 300w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-13-768x529.png 768w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-13-624x430.png 624w\" sizes=\"auto, (max-width: 983px) 100vw, 983px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Before we execute the rootupgrade.sh we need to: relocate databases\/services to the second node, or stop all databases. If you relocate, your databases will continue to run and you will have minimal downtime. Here I stopped my databases<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# su - oracle\r\n[oracle@oel8n1 ~]$ export ORACLE_HOME=\/u01\/app\/oracle\/product\/19.0.0.0\/dbhome_1\r\n[oracle@oel8n1 ~]$ export PATH=$ORACLE_HOME\/bin:$PATH\r\n[oracle@oel8n1 ~]$ srvctl status database -d cdb19t\r\nInstance cdb19t1 is running on node oel8n1\r\nInstance cdb19t2 is running on node oel8n2\r\n[oracle@oel8n1 ~]$\r\n[oracle@oel8n1 ~]$ srvctl stop database -d cdb19t -o immediate\r\n[oracle@oel8n1 ~]$\r\n[oracle@oel8n1 ~]$ exit\r\nlogout\r\n[root@oel8n1 ~]#<\/pre>\n<p style=\"text-align: justify;\">And now we can call the rootupgrade.sh in each node (one per time).<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# \/u01\/app\/21.0.0.0\/grid\/rootupgrade.sh\r\nPerforming root user operation.\r\n\r\nThe following environment variables are set as:\r\n    ORACLE_OWNER= grid\r\n    ORACLE_HOME=  \/u01\/app\/21.0.0.0\/grid\r\n\r\nEnter the full pathname of the local bin directory: [\/usr\/local\/bin]:\r\nThe contents of \"dbhome\" have not changed. No need to overwrite.\r\nThe file \"oraenv\" already exists in \/usr\/local\/bin.  Overwrite it? (y\/n)\r\n[n]: y\r\n   Copying oraenv to \/usr\/local\/bin ...\r\nThe file \"coraenv\" already exists in \/usr\/local\/bin.  Overwrite it? (y\/n)\r\n[n]: y\r\n   Copying coraenv to \/usr\/local\/bin ...\r\n\r\nEntries will be added to the \/etc\/oratab file as needed by\r\nDatabase Configuration Assistant when a database is created\r\nFinished running generic part of root script.\r\nNow product-specific root actions will be performed.\r\nRelinking oracle with rac_on option\r\nUsing configuration parameter file: \/u01\/app\/21.0.0.0\/grid\/crs\/install\/crsconfig_params\r\nThe log of current session can be found at:\r\n  \/u01\/app\/grid\/crsdata\/oel8n1\/crsconfig\/rootcrs_oel8n1_2021-08-15_10-39-20AM.log\r\n2021\/08\/15 10:39:46 CLSRSC-595: Executing upgrade step 1 of 18: 'UpgradeTFA'.\r\n2021\/08\/15 10:39:46 CLSRSC-4015: Performing install or upgrade action for Oracle Autonomous Health Framework (AHF).\r\n2021\/08\/15 10:39:46 CLSRSC-595: Executing upgrade step 2 of 18: 'ValidateEnv'.\r\n2021\/08\/15 10:39:52 CLSRSC-4005: Failed to patch Oracle Autonomous Health Framework (AHF). Grid Infrastructure operations will continue.\r\n2021\/08\/15 10:39:53 CLSRSC-595: Executing upgrade step 3 of 18: 'GetOldConfig'.\r\n2021\/08\/15 10:39:54 CLSRSC-464: Starting retrieval of the cluster configuration data\r\n2021\/08\/15 10:40:09 CLSRSC-692: Checking whether CRS entities are ready for upgrade. This operation may take a few minutes.\r\n2021\/08\/15 10:41:10 CLSRSC-693: CRS entities validation completed successfully.\r\n2021\/08\/15 10:41:22 CLSRSC-515: Starting OCR manual backup.\r\n2021\/08\/15 10:41:37 CLSRSC-516: OCR manual backup successful.\r\n2021\/08\/15 10:41:48 CLSRSC-465: Retrieval of the cluster configuration data has successfully completed.\r\n2021\/08\/15 10:41:48 CLSRSC-595: Executing upgrade step 4 of 18: 'GenSiteGUIDs'.\r\n2021\/08\/15 10:41:48 CLSRSC-595: Executing upgrade step 5 of 18: 'UpgPrechecks'.\r\n2021\/08\/15 10:42:07 CLSRSC-595: Executing upgrade step 6 of 18: 'SetupOSD'.\r\n2021\/08\/15 10:42:08 CLSRSC-595: Executing upgrade step 7 of 18: 'PreUpgrade'.\r\n2021\/08\/15 10:42:50 CLSRSC-486:\r\n At this stage of upgrade, the OCR has changed.\r\n Any attempt to downgrade the cluster after this point will require a complete cluster outage to restore the OCR.\r\n2021\/08\/15 10:42:50 CLSRSC-541:\r\n To downgrade the cluster:\r\n 1. All nodes that have been upgraded must be downgraded.\r\n2021\/08\/15 10:42:51 CLSRSC-542:\r\n 2. Before downgrading the last node, the Grid Infrastructure stack on all other cluster nodes must be down.\r\n2021\/08\/15 10:42:51 CLSRSC-468: Setting Oracle Clusterware and ASM to rolling migration mode\r\n2021\/08\/15 10:42:52 CLSRSC-482: Running command: '\/u01\/app\/19.0.0.0\/grid\/bin\/crsctl start rollingupgrade 21.0.0.0.0'\r\nCRS-1131: The cluster was successfully set to rolling upgrade mode.\r\n2021\/08\/15 10:42:58 CLSRSC-482: Running command: '\/u01\/app\/21.0.0.0\/grid\/bin\/asmca -silent -upgradeNodeASM -nonRolling false -oldCRSHome \/u01\/app\/19.0.0.0\/grid -oldCRSVersion 19.0.0.0.0 -firstNode true -startRolling false '\r\n2021\/08\/15 10:43:04 CLSRSC-469: Successfully set Oracle Clusterware and ASM to rolling migration mode\r\n2021\/08\/15 10:43:10 CLSRSC-466: Starting shutdown of the current Oracle Grid Infrastructure stack\r\n2021\/08\/15 10:43:50 CLSRSC-467: Shutdown of the current Oracle Grid Infrastructure stack has successfully completed.\r\n2021\/08\/15 10:43:55 CLSRSC-595: Executing upgrade step 8 of 18: 'CheckCRSConfig'.\r\n2021\/08\/15 10:43:57 CLSRSC-595: Executing upgrade step 9 of 18: 'UpgradeOLR'.\r\n2021\/08\/15 10:44:16 CLSRSC-595: Executing upgrade step 10 of 18: 'ConfigCHMOS'.\r\n2021\/08\/15 10:44:16 CLSRSC-595: Executing upgrade step 11 of 18: 'UpgradeAFD'.\r\n2021\/08\/15 10:45:38 CLSRSC-595: Executing upgrade step 12 of 18: 'createOHASD'.\r\n2021\/08\/15 10:45:51 CLSRSC-595: Executing upgrade step 13 of 18: 'ConfigOHASD'.\r\n2021\/08\/15 10:45:52 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.service'\r\n2021\/08\/15 10:46:46 CLSRSC-595: Executing upgrade step 14 of 18: 'InstallACFS'.\r\n2021\/08\/15 10:47:22 CLSRSC-595: Executing upgrade step 15 of 18: 'InstallKA'.\r\n2021\/08\/15 10:47:31 CLSRSC-595: Executing upgrade step 16 of 18: 'UpgradeCluster'.\r\n2021\/08\/15 10:48:43 CLSRSC-343: Successfully started Oracle Clusterware stack\r\nclscfg: EXISTING configuration version 19 detected.\r\nSuccessfully taken the backup of node specific configuration in OCR.\r\nSuccessfully accumulated necessary OCR keys.\r\nCreating OCR keys for user 'root', privgrp 'root'..\r\nOperation successful.\r\n2021\/08\/15 10:49:07 CLSRSC-595: Executing upgrade step 17 of 18: 'UpgradeNode'.\r\n2021\/08\/15 10:49:12 CLSRSC-474: Initiating upgrade of resource types\r\n2021\/08\/15 10:49:19 CLSRSC-475: Upgrade of resource types successfully initiated.\r\n2021\/08\/15 10:49:25 CLSRSC-595: Executing upgrade step 18 of 18: 'PostUpgrade'.\r\n2021\/08\/15 10:49:29 CLSRSC-474: Initiating upgrade of resource types\r\n2021\/08\/15 10:49:34 CLSRSC-475: Upgrade of resource types successfully initiated.\r\n2021\/08\/15 10:49:40 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded\r\n[root@oel8n1 ~]#<\/pre>\n<p style=\"text-align: justify;\">And at the second node (remember to relocate your database to the first node if you relocate it before):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n2 ~]# \/u01\/app\/21.0.0.0\/grid\/rootupgrade.sh\r\nPerforming root user operation.\r\n\r\nThe following environment variables are set as:\r\n    ORACLE_OWNER= grid\r\n    ORACLE_HOME=  \/u01\/app\/21.0.0.0\/grid\r\n\r\nEnter the full pathname of the local bin directory: [\/usr\/local\/bin]:\r\nThe contents of \"dbhome\" have not changed. No need to overwrite.\r\nThe file \"oraenv\" already exists in \/usr\/local\/bin.  Overwrite it? (y\/n)\r\n[n]: y\r\n   Copying oraenv to \/usr\/local\/bin ...\r\nThe file \"coraenv\" already exists in \/usr\/local\/bin.  Overwrite it? (y\/n)\r\n[n]: y\r\n   Copying coraenv to \/usr\/local\/bin ...\r\n\r\nEntries will be added to the \/etc\/oratab file as needed by\r\nDatabase Configuration Assistant when a database is created\r\nFinished running generic part of root script.\r\nNow product-specific root actions will be performed.\r\nRelinking oracle with rac_on option\r\nUsing configuration parameter file: \/u01\/app\/21.0.0.0\/grid\/crs\/install\/crsconfig_params\r\nThe log of current session can be found at:\r\n  \/u01\/app\/grid\/crsdata\/oel8n2\/crsconfig\/rootcrs_oel8n2_2021-08-15_10-50-57AM.log\r\n2021\/08\/15 10:51:12 CLSRSC-595: Executing upgrade step 1 of 18: 'UpgradeTFA'.\r\n2021\/08\/15 10:51:12 CLSRSC-4015: Performing install or upgrade action for Oracle Autonomous Health Framework (AHF).\r\n2021\/08\/15 10:51:12 CLSRSC-595: Executing upgrade step 2 of 18: 'ValidateEnv'.\r\n2021\/08\/15 10:51:13 CLSRSC-595: Executing upgrade step 3 of 18: 'GetOldConfig'.\r\n2021\/08\/15 10:51:13 CLSRSC-464: Starting retrieval of the cluster configuration data\r\n2021\/08\/15 10:51:18 CLSRSC-4005: Failed to patch Oracle Autonomous Health Framework (AHF). Grid Infrastructure operations will continue.\r\n2021\/08\/15 10:51:26 CLSRSC-465: Retrieval of the cluster configuration data has successfully completed.\r\n2021\/08\/15 10:51:26 CLSRSC-595: Executing upgrade step 4 of 18: 'GenSiteGUIDs'.\r\n2021\/08\/15 10:51:26 CLSRSC-595: Executing upgrade step 5 of 18: 'UpgPrechecks'.\r\n2021\/08\/15 10:51:29 CLSRSC-595: Executing upgrade step 6 of 18: 'SetupOSD'.\r\n2021\/08\/15 10:51:29 CLSRSC-595: Executing upgrade step 7 of 18: 'PreUpgrade'.\r\n2021\/08\/15 10:51:38 CLSRSC-466: Starting shutdown of the current Oracle Grid Infrastructure stack\r\n2021\/08\/15 10:52:13 CLSRSC-467: Shutdown of the current Oracle Grid Infrastructure stack has successfully completed.\r\n2021\/08\/15 10:52:16 CLSRSC-595: Executing upgrade step 8 of 18: 'CheckCRSConfig'.\r\n2021\/08\/15 10:52:19 CLSRSC-595: Executing upgrade step 9 of 18: 'UpgradeOLR'.\r\n2021\/08\/15 10:52:27 CLSRSC-595: Executing upgrade step 10 of 18: 'ConfigCHMOS'.\r\n2021\/08\/15 10:52:27 CLSRSC-595: Executing upgrade step 11 of 18: 'UpgradeAFD'.\r\n2021\/08\/15 10:53:33 CLSRSC-595: Executing upgrade step 12 of 18: 'createOHASD'.\r\n2021\/08\/15 10:53:37 CLSRSC-595: Executing upgrade step 13 of 18: 'ConfigOHASD'.\r\n2021\/08\/15 10:53:37 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.service'\r\n2021\/08\/15 10:54:18 CLSRSC-595: Executing upgrade step 14 of 18: 'InstallACFS'.\r\n2021\/08\/15 10:55:17 CLSRSC-595: Executing upgrade step 15 of 18: 'InstallKA'.\r\n2021\/08\/15 10:55:20 CLSRSC-595: Executing upgrade step 16 of 18: 'UpgradeCluster'.\r\n2021\/08\/15 10:56:47 CLSRSC-343: Successfully started Oracle Clusterware stack\r\nclscfg: EXISTING configuration version 21 detected.\r\nSuccessfully taken the backup of node specific configuration in OCR.\r\nSuccessfully accumulated necessary OCR keys.\r\nCreating OCR keys for user 'root', privgrp 'root'..\r\nOperation successful.\r\n2021\/08\/15 10:57:06 CLSRSC-595: Executing upgrade step 17 of 18: 'UpgradeNode'.\r\nStart upgrade invoked..\r\n2021\/08\/15 10:57:14 CLSRSC-478: Setting Oracle Clusterware active version on the last node to be upgraded\r\n2021\/08\/15 10:57:14 CLSRSC-482: Running command: '\/u01\/app\/21.0.0.0\/grid\/bin\/crsctl set crs activeversion'\r\nStarted to upgrade the active version of Oracle Clusterware. This operation may take a few minutes.\r\nStarted to upgrade CSS.\r\nCSS was successfully upgraded.\r\nStarted to upgrade Oracle ASM.\r\nStarted to upgrade CRS.\r\nCRS was successfully upgraded.\r\nStarted to upgrade Oracle ACFS.\r\nOracle ACFS was successfully upgraded.\r\nSuccessfully upgraded the active version of Oracle Clusterware.\r\nOracle Clusterware active version was successfully set to 21.0.0.0.0.\r\n2021\/08\/15 10:58:24 CLSRSC-479: Successfully set Oracle Clusterware active version\r\n2021\/08\/15 10:58:26 CLSRSC-476: Finishing upgrade of resource types\r\n2021\/08\/15 10:58:27 CLSRSC-477: Successfully completed upgrade of resource types\r\n2021\/08\/15 10:59:41 CLSRSC-595: Executing upgrade step 18 of 18: 'PostUpgrade'.\r\nSuccessfully updated XAG resources.\r\n2021\/08\/15 11:00:02 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded\r\n[root@oel8n2 ~]#<\/pre>\n<p style=\"text-align: justify;\">As you can see, both reported warnings due to the AHF. This occurred due to the unzip mismatch (since the unzip for Linux does not handle well the file \u2013 you can unzip at windows and move the installation to Linux to be executed later):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">&gt;  Upgrading \/opt\/oracle.ahf\r\n&gt;  error [\/tmp\/.ahf.60044\/ahf_install.60044.zip]:  missing 1519908 bytes in zipfile\r\n&gt;    (attempting to process anyway)\r\n&gt;  error [\/tmp\/.ahf.60044\/ahf_install.60044.zip]:  start of central directory not found;\r\n&gt;    zipfile corrupt.\r\n&gt;    (please check that you have transferred or created the zipfile in the\r\n&gt;    appropriate BINARY mode and that you have compiled UnZip properly)\r\n&gt;  \/u01\/app\/21.0.0.0\/grid\/crs\/install\/ahf_setup: line 2781: \/opt\/oracle.ahf\/bin\/tfactl: No such file or directory\r\n&gt;  \/u01\/app\/21.0.0.0\/grid\/crs\/install\/ahf_setup: line 2785: \/opt\/oracle.ahf\/bin\/tfactl: No such file or directory<\/pre>\n<p style=\"text-align: justify;\">You can follow <a href=\"https:\/\/www.fernandosimon.com\/blog\/upgrade-ahf-and-tfa-at-exadata\/\" target=\"_blank\" rel=\"noopener\">my post about how to upgrade AHF<\/a> to properly upgrade. The log whole logfile for rootupgrade.sh can I uploaded it for <a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/rootcrs_oel8n1_2021-08-15_10-39-20AM.txt\" target=\"_blank\" rel=\"noopener\">node01<\/a> and <a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/rootcrs_oel8n2_2021-08-15_10-50-57AM.txt\" target=\"_blank\" rel=\"noopener\">node02<\/a>.&nbsp;&nbsp;<\/p>\n<p style=\"text-align: justify;\"><strong>If you had errors, please open SR to investigate the issue with MOS.<\/strong><\/p>\n<p style=\"text-align: justify;\">So, the upgrade is finished (the most critical part) and we can continue the process:<\/p>\n<p class=\"jetpack-slideshow-noscript robots-nocontent\">This slideshow requires JavaScript.<\/p><div id=\"gallery-864-2-slideshow\" class=\"jetpack-slideshow-window jetpack-slideshow jetpack-slideshow-black\" data-trans=\"fade\" data-autostart=\"1\" data-gallery=\"[{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-14.png&quot;,&quot;id&quot;:&quot;878&quot;,&quot;title&quot;:&quot;Grid-Install-14&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-15.png&quot;,&quot;id&quot;:&quot;879&quot;,&quot;title&quot;:&quot;Grid-Install-15&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-16.png&quot;,&quot;id&quot;:&quot;880&quot;,&quot;title&quot;:&quot;Grid-Install-16&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;},{&quot;src&quot;:&quot;https:\\\/\\\/www.fernandosimon.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Grid-Install-17.png&quot;,&quot;id&quot;:&quot;881&quot;,&quot;title&quot;:&quot;Grid-Install-17&quot;,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;itemprop&quot;:&quot;image&quot;}]\" itemscope itemtype=\"https:\/\/schema.org\/ImageGallery\"><\/div>\n<p style=\"text-align: justify;\">As you can see, the end of the process runs again the runcluvy and the same error is reported. If you got errors, please review them before continuing. But we can continue it since they are the same as reported before:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-18.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-882 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-18.png\" alt=\"\" width=\"801\" height=\"699\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-18.png 801w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-18-300x262.png 300w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-18-768x670.png 768w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-18-624x545.png 624w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><\/a> <a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-19.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-883 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-19.png\" alt=\"\" width=\"801\" height=\"699\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-19.png 801w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-19-300x262.png 300w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-19-768x670.png 768w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-19-624x545.png 624w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><\/a><\/p>\n<h1 style=\"text-align: justify;\">Post Upgrade<\/h1>\n<p style=\"text-align: justify;\">We have some small activities to do after the upgrade. Most are related to the user variables and remove old GI.<\/p>\n<p style=\"text-align: justify;\">First is start databases that we stopped:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# su - oracle\r\n[oracle@oel8n1 ~]$ export ORACLE_HOME=\/u01\/app\/oracle\/product\/19.0.0.0\/dbhome_1\r\n[oracle@oel8n1 ~]$ export PATH=$ORACLE_HOME\/bin:$PATH\r\n[oracle@oel8n1 ~]$ srvctl start database -d cdb19t\r\n[oracle@oel8n1 ~]$\r\n[oracle@oel8n1 ~]$ exit\r\nlogout\r\n[root@oel8n1 ~]#<\/pre>\n<p style=\"text-align: justify;\">Fix the environment of the user that runs GI (grid in my environment):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# su - grid\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ cat .bash_profile\r\n# .bash_profile\r\n\r\n# Get the aliases and functions\r\nif [ -f ~\/.bashrc ]; then\r\n        . ~\/.bashrc\r\nfi\r\n\r\n# User specific environment and startup programs\r\n\r\nORACLE_HOME=\/u01\/app\/19.0.0.0\/grid\r\nORACLE_BASE=\/u01\/app\/grid\r\nORACLE_SID=+ASM1\r\nPATH=$ORACLE_HOME\/bin:$PATH\r\numask 022\r\n\r\nexport ORACLE_HOME\r\nexport ORACLE_BASE\r\nexport ORACLE_SID\r\n\r\nPATH=$PATH:$HOME\/.local\/bin:$HOME\/bin\r\n\r\nexport PATH\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ vi .bash_profile\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ cat .bash_profile\r\n# .bash_profile\r\n\r\n# Get the aliases and functions\r\nif [ -f ~\/.bashrc ]; then\r\n        . ~\/.bashrc\r\nfi\r\n\r\n# User specific environment and startup programs\r\n\r\nORACLE_HOME=\/u01\/app\/21.0.0.0\/grid\r\nORACLE_BASE=\/u01\/app\/grid\r\nORACLE_SID=+ASM1\r\nPATH=$ORACLE_HOME\/bin:$PATH\r\numask 022\r\n\r\nexport ORACLE_HOME\r\nexport ORACLE_BASE\r\nexport ORACLE_SID\r\n\r\nPATH=$PATH:$HOME\/.local\/bin:$HOME\/bin\r\n\r\nexport PATH\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$\r\n####################################\r\n#\r\n# Second NODE\r\n#\r\n####################################\r\n[root@oel8n2 ~]# su - grid\r\n[grid@oel8n2 ~]$\r\n[grid@oel8n2 ~]$\r\n[grid@oel8n2 ~]$ cat .bash_profile\r\n# .bash_profile\r\n\r\n# Get the aliases and functions\r\nif [ -f ~\/.bashrc ]; then\r\n        . ~\/.bashrc\r\nfi\r\n\r\n# User specific environment and startup programs\r\n\r\nORACLE_HOME=\/u01\/app\/19.0.0.0\/grid\r\nORACLE_BASE=\/u01\/app\/grid\r\nORACLE_SID=+ASM2\r\nPATH=$ORACLE_HOME\/bin:$PATH\r\numask 022\r\n\r\nexport ORACLE_HOME\r\nexport ORACLE_BASE\r\nexport ORACLE_SID\r\n\r\nPATH=$PATH:$HOME\/.local\/bin:$HOME\/bin\r\n\r\nexport PATH\r\n[grid@oel8n2 ~]$\r\n[grid@oel8n2 ~]$ vi .bash_profile\r\n[grid@oel8n2 ~]$\r\n[grid@oel8n2 ~]$\r\n[grid@oel8n2 ~]$ cat .bash_profile\r\n# .bash_profile\r\n\r\n# Get the aliases and functions\r\nif [ -f ~\/.bashrc ]; then\r\n        . ~\/.bashrc\r\nfi\r\n\r\n# User specific environment and startup programs\r\n\r\nORACLE_HOME=\/u01\/app\/21.0.0.0\/grid\r\nORACLE_BASE=\/u01\/app\/grid\r\nORACLE_SID=+ASM2\r\nPATH=$ORACLE_HOME\/bin:$PATH\r\numask 022\r\n\r\nexport ORACLE_HOME\r\nexport ORACLE_BASE\r\nexport ORACLE_SID\r\n\r\nPATH=$PATH:$HOME\/.local\/bin:$HOME\/bin\r\n\r\nexport PATH\r\n[grid@oel8n2 ~]$<\/pre>\n<p style=\"text-align: justify;\">Remove old GI from oraInventory (commands executed as grid user):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# su - grid\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ cat \/u01\/app\/oraInventory\/ContentsXML\/inventory.xml |grep grid\r\n&lt;HOME NAME=\"OraGI19Home1\" LOC=\"\/u01\/app\/19.0.0.0\/grid\" TYPE=\"O\" IDX=\"1\" CRS=\"true\"&gt;\r\n&lt;HOME NAME=\"OraGI21Home1\" LOC=\"\/u01\/app\/21.0.0.0\/grid\" TYPE=\"O\" IDX=\"3\" CRS=\"true\"\/&gt;\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ unset ORACLE_HOME\r\n[grid@oel8n1 ~]$ export ORACLE_HOME=\/u01\/app\/19.0.0.0\/grid\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ $ORACLE_HOME\/oui\/bin\/runInstaller -detachHome -silent ORACLE_HOME=\/u01\/app\/19.0.0.0\/grid\r\nStarting Oracle Universal Installer...\r\n\r\nChecking swap space: must be greater than 500 MB.   Actual 4046 MB    Passed\r\nThe inventory pointer is located at \/etc\/oraInst.loc\r\nYou can find the log of this install session at:\r\n \/u01\/app\/oraInventory\/logs\/DetachHome2021-08-15_11-58-00AM.log\r\n'DetachHome' was successful.\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ cat \/u01\/app\/oraInventory\/ContentsXML\/inventory.xml |grep grid\r\n&lt;HOME NAME=\"OraGI21Home1\" LOC=\"\/u01\/app\/21.0.0.0\/grid\" TYPE=\"O\" IDX=\"3\" CRS=\"true\"\/&gt;\r\n&lt;HOME NAME=\"OraGI19Home1\" LOC=\"\/u01\/app\/19.0.0.0\/grid\" TYPE=\"O\" IDX=\"1\" REMOVED=\"T\"\/&gt;\r\n[grid@oel8n1 ~]$<\/pre>\n<p style=\"text-align: justify;\">As you can see, at second node is fine, and later do delete for the old GI for both nodes:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@oel8n2 ~]$ cat \/u01\/app\/oraInventory\/ContentsXML\/inventory.xml |grep grid\r\n&lt;HOME NAME=\"OraGI21Home1\" LOC=\"\/u01\/app\/21.0.0.0\/grid\" TYPE=\"O\" IDX=\"3\" CRS=\"true\"\/&gt;\r\n&lt;HOME NAME=\"OraGI19Home1\" LOC=\"\/u01\/app\/19.0.0.0\/grid\" TYPE=\"O\" IDX=\"1\" REMOVED=\"T\"\/&gt;\r\n[grid@oel8n2 ~]$<\/pre>\n<p style=\"text-align: justify;\">Since is an upgrade process, we need to adjust the oraInventory to inform that GI has nodes.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@oel8n1 ~]# su - grid\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ cat \/u01\/app\/oraInventory\/ContentsXML\/inventory.xml\r\n&lt;?xml version=\"1.0\" standalone=\"yes\" ?&gt;\r\n&lt;!-- Copyright (c) 1999, 2021, Oracle and\/or its affiliates.\r\nAll rights reserved. --&gt;\r\n&lt;!-- Do not modify the contents of this file by hand. --&gt;\r\n&lt;INVENTORY&gt;\r\n&lt;VERSION_INFO&gt;\r\n   &lt;SAVED_WITH&gt;12.2.0.7.0&lt;\/SAVED_WITH&gt;\r\n   &lt;MINIMUM_VER&gt;2.1.0.6.0&lt;\/MINIMUM_VER&gt;\r\n&lt;\/VERSION_INFO&gt;\r\n&lt;HOME_LIST&gt;\r\n&lt;HOME NAME=\"dbhome_19_12\" LOC=\"\/u01\/app\/oracle\/product\/19.0.0.0\/dbhome_1\" TYPE=\"O\" IDX=\"2\"&gt;\r\n   &lt;NODE_LIST&gt;\r\n      &lt;NODE NAME=\"oel8n1\"\/&gt;\r\n      &lt;NODE NAME=\"oel8n2\"\/&gt;\r\n   &lt;\/NODE_LIST&gt;\r\n&lt;\/HOME&gt;\r\n&lt;HOME NAME=\"OraGI21Home1\" LOC=\"\/u01\/app\/21.0.0.0\/grid\" TYPE=\"O\" IDX=\"3\" CRS=\"true\"\/&gt;\r\n&lt;HOME NAME=\"OraGI19Home1\" LOC=\"\/u01\/app\/19.0.0.0\/grid\" TYPE=\"O\" IDX=\"1\" REMOVED=\"T\"\/&gt;\r\n&lt;\/HOME_LIST&gt;\r\n&lt;COMPOSITEHOME_LIST&gt;\r\n&lt;\/COMPOSITEHOME_LIST&gt;\r\n&lt;\/INVENTORY&gt;\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ \/u01\/app\/21.0.0.0\/grid\/oui\/bin\/runInstaller -nowait -waitforcompletion -ignoreSysPrereqs -updateNodeList ORACLE_HOME=\/u01\/app\/21.0.0.0\/grid \"CLUSTER_NODES={oel8n1,oel8n2}\" CRS=true LOCAL_NODE=oel8n1\r\nStarting Oracle Universal Installer...\r\n\r\nChecking swap space: must be greater than 500 MB.   Actual 4046 MB    Passed\r\nThe inventory pointer is located at \/etc\/oraInst.loc\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$\r\n[grid@oel8n1 ~]$ cat \/u01\/app\/oraInventory\/ContentsXML\/inventory.xml\r\n&lt;?xml version=\"1.0\" standalone=\"yes\" ?&gt;\r\n&lt;!-- Copyright (c) 1999, 2021, Oracle and\/or its affiliates.\r\nAll rights reserved. --&gt;\r\n&lt;!-- Do not modify the contents of this file by hand. --&gt;\r\n&lt;INVENTORY&gt;\r\n&lt;VERSION_INFO&gt;\r\n   &lt;SAVED_WITH&gt;12.2.0.9.0&lt;\/SAVED_WITH&gt;\r\n   &lt;MINIMUM_VER&gt;2.1.0.6.0&lt;\/MINIMUM_VER&gt;\r\n&lt;\/VERSION_INFO&gt;\r\n&lt;HOME_LIST&gt;\r\n&lt;HOME NAME=\"dbhome_19_12\" LOC=\"\/u01\/app\/oracle\/product\/19.0.0.0\/dbhome_1\" TYPE=\"O\" IDX=\"2\"&gt;\r\n   &lt;NODE_LIST&gt;\r\n      &lt;NODE NAME=\"oel8n1\"\/&gt;\r\n      &lt;NODE NAME=\"oel8n2\"\/&gt;\r\n   &lt;\/NODE_LIST&gt;\r\n&lt;\/HOME&gt;\r\n&lt;HOME NAME=\"OraGI21Home1\" LOC=\"\/u01\/app\/21.0.0.0\/grid\" TYPE=\"O\" IDX=\"3\" CRS=\"true\"&gt;\r\n   &lt;NODE_LIST&gt;\r\n      &lt;NODE NAME=\"oel8n1\"\/&gt;\r\n      &lt;NODE NAME=\"oel8n2\"\/&gt;\r\n   &lt;\/NODE_LIST&gt;\r\n&lt;\/HOME&gt;\r\n&lt;HOME NAME=\"OraGI19Home1\" LOC=\"\/u01\/app\/19.0.0.0\/grid\" TYPE=\"O\" IDX=\"1\" REMOVED=\"T\"\/&gt;\r\n&lt;\/HOME_LIST&gt;\r\n&lt;COMPOSITEHOME_LIST&gt;\r\n&lt;\/COMPOSITEHOME_LIST&gt;\r\n&lt;\/INVENTORY&gt;\r\n[grid@oel8n1 ~]$<\/pre>\n<h1 style=\"text-align: justify;\">Adjust the COMPATIBLE.ASM<\/h1>\n<p style=\"text-align: justify;\">To finish, we can adjust the COMPATIBLE.ASM to 21c. There is no information about this requirement at docs, not even the correct value. But as a guide, you can follow the table for validations directly from <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/21\/ostmg\/diskgroup-compatibility.html#GUID-6C380E9A-8376-43B7-B0B9-68862F8AEDD2\" target=\"_blank\" rel=\"noopener\">ASM doc<\/a>. I set the value below to all diskgroups:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@oel8n1 ~]$ sqlplus \/ as sysasm\r\n\r\nSQL*Plus: Release 21.0.0.0.0 - Production on Sun Aug 15 15:24:30 2021\r\nVersion 21.3.0.0.0\r\n\r\nCopyright (c) 1982, 2021, Oracle.  All rights reserved.\r\n\r\n\r\nConnected to:\r\nOracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production\r\nVersion 21.3.0.0.0\r\n\r\nSQL&gt; SELECT name as dgname, substr(compatibility,1,12) as asmcompat FROM V$ASM_DISKGROUP;\r\n\r\nDGNAME                         ASMCOMPAT\r\n------------------------------ ------------\r\nSYSTEMDG                       19.0.0.0.0\r\nRECO                           19.0.0.0.0\r\nDATA                           19.0.0.0.0\r\n\r\nSQL&gt; ALTER DISKGROUP RECO SET ATTRIBUTE 'compatible.asm' = '21.0.0.0.0';\r\n\r\nDiskgroup altered.\r\n\r\nSQL&gt; ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.asm' = '21.0.0.0.0';\r\n\r\nDiskgroup altered.\r\n\r\nSQL&gt; ALTER DISKGROUP SYSTEMDG SET ATTRIBUTE 'compatible.asm' = '21.0.0.0.0';\r\n\r\nDiskgroup altered.\r\n\r\nSQL&gt; SELECT name as dgname, substr(compatibility,1,12) as asmcompat FROM V$ASM_DISKGROUP;\r\n\r\nDGNAME                         ASMCOMPAT\r\n------------------------------ ------------\r\nSYSTEMDG                       21.0.0.0.0\r\nRECO                           21.0.0.0.0\r\nDATA                           21.0.0.0.0\r\n\r\nSQL&gt;<\/pre>\n<h1 style=\"text-align: justify;\">Upgrade GI for OEL 7.6<\/h1>\n<p style=\"text-align: justify;\">In this <a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Steps-Upgrade-GI-21c-OEL7-GI195.txt\" target=\"_blank\" rel=\"noopener\">link<\/a>, you can see the execution log for GI upgrade from 19.5 to 21c that runs using ASMLIB. The server in this case runs at OEL 7.6.&nbsp; As you can see in the attached file, no errors (besides AHF).<\/p>\n<p style=\"text-align: justify;\">&nbsp;<\/p>\n<p style=\"text-align: justify;\"><strong>Disclaimer<\/strong>:&nbsp;<em>\u201cThe postings on this site are my own and don\u2019t necessarily represent my actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications were removed to allow reach the generic audience and to be useful for the community. Post protected by copyright.\u201d<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the release of the 21c of Oracle Database is time to study new features. The 21c version of Grid Infrastructure (and ASM) was released and an upgrade from orders versions can be executed. It is not a complex task, but some details need to be verified. In this post, I will show the steps [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[71,164,29,56,5,12],"tags":[72,166,165,65,124],"class_list":["post-864","post","type-post","status-publish","format-standard","hentry","category-19c","category-21c","category-database","category-grid-infrastructure","category-oracle","category-upgrade","tag-19c","tag-21c","tag-grid-infrastructure","tag-oracle","tag-upgrade"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>21c Grid Infrastructure Upgrade - Fernando Simon<\/title>\n<meta name=\"description\" content=\"Check how to upgrade Grid Infrastructure to the 21c version. But also some tips and tricks to avoid and bypass know issues and some errors.\u00a0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"21c Grid Infrastructure Upgrade - Fernando Simon\" \/>\n<meta property=\"og:description\" content=\"Check how to upgrade Grid Infrastructure to the 21c version. But also some tips and tricks to avoid and bypass know issues and some errors.\u00a0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\" \/>\n<meta property=\"og:site_name\" content=\"Fernando Simon\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-15T16:09:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-15T20:59:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png\" \/>\n<meta name=\"author\" content=\"Simon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\"},\"author\":{\"name\":\"Simon\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"headline\":\"21c Grid Infrastructure Upgrade\",\"datePublished\":\"2021-08-15T16:09:55+00:00\",\"dateModified\":\"2021-08-15T20:59:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\"},\"wordCount\":1160,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png\",\"keywords\":[\"19c\",\"21c\",\"Grid Infrastructure\",\"Oracle\",\"Upgrade\"],\"articleSection\":[\"19c\",\"21c\",\"Database\",\"Grid Infrastructure\",\"Oracle\",\"Upgrade\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\",\"name\":\"21c Grid Infrastructure Upgrade - Fernando Simon\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png\",\"datePublished\":\"2021-08-15T16:09:55+00:00\",\"dateModified\":\"2021-08-15T20:59:52+00:00\",\"author\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"description\":\"Check how to upgrade Grid Infrastructure to the 21c version. But also some tips and tricks to avoid and bypass know issues and some errors.\u00a0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png\",\"contentUrl\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png\",\"width\":470,\"height\":269},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fernandosimon.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"21c Grid Infrastructure Upgrade\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#website\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/\",\"name\":\"Fernando Simon\",\"description\":\"Have you hugged your backup today?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.fernandosimon.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\",\"name\":\"Simon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g\",\"caption\":\"Simon\"},\"sameAs\":[\"http:\/\/www.fernandosimon.com\"],\"url\":\"https:\/\/www.fernandosimon.com\/blog\/author\/simon\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"21c Grid Infrastructure Upgrade - Fernando Simon","description":"Check how to upgrade Grid Infrastructure to the 21c version. But also some tips and tricks to avoid and bypass know issues and some errors.\u00a0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/","og_locale":"en_US","og_type":"article","og_title":"21c Grid Infrastructure Upgrade - Fernando Simon","og_description":"Check how to upgrade Grid Infrastructure to the 21c version. But also some tips and tricks to avoid and bypass know issues and some errors.\u00a0","og_url":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/","og_site_name":"Fernando Simon","article_published_time":"2021-08-15T16:09:55+00:00","article_modified_time":"2021-08-15T20:59:52+00:00","og_image":[{"url":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png","type":"","width":"","height":""}],"author":"Simon","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#article","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/"},"author":{"name":"Simon","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"headline":"21c Grid Infrastructure Upgrade","datePublished":"2021-08-15T16:09:55+00:00","dateModified":"2021-08-15T20:59:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/"},"wordCount":1160,"commentCount":0,"image":{"@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage"},"thumbnailUrl":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png","keywords":["19c","21c","Grid Infrastructure","Oracle","Upgrade"],"articleSection":["19c","21c","Database","Grid Infrastructure","Oracle","Upgrade"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/","url":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/","name":"21c Grid Infrastructure Upgrade - Fernando Simon","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage"},"image":{"@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage"},"thumbnailUrl":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png","datePublished":"2021-08-15T16:09:55+00:00","dateModified":"2021-08-15T20:59:52+00:00","author":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"description":"Check how to upgrade Grid Infrastructure to the 21c version. But also some tips and tricks to avoid and bypass know issues and some errors.\u00a0","breadcrumb":{"@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#primaryimage","url":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png","contentUrl":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2021\/08\/Grid-Install-01.png","width":470,"height":269},{"@type":"BreadcrumbList","@id":"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fernandosimon.com\/blog\/"},{"@type":"ListItem","position":2,"name":"21c Grid Infrastructure Upgrade"}]},{"@type":"WebSite","@id":"https:\/\/www.fernandosimon.com\/blog\/#website","url":"https:\/\/www.fernandosimon.com\/blog\/","name":"Fernando Simon","description":"Have you hugged your backup today?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fernandosimon.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9","name":"Simon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g","caption":"Simon"},"sameAs":["http:\/\/www.fernandosimon.com"],"url":"https:\/\/www.fernandosimon.com\/blog\/author\/simon\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5ofTp-dW","_links":{"self":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/comments?post=864"}],"version-history":[{"count":0,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/864\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/media?parent=864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/categories?post=864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/tags?post=864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}