{"id":1049,"date":"2024-08-07T17:23:18","date_gmt":"2024-08-07T20:23:18","guid":{"rendered":"https:\/\/www.fernandosimon.com\/blog\/?p=1049"},"modified":"2025-05-05T05:27:42","modified_gmt":"2025-05-05T08:27:42","slug":"manually-upgrading-oracle-gi-from-19c-to-23ai","status":"publish","type":"post","link":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/","title":{"rendered":"Manually upgrading Oracle GI from 19c to 23ai"},"content":{"rendered":"<p style=\"text-align: justify;\">With the <a href=\"https:\/\/blogs.oracle.com\/exadata\/post\/oracle-database-23ai-on-exadata\" target=\"_blank\" rel=\"noopener\">official release<\/a> of Oracle 23ai to Exadata on-prem, it is now possible to manually upgrade Grid Infrastructure (GI) from 19c to 23ai. Nowadays the process is simpler than it was in the past, and I already published several examples of how to do this:<\/p>\n<ul style=\"text-align: justify;\">\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/23ai-zero-downtime-oracle-grid-infrastructure-patching-using-release-update-with-silent-install\/\" target=\"_blank\" rel=\"noopener\">23ai, Zero-Downtime Oracle Grid Infrastructure Patching using Release Update with Silent Install<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/23ai-zero-downtime-oracle-grid-infrastructure-patching-gold-image-with-silent-install\/\" target=\"_blank\" rel=\"noopener\">23ai, Zero-Downtime Oracle Grid Infrastructure Patching \u2013 GOLD IMAGE with Silent Install<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/23ai-zero-downtime-oracle-grid-infrastructure-patching-gold-image\/\" target=\"_blank\" rel=\"noopener\">23ai, Zero-Downtime Oracle Grid Infrastructure Patching \u2013 GOLD IMAGE<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/asmca_args\/\" target=\"_blank\" rel=\"noopener\">Adding the parameter to allow the installation of GI 23ai at On-Prem<\/a>.<\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/upgrading-to-gi-23ai-at-exacc-using-cli\/\" target=\"_blank\" rel=\"noopener\">Upgrading to GI 23ai at ExaCC using CLI<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/upgrading-to-gi-23ai-at-exacc\/\" target=\"_blank\" rel=\"noopener\">Upgrading to GI 23ai at ExaCC<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/21c-zero-downtime-oracle-grid-infrastructure-patching-silent-mode\/\" target=\"_blank\" rel=\"noopener\">21c, Zero-Downtime Oracle Grid Infrastructure Patching \u2013 Silent Mode<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/21c-zero-downtime-oracle-grid-infrastructure-patching\/\" target=\"_blank\" rel=\"noopener\">21c, Zero-Downtime Oracle Grid Infrastructure Patching<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/21c-grid-infrastructure-upgrade\/\" target=\"_blank\" rel=\"noopener\">21c Grid Infrastructure Upgrade<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/19c-grid-infrastructure-upgrade\/\" target=\"_blank\" rel=\"noopener\">19c Grid Infrastructure Upgrade<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/reaching-exadata-18c\/\" target=\"_blank\" rel=\"noopener\">Reaching Exadata 18c<\/a> (this includes upgrades of GI from 12.1 to 12.2, and also from 12.2 to 18c)<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">So, several examples that you can use as a guide to reach from GI 12.1 to 19c. In this post, I will upgrade from GI 19.23 (19.23.0.0.240416) to GI 23.5 (23.5.0.24.07).<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1050 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg\" alt=\"\" width=\"468\" height=\"269\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg 468w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001-300x172.jpg 300w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\"><!--more Click here to read more...--><\/p>\n<h1 style=\"text-align: justify;\">Planning<\/h1>\n<p style=\"text-align: justify;\">I recommend that the first step is planning what you need to do, and check all the needed steps. If possible (and exists) read the documentation, and meet all the requirements. While I write this post there is no official MOS note that shows how to upgrade the GI from 19c to 23ai, but we can use the note <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> as a start point, and use the <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/23\/cwlin\/upgrading-oracle-grid-infrastructure.html#GUID-DF76F201-3374-486F-9D19-06276764569F\" target=\"_blank\" rel=\"noopener\">chapter 11<\/a> from the 23ai official doc for <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/23\/cwlin\/grid-infrastructure-installation-and-upgrade-guide-linux.pdf\" target=\"_blank\" rel=\"noopener\">Grid Infrastructure Installation and Upgrade Guide for Linux<\/a>.<\/p>\n<p style=\"text-align: justify;\">Here the focus is to show the upgrade in the Exadata environment, but it is important to understand that Oracle 23ai requires OEL 8 and it is the same for GI. For GI it is more important if you (when the on-prem will be released) have the correct kernel version for ACFS and AFD. So, please read the MOS note <a href=\"https:\/\/support.oracle.com\/epmos\/faces\/DocContentDisplay?id=1369107.1\" target=\"_blank\" rel=\"noopener\">ACFS and AFD Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)<\/a>, and for Exadata, the <a href=\"https:\/\/support.oracle.com\/epmos\/faces\/DocContentDisplay?id=888828.1\" target=\"_blank\" rel=\"noopener\">Exadata Database Machine and Exadata Storage Server Supported Versions (Doc ID 888828.1)<\/a>.<\/p>\n<p style=\"text-align: justify;\">For Exadata, the OEL 8 was introduced with version 23.1 released in March of 2023, and I already explained how to patch and use it:<\/p>\n<ul style=\"text-align: justify;\">\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/exadata-version-23-1-0-0-0-part-01\/\" target=\"_blank\" rel=\"noopener\">Exadata version 23.1.0.0.0 \u2013 Part 01<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/exadata-version-23-1-0-0-0-part-02\/\" target=\"_blank\" rel=\"noopener\">Exadata version 23.1.0.0.0 \u2013 Part 02<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/exadata-version-23-1-0-0-0-part-03\/\" target=\"_blank\" rel=\"noopener\">Exadata version 23.1.0.0.0 \u2013 Part 03<\/a><\/li>\n<li><a href=\"https:\/\/www.fernandosimon.com\/blog\/exadata-version-23-1-0-0-0-part-04\/\" target=\"_blank\" rel=\"noopener\">Exadata version 23.1.0.0.0 \u2013 Part 04<\/a><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">But, independently of where you are running the GI, the <em>compatible.rdbms<\/em> parameter needs to be set for 19.0.0.0. The GI 23ai does not support any version older than 19c. I already explained <a href=\"https:\/\/www.fernandosimon.com\/blog\/upgrading-to-gi-23ai-at-exacc-using-cli\/\" target=\"_blank\" rel=\"noopener\">how to fix this<\/a> in my previous post for ExaCC.<\/p>\n<p style=\"text-align: justify;\">I executed the steps for this post over a test environment, so, maybe it will not use the same version that you have running on your system. I tried to use a simple environment, with just one 19c database running and two node RAC. If you face some issues, missing requirements, or have doubts I <strong>RECOMMEND\/INSIST<\/strong> that you open one SR with Oracle Support to clean everything to allow you to continue the procedure in a perfect environment. One good practice is always to use the latest version of GI 19c, this will reduce the number of bugs that you (maybe) will face.<\/p>\n<h1 style=\"text-align: justify;\">Download the Binaries<\/h1>\n<p style=\"text-align: justify;\">To download the binaries for GI you need to access the Oracle Software Delivery Cloud (<a href=\"https:\/\/edelivery.oracle.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/edelivery.oracle.com\/<\/a>) and search for the package name \u201c<em>Oracle Database 23.5 Exadata<\/em>\u201d (to facilitate, select category \u201c<em>Download Package<\/em>\u201d):<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1051 size-large\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01-1024x435.jpg\" alt=\"\" width=\"625\" height=\"266\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01-1024x435.jpg 1024w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01-300x127.jpg 300w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01-768x326.jpg 768w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01-1536x652.jpg 1536w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01-2048x870.jpg 2048w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-01-624x265.jpg 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">After that, you just select \u201c<em>Oracle Database 23.5<\/em>\u201d, and click \u201c<em>Continue<\/em>\u201d in the top menu to reach the next page:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1052 size-large\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02-1024x466.jpg\" alt=\"\" width=\"625\" height=\"284\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02-1024x466.jpg 1024w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02-300x136.jpg 300w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02-768x349.jpg 768w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02-1536x698.jpg 1536w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02-2048x931.jpg 2048w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/235-Download-02-624x284.jpg 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">To finish and reach the download link, just select \u201c<strong><em>Oracle Database Grid Infrastructure 23.5 &#8211; for Engineered Systems for Linux x86-64<\/em><\/strong>\u201d, click continue (accept the Agreement), and you will have the link to <strong>V1043786-01.zip<\/strong>.<\/p>\n<p style=\"text-align: justify;\">If you try to use this version in a non-Engineered System, you will receive this message: <strong>\u201cORA-27350: This version of the Oracle Database software cannot be run on this platform\u201d<\/strong>.<\/p>\n<h1 style=\"text-align: justify;\">Create Directories<\/h1>\n<p style=\"text-align: justify;\">So, the first step is creating the directories for your new Oracle Home for the GI. Here I executed this (as root user) in each node:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@o23c1n1s2 ~]#\r\n[root@o23c1n1s2 ~]# mkdir -p \/u01\/app\/23.5.0.0\/grid\r\n[root@o23c1n1s2 ~]# chown grid \/u01\/app\/23.5.0.0\/grid\r\n[root@o23c1n1s2 ~]# chgrp -R oinstall \/u01\/app\/23.5.0.0\/grid\r\n[root@o23c1n1s2 ~]#\r\n\r\n####################################\r\n#\r\n# Second NODE\r\n#\r\n####################################\r\n[root@o23c1n2s2 ~]#\r\n[root@o23c1n2s2 ~]# mkdir -p \/u01\/app\/23.5.0.0\/grid\r\n[root@o23c1n2s2 ~]# chown grid \/u01\/app\/23.5.0.0\/grid\r\n[root@o23c1n2s2 ~]# chgrp -R oinstall \/u01\/app\/23.5.0.0\/grid\r\n[root@o23c1n2s2 ~]#<\/pre>\n<h1 style=\"text-align: justify;\">Unzip GI:<\/h1>\n<p style=\"text-align: justify;\">After that, we can, only in the first node, unzip (as grid user) the binaries that were downloaded:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@o23c1n1s2 ~]# su - grid\r\n[grid@o23c1n1s2 ~]$ \r\n[grid@o23c1n1s2 ~]$ unzip -q \/u01\/install\/V1043786-01.zip -d \/u01\/app\/23.5.0.0\/grid\r\n[grid@o23c1n1s2 ~]$<\/pre>\n<h1 style=\"text-align: justify;\">runcluvfy.sh<\/h1>\n<p style=\"text-align: justify;\">After, as a grid user, go to the path that binary was unzipped and call the <em><strong>runcluvfy.sh<\/strong><\/em> with parameters \u201c<em><strong>stage -pre crsinst -upgrade -rolling<\/strong><\/em>\u201d. This will inform it to run the stage with checks for preinstall the CRS installation, check for upgrade requirements, and in rolling mode (one node will patch\/upgrade each time). It is one of the most complete checks because will verify several details in the system, from OS, the current GI, and running databases\/services (in case some of them). Make attention to the other parameters that inform the source and target paths, and the versions as well.<\/p>\n<p style=\"text-align: justify;\">The full command is (the output was cropped because is a long output:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@o23c1n1s2 ~]$ cd \/u01\/app\/23.5.0.0\/grid\/\r\n[grid@o23c1n1s2 grid]$\r\n[grid@o23c1n1s2 grid]$\r\n[grid@o23c1n1s2 grid]$ .\/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome \/u01\/app\/19.23.0.0\/grid -dest_crshome \/u01\/app\/23.5.0.0\/grid -dest_version 23.5.0.0.0 -fixup -verbose\r\n\r\nInitializing ...\r\n\r\nPerforming following verification checks ...\r\n...\r\n  ASM server parameter file and password file configuration. ...PASSED\r\n  Check incorrectly sized ASM Disks ...PASSED\r\n  ASM disk discovery string check ...PASSED\r\n  ASM disk group free space ...PASSED\r\n  correctness of ASM disk group files ownership ...PASSED\r\n  selectivity of ASM discovery string ...PASSED\r\n...\r\nCVU operation performed:      stage -pre crsinst\r\nDate:                         Jul 26, 2024, 8:52:23 PM\r\nCVU version:                  Standalone 23.5.0.24.7 (070324x8664)\r\nClusterware version:          19.0.0.0.0\r\nCVU home:                     \/u01\/app\/23.5.0.0\/grid\r\nGrid home:                    \/u01\/app\/19.23.0.0\/grid\r\nUser:                         grid\r\n...\r\n[grid@o23c1n1s2 grid]$<\/pre>\n<p style=\"text-align: justify;\">In case you for errors, at the end it will inform you what needs to be fixed. By example:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">Disk group RDBMS compatibility setting ...FAILED\r\nDATA: PRVE-3180 : RDBMS compatibility for ASM disk group \"DATA\" is set to\r\n      \"11.2.0.0.0\", which is less than the minimum supported value \"19.0.0.0.0\".\r\n\r\nRECO: PRVE-3180 : RDBMS compatibility for ASM disk group \"RECO\" is set to\r\n      \"11.2.0.0.0\", which is less than the minimum supported value \"19.0.0.0.0\".<\/pre>\n<p style=\"text-align: justify;\">Again, for any additional error, please open SR with the Oracle Exadata Team.<\/p>\n<h1 style=\"text-align: justify;\">gridSetup.sh<\/h1>\n<p style=\"text-align: justify;\">If everything is fine, and there is no error listed, we can call the GUI of the installer\/setup. Before doing that, I recommend unsetting the ORACLE_HOME, ORABLE_BASE, and ORACLE_SID variables. Is a simple call:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[grid@o23c1n1s2 ~]$ unset ORACLE_HOME\r\n[grid@o23c1n1s2 ~]$ unset ORACLE_BASE\r\n[grid@o23c1n1s2 ~]$ unset ORACLE_SID\r\n[grid@o23c1n1s2 ~]$\r\n[grid@o23c1n1s2 ~]$ cd \/u01\/app\/23.5.0.0\/grid\r\n[grid@o23c1n1s2 grid]$ .\/gridSetup.sh<\/pre>\n<p style=\"text-align: justify;\">The GUI will appear and basically is a Next\/Next\/Finish, you can see this in the gallery:<\/p>\n<p class=\"jetpack-slideshow-noscript robots-nocontent\">This slideshow requires JavaScript.<\/p><div id=\"gallery-1049-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\\\/2024\\\/08\\\/Grid-001.jpg&quot;,&quot;id&quot;:&quot;1050&quot;,&quot;title&quot;:&quot;Grid-001&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\\\/2024\\\/08\\\/Grid-002.jpg&quot;,&quot;id&quot;:&quot;1053&quot;,&quot;title&quot;:&quot;Grid-002&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\\\/2024\\\/08\\\/Grid-003.jpg&quot;,&quot;id&quot;:&quot;1054&quot;,&quot;title&quot;:&quot;Grid-003&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\\\/2024\\\/08\\\/Grid-004.jpg&quot;,&quot;id&quot;:&quot;1055&quot;,&quot;title&quot;:&quot;Grid-004&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\\\/2024\\\/08\\\/Grid-005.jpg&quot;,&quot;id&quot;:&quot;1056&quot;,&quot;title&quot;:&quot;Grid-005&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\\\/2024\\\/08\\\/Grid-006.jpg&quot;,&quot;id&quot;:&quot;1057&quot;,&quot;title&quot;:&quot;Grid-006&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\\\/2024\\\/08\\\/Grid-007.jpg&quot;,&quot;id&quot;:&quot;1058&quot;,&quot;title&quot;:&quot;Grid-007&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\\\/2024\\\/08\\\/Grid-008.jpg&quot;,&quot;id&quot;:&quot;1059&quot;,&quot;title&quot;:&quot;Grid-008&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\\\/2024\\\/08\\\/Grid-009.jpg&quot;,&quot;id&quot;:&quot;1060&quot;,&quot;title&quot;:&quot;Grid-009&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\\\/2024\\\/08\\\/Grid-010.jpg&quot;,&quot;id&quot;:&quot;1061&quot;,&quot;title&quot;:&quot;Grid-010&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\\\/2024\\\/08\\\/Grid-011.jpg&quot;,&quot;id&quot;:&quot;1062&quot;,&quot;title&quot;:&quot;Grid-011&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\\\/2024\\\/08\\\/Grid-012.jpg&quot;,&quot;id&quot;:&quot;1063&quot;,&quot;title&quot;:&quot;Grid-012&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\\\/2024\\\/08\\\/Grid-013.jpg&quot;,&quot;id&quot;:&quot;1064&quot;,&quot;title&quot;:&quot;Grid-013&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\\\/2024\\\/08\\\/Grid-014.jpg&quot;,&quot;id&quot;:&quot;1065&quot;,&quot;title&quot;:&quot;Grid-014&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\\\/2024\\\/08\\\/Grid-015.jpg&quot;,&quot;id&quot;:&quot;1066&quot;,&quot;title&quot;:&quot;Grid-015&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\\\/2024\\\/08\\\/Grid-016.jpg&quot;,&quot;id&quot;:&quot;1067&quot;,&quot;title&quot;:&quot;Grid-016&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\\\/2024\\\/08\\\/Grid-017.jpg&quot;,&quot;id&quot;:&quot;1068&quot;,&quot;title&quot;:&quot;Grid-017&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;\">You will reach the moment to execute the <em>rootupgrade.sh<\/em> in both nodes:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-015.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1066 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-015.jpg\" alt=\"\" width=\"581\" height=\"367\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-015.jpg 581w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-015-300x190.jpg 300w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">So, with root you call in the first node (where +ASM1 is running), and later in the rest of the nodes (just remember to stop any databases ruining in the node before calling the script \u2013 you can relocate services to others nodes and no connection error appears at application side). The output below was cropped to reduce the size of the post, but you can see that:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@o23c1n1s2 ~]# \/u01\/app\/23.5.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\/23.5.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\nRAC option enabled on: Linux\r\nExecuting command '\/u01\/app\/23.5.0.0\/grid\/perl\/bin\/perl -I\/u01\/app\/23.5.0.0\/grid\/perl\/lib -I\/u01\/app\/23.5.0.0\/grid\/crs\/install \/u01\/app\/23.5.0.0\/grid\/crs\/install\/rootcrs.pl  -upgrade'\r\nUsing configuration parameter file: \/u01\/app\/23.5.0.0\/grid\/crs\/install\/crsconfig_params\r\nThe log of current session can be found at:\r\n  \/u01\/app\/grid\/crsdata\/o23c1n1s2\/crsconfig\/crsupgrade_o23c1n1s2_2024-07-26_10-10-21PM.log\r\n2024\/07\/26 22:10:44 CLSRSC-595: Executing upgrade step 1 of 17: 'UpgradeTFA'.\r\n2024\/07\/26 22:10:44 CLSRSC-4015: Performing install or upgrade action for Oracle Autonomous Health Framework (AHF).\r\n2024\/07\/26 22:10:44 CLSRSC-4012: Shutting down Oracle Autonomous Health Framework (AHF).\r\n2024\/07\/26 22:11:09 CLSRSC-4013: Successfully shut down Oracle Autonomous Health Framework (AHF).\r\n2024\/07\/26 22:11:09 CLSRSC-595: Executing upgrade step 2 of 17: 'ValidateEnv'.\r\n2024\/07\/26 22:11:13 CLSRSC-595: Executing upgrade step 3 of 17: 'GetOldConfig'.\r\n...\r\n2024\/07\/26 22:15:24 CLSRSC-595: Executing upgrade step 6 of 17: 'PreUpgrade'.\r\n2024\/07\/26 22:15:31 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\n2024\/07\/26 22:15:31 CLSRSC-541:\r\n To downgrade the cluster:\r\n 1. All nodes that have been upgraded must be downgraded.\r\n2024\/07\/26 22:15:31 CLSRSC-542:\r\n 2. Before downgrading the last node, the Grid Infrastructure stack on all other cluster nodes must be down.\r\n2024\/07\/26 22:15:34 CLSRSC-468: Setting Oracle Clusterware and ASM to rolling migration mode\r\n2024\/07\/26 22:15:34 CLSRSC-482: Running command: '\/u01\/app\/19.23.0.0\/grid\/bin\/crsctl start rollingupgrade 23.0.0.0.0'\r\nCRS-1131: The cluster was successfully set to rolling upgrade mode.\r\n2024\/07\/26 22:15:39 CLSRSC-482: Running command: '\/u01\/app\/23.5.0.0\/grid\/bin\/asmca -silent -upgradeNodeASM -nonRolling false -oldCRSHome \/u01\/app\/19.23.0.0\/grid -oldCRSVersion 19.0.0.0.0 -firstNode true -startRolling false '\r\n2024\/07\/26 22:15:48 CLSRSC-469: Successfully set Oracle Clusterware and ASM to rolling migration mode\r\n2024\/07\/26 22:15:52 CLSRSC-466: Starting shutdown of the current Oracle Grid Infrastructure stack\r\n2024\/07\/26 22:16:25 CLSRSC-467: Shutdown of the current Oracle Grid Infrastructure stack has successfully completed.\r\n...\r\n2024\/07\/26 22:20:49 CLSRSC-475: Upgrade of resource types successfully initiated.\r\n2024\/07\/26 22:20:51 CLSRSC-595: Executing upgrade step 17 of 17: 'PostUpgrade'.\r\n2024\/07\/26 22:21:05 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded\r\n[root@o23c1n1s2 ~]#<\/pre>\n<p style=\"text-align: justify;\">Since the first node was fine, no errors, we can call the second node:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@o23c1n2s2 ~]# \/u01\/app\/23.5.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\/23.5.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\nRAC option enabled on: Linux\r\nExecuting command '\/u01\/app\/23.5.0.0\/grid\/perl\/bin\/perl -I\/u01\/app\/23.5.0.0\/grid\/perl\/lib -I\/u01\/app\/23.5.0.0\/grid\/crs\/install \/u01\/app\/23.5.0.0\/grid\/crs\/install\/rootcrs.pl  -upgrade'\r\nUsing configuration parameter file: \/u01\/app\/23.5.0.0\/grid\/crs\/install\/crsconfig_params\r\nThe log of current session can be found at:\r\n  \/u01\/app\/grid\/crsdata\/o23c1n2s2\/crsconfig\/crsupgrade_o23c1n2s2_2024-07-26_10-39-10PM.log\r\n2024\/07\/26 22:39:20 CLSRSC-595: Executing upgrade step 1 of 17: 'UpgradeTFA'.\r\n2024\/07\/26 22:39:20 CLSRSC-4015: Performing install or upgrade action for Oracle Autonomous Health Framework (AHF).\r\n\u2026\r\n2024\/07\/26 22:43:48 CLSRSC-343: Successfully started Oracle Clusterware stack\r\nclscfg: EXISTING configuration version 23 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\n2024\/07\/26 22:44:07 CLSRSC-595: Executing upgrade step 16 of 17: 'UpgradeNode'.\r\nStart upgrade invoked..\r\n2024\/07\/26 22:44:19 CLSRSC-478: Setting Oracle Clusterware active version on the last node to be upgraded\r\n2024\/07\/26 22:44:19 CLSRSC-482: Running command: '\/u01\/app\/23.5.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\n\u2026\r\n2024\/07\/26 22:46:45 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded\r\n[root@o23c1n2s2 ~]#<\/pre>\n<p style=\"text-align: justify;\">After that, we can click OK at the GIU and finish the installation:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-016.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1067 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-016.jpg\" alt=\"\" width=\"800\" height=\"609\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-016.jpg 800w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-016-300x228.jpg 300w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-016-768x585.jpg 768w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-016-624x475.jpg 624w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a> <a href=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-017.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1068 size-full\" src=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-017.jpg\" alt=\"\" width=\"801\" height=\"609\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-017.jpg 801w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-017-300x228.jpg 300w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-017-768x584.jpg 768w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-017-624x474.jpg 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;\">After finishing the upgrade you can go and fix the <em>bash_profile<\/em> (in case you use it), to point to the new GI Home path. Below you can see that I changed the ORACLE_HOME variable to the new path:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@o23c1n1s2 ~]# su - grid\r\n[grid@o23c1n1s2 ~]$ 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.23.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@o23c1n1s2 ~]$\r\n[grid@o23c1n1s2 ~]$\r\n[grid@o23c1n1s2 ~]$ vi .bash_profile\r\n[grid@o23c1n1s2 ~]$\r\n[grid@o23c1n1s2 ~]$\r\n[grid@o23c1n1s2 ~]$ 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\/23.5.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@o23c1n1s2 ~]$<\/pre>\n<p style=\"text-align: justify;\">After I made the same at the rest of the nodes of the cluster.<\/p>\n<p style=\"text-align: justify;\">And you can see, now, logging in I already start to use the 23.5 version:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">[root@o23c1n1s2 ~]# su - grid\r\n[grid@o23c1n1s2 ~]$ sqlplus \/ as sysasm\r\n\r\nSQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Fri Jul 26 23:42:19 2024\r\nVersion 23.5.0.24.07\r\n\r\nCopyright (c) 1982, 2024, Oracle.  All rights reserved.\r\n\r\n\r\nConnected to:\r\nOracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems\r\nVersion 23.5.0.24.07\r\n\r\nSQL&gt; exit\r\nDisconnected from Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems\r\nVersion 23.5.0.24.07\r\n[grid@o23c1n1s2 ~]$<\/pre>\n<h1 style=\"text-align: justify;\">Summary. The Upgrade Process<\/h1>\n<p style=\"text-align: justify;\">As you can above, the steps are quite simple, we check and meet the requirements, call the GUI to install, and upgrade it. The 23ai follows the same process standardized with the 19c.<\/p>\n<p style=\"text-align: justify;\">When the on-prem (non-Engineered System) is released, I will create a dedicated post about it, to mention more details that do not exist for Exadata (like ASM FIlter &#8211; AFD). There are several details linked to the Linux kernel to be used, UDEV, and CPU usage.<\/p>\n<p style=\"text-align: justify;\">&nbsp;<\/p>\n<p style=\"text-align: justify;\">&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><strong>Disclaimer<\/strong>: \u201c<em>The 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 purposes, and specific data and identifications were removed to allow reach the generic audience and to be useful for the community. Post protected by copyright.<\/em>\u201d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the official release of Oracle 23ai to Exadata on-prem, it is now possible to manually upgrade Grid Infrastructure (GI) from 19c to 23ai. Nowadays the process is simpler than it was in the past, and I already published several examples of how to do this: 23ai, Zero-Downtime Oracle Grid Infrastructure Patching using Release Update [&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":[179,29,77,6,56,5,12],"tags":[180,69,125,81,65,124],"class_list":["post-1049","post","type-post","status-publish","format-standard","hentry","category-23ai","category-database","category-engineeredsystems","category-exadata","category-grid-infrastructure","category-oracle","category-upgrade","tag-23ai","tag-exadata","tag-gi","tag-grid","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>Manually upgrading Oracle GI from 19c to 23ai - Fernando Simon<\/title>\n<meta name=\"description\" content=\"How to upgrade Oracle Grid Infrastructure to the 23ai version, doing it manually with GUI. But also some tips and tricks. All steps covered.\" \/>\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\/manually-upgrading-oracle-gi-from-19c-to-23ai\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Manually upgrading Oracle GI from 19c to 23ai - Fernando Simon\" \/>\n<meta property=\"og:description\" content=\"How to upgrade Oracle Grid Infrastructure to the 23ai version, doing it manually with GUI. But also some tips and tricks. All steps covered.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/\" \/>\n<meta property=\"og:site_name\" content=\"Fernando Simon\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-07T20:23:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-05T08:27:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"468\" \/>\n\t<meta property=\"og:image:height\" content=\"269\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/\"},\"author\":{\"name\":\"Simon\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"headline\":\"Manually upgrading Oracle GI from 19c to 23ai\",\"datePublished\":\"2024-08-07T20:23:18+00:00\",\"dateModified\":\"2025-05-05T08:27:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/\"},\"wordCount\":1239,\"commentCount\":7,\"image\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg\",\"keywords\":[\"23ai\",\"Exadata\",\"GI\",\"GRID\",\"Oracle\",\"Upgrade\"],\"articleSection\":[\"23ai\",\"Database\",\"Engineered Systems\",\"Exadata\",\"Grid Infrastructure\",\"Oracle\",\"Upgrade\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/\",\"name\":\"Manually upgrading Oracle GI from 19c to 23ai - Fernando Simon\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg\",\"datePublished\":\"2024-08-07T20:23:18+00:00\",\"dateModified\":\"2025-05-05T08:27:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"description\":\"How to upgrade Oracle Grid Infrastructure to the 23ai version, doing it manually with GUI. But also some tips and tricks. All steps covered.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg\",\"contentUrl\":\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fernandosimon.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Manually upgrading Oracle GI from 19c to 23ai\"}]},{\"@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":"Manually upgrading Oracle GI from 19c to 23ai - Fernando Simon","description":"How to upgrade Oracle Grid Infrastructure to the 23ai version, doing it manually with GUI. But also some tips and tricks. All steps covered.","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\/manually-upgrading-oracle-gi-from-19c-to-23ai\/","og_locale":"en_US","og_type":"article","og_title":"Manually upgrading Oracle GI from 19c to 23ai - Fernando Simon","og_description":"How to upgrade Oracle Grid Infrastructure to the 23ai version, doing it manually with GUI. But also some tips and tricks. All steps covered.","og_url":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/","og_site_name":"Fernando Simon","article_published_time":"2024-08-07T20:23:18+00:00","article_modified_time":"2025-05-05T08:27:42+00:00","og_image":[{"width":468,"height":269,"url":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg","type":"image\/jpeg"}],"author":"Simon","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#article","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/"},"author":{"name":"Simon","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"headline":"Manually upgrading Oracle GI from 19c to 23ai","datePublished":"2024-08-07T20:23:18+00:00","dateModified":"2025-05-05T08:27:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/"},"wordCount":1239,"commentCount":7,"image":{"@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage"},"thumbnailUrl":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg","keywords":["23ai","Exadata","GI","GRID","Oracle","Upgrade"],"articleSection":["23ai","Database","Engineered Systems","Exadata","Grid Infrastructure","Oracle","Upgrade"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/","url":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/","name":"Manually upgrading Oracle GI from 19c to 23ai - Fernando Simon","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage"},"image":{"@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage"},"thumbnailUrl":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg","datePublished":"2024-08-07T20:23:18+00:00","dateModified":"2025-05-05T08:27:42+00:00","author":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"description":"How to upgrade Oracle Grid Infrastructure to the 23ai version, doing it manually with GUI. But also some tips and tricks. All steps covered.","breadcrumb":{"@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#primaryimage","url":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg","contentUrl":"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2024\/08\/Grid-001.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.fernandosimon.com\/blog\/manually-upgrading-oracle-gi-from-19c-to-23ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fernandosimon.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Manually upgrading Oracle GI from 19c to 23ai"}]},{"@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-gV","_links":{"self":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/1049","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=1049"}],"version-history":[{"count":0,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/1049\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/media?parent=1049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/categories?post=1049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/tags?post=1049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}