
{"id":7200,"date":"2021-02-15T19:16:43","date_gmt":"2021-02-15T19:16:43","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/upgrade-oracle-grid-from-12c-to-19c\/"},"modified":"2026-11-03T19:28:12","modified_gmt":"2026-11-03T19:28:12","slug":"upgrade-oracle-grid-from-12c-to-19c","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/de\/blogs\/upgrade-oracle-grid-from-12c-to-19c\/","title":{"rendered":"Upgrade Oracle Grid from 12c to 19c"},"content":{"rendered":"<p><strong>Introduction<\/strong><\/p>\n<p>This post covers a step-by-step approach for upgrading a two-node Oracle Grid Real Application Cluster (RAC) from version 12C (12.1.0.2) to 19C (19.7.0) that runs on a Linux operating system (OS).<\/p>\n<p>The latest available version for Oracle Grid RAC is 19c. Oracle highly recommends upgrading your Grid infrastructure to 19c for better stability and security. In 19c, Oracle introduced many new features such as dry-run upgrades. This post discusses this new feature and the steps to upgrade Grid.<\/p>\n<p><strong>Steps to upgrade Grid<\/strong><\/p>\n<ol>\n<li>Review the pre-upgrade checklist.<\/li>\n<li>Download 19c Grid software.<\/li>\n<li>Run the Orachk readiness assessment.&nbsp;<\/li>\n<li>Apply mandatory 19c patches.&nbsp;<\/li>\n<li>Run the cluster verification utility.&nbsp;<\/li>\n<li>Dry-run upgrade.<\/li>\n<li>Upgrade Grid.<\/li>\n<li>Verify Grid upgrade.<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture1_37.png\" alt=\"19c pic 1\" \/><\/p>\n<p><strong>1. Pre-upgrade checklist&nbsp;<\/strong><\/p>\n<p>According to the [<a href=\"https:\/\/support.oracle.com\/knowledge\/Oracle%20Database%20Products\/2539751_1.html\">Oracle Document 2539751.1<\/a>](), you must apply the 28553832 patch in the 12C Grid home directory as a prerequisite:<\/p>\n<p>\n&nbsp; <em>&nbsp; [grid@norlathrac01 OPatch]$ .\/opatch lsinventory |grep -i 28553832<br \/>\n&nbsp; &nbsp; 28553832, 20883009, 21678268<\/em><\/p>\n<p><strong>2. Download the Grid Software<\/strong><\/p>\n<p>You can download the 19c Grid software from the following links:<\/p>\n<p><a href=\"https:\/\/www.oracle.com\/database\/technologies\/oracle19c-linux-downloads.html\">Link 1<\/a><\/p>\n<p><a href=\"https:\/\/www.oracle.com\/database\/technologies\/oracle19c-linux-downloads.html\">Link 2<\/a><\/p>\n<p>Create a directory on both the RAC (Real Application Cluster) nodes:<\/p>\n<p><em>&nbsp; &nbsp; mkdir -p \/u01\/app\/grid\/product\/19.3.0\/grid<\/em><\/p>\n<p>Copy the 19c grid software to the first node of RAC and unzip it.:<\/p>\n<p><em>&nbsp; &nbsp; cd \/u01\/app\/grid\/product\/19.3.0\/grid<br \/>\n&nbsp; &nbsp; unzip -q &lt;19c Grid Software location &gt;<\/em><\/p>\n<p><strong>3. Run Orachk readiness assessment<\/strong><\/p>\n<p>According to <a href=\"https:\/\/support.oracle.com\/knowledge\/Oracle%20Database%20Products\/1457357_1.html\">Oracle document 1457357.1<\/a>,&nbsp;the user that owns Grid needs to run the `<em>Orachk`<\/em>&nbsp;tool. Make sure to download the latest version of <em>Orachk<\/em>&nbsp;from <a href=\"https:\/\/support.oracle.com\/knowledge\/Oracle%20Database%20Products\/1457357_1.html\">document 1457357<\/a>.1, then run the following commands:<\/p>\n<p><em>&nbsp; cd \/u01\/app\/grid\/product\/19.3.0\/grid\/suptools\/orachk<br \/>\n&nbsp; &nbsp; export GRID_HOME= \/u01\/app\/grid\/product\/19.3.0\/grid<br \/>\n&nbsp; &nbsp; export RAT_PROMPT_WAIT_TIMEOUT=15<br \/>\n&nbsp; &nbsp; export RAT_ORACLE_HOME=\/u01\/app\/grid\/12.1.0<br \/>\n&nbsp; &nbsp; export RAT_DB=12.1.0.2.0<br \/>\n&nbsp; &nbsp; cd \/u01\/app\/grid\/product\/19.3.0\/grid\/suptools\/orachk<br \/>\n&nbsp; &nbsp; .\/orachk -u -o pre -profile clusterware,asm<\/em><\/p>\n<p>\nThis process generates an HTML report as shown in the following image:&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture2_32.png\" alt=\"19c pic 2\" \/><\/p>\n<p>&nbsp;<br \/>\nMake sure to review the report for all failed, critical, and warning checks and resolve them before you move to the next step.<\/p>\n<p><strong>4. Apply Mandatory 19c Patches<\/strong><\/p>\n<p>You need to apply the mandatory patch 30899722 in the 19c home directory, as recommended by&nbsp;<a href=\"https:\/\/support.oracle.com\/epmos\/faces\/DocumentDisplay?parent=SrDetailText&amp;sourceId=3-23389113181&amp;id=1410202.1\">this Oracle Document<\/a>.<\/p>\n<p><em>&nbsp; &nbsp; [grid@norlathrac01 grid]$ pwd<br \/>\n&nbsp; &nbsp; \/u01\/app\/grid\/product\/19.3.0\/grid<br \/>\n&nbsp; &nbsp; [grid@norlathrac01 grid]$ .\/gridSetup.sh -silent -applyRU<\/em><\/p>\n<p>Execute the following command on node [norlathrac01] as root:<\/p>\n<p><em>&nbsp; &nbsp; \/u01\/app\/grid\/product\/19.3.0\/grid\/root.sh&nbsp;<\/em><br \/>\n&nbsp; &nbsp; Successfully Setup Software.<\/p>\n<p>Finally, it asks to run <strong>root.sh<\/strong>. Do not run the script yet because you need to run it at the end of the upgrade.<\/p>\n<p>After applying the patch, run the following command and make sure the command shows as supported:<\/p>\n<p><em>&nbsp; &nbsp; [grid@norlathrac01 bin]$ pwd<br \/>\n&nbsp; &nbsp; \/u01\/app\/grid\/product\/19.3.0\/grid\/usm\/install\/Oracle\/EL7UEK\/x86_64\/4.1.12-112.16.4\/4.1.12-112.16.4-x86_64\/bin<br \/>\n&nbsp; &nbsp; [grid@norlathrac01 bin]$ .\/acfsdriverstate -orahome \/u01\/app\/grid\/product\/19.3.0\/grid supported<br \/>\n&nbsp; &nbsp; ACFS-9200: Supported<\/em><\/p>\n<p><strong>5. Run the cluster verification utility<\/strong><\/p>\n<p>Log in as the Grid OS owner user and run the following commands:<\/p>\n<p><em>&nbsp; &nbsp; [grid@norlathrac01 ~]$ cd \/u01\/app\/grid\/product\/19.3.0\/grid\/<br \/>\n&nbsp; &nbsp; [grid@norlathrac01 grid]$ .\/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome \/u01\/app\/grid\/12.1.0 -dest_crshome \/u01\/app\/grid\/product\/19.3.0\/grid -dest_version 19.0.0.0.0 -fixup -verbose<\/em><\/p>\n<p>This operation should pass all the following checks:<\/p>\n<ul>\n<li>Verifying node application existence &#8230;PASSED<\/li>\n<li>Verifying check incorrectly sized ASM disks &#8230;PASSED<\/li>\n<li>Verifying ASM disk group free space &#8230;PASSED<\/li>\n<li>Verifying network configuration consistency checks &#8230;PASSED<\/li>\n<li>Verifying file system mount options for path GI_HOME &#8230;PASSED<\/li>\n<li>Verifying \/boot mount &#8230;PASSED<\/li>\n<li>Verifying OLR Integrity &#8230;PASSED<\/li>\n<li>Verifying Verify that the ASM instance was configured using an existing ASM parameter file. &#8230;PASSED<\/li>\n<li>Verifying User Equivalence &#8230;PASSED<\/li>\n<li>Verifying RPM Package Manager database &#8230;INFORMATION (PRVG-11250)<\/li>\n<li>Verifying Network interface bonding status of private interconnect network interfaces &#8230;PASSED<\/li>\n<li>Verifying \/dev\/shm mounted as temporary file system &#8230;PASSED<\/li>\n<li>Verifying file system mount options for path \/var &#8230;PASSED<\/li>\n<li>Verifying DefaultTasksMax parameter &#8230;PASSED<\/li>\n<li>Verifying zeroconf check &#8230;PASSED<\/li>\n<li>Verifying ASM filter driver configuration &#8230;PASSED<\/li>\n<li>Verifying Systemd login manager IPC parameter &#8230;PASSED<\/li>\n<li>Verifying Kernel retpoline support &#8230;PASSED<\/li>\n<\/ul>\n<p><strong>6. Dry-run upgrade&nbsp;<\/strong><br \/>\nAs mentioned earlier, Oracle introduced this new feature in 19c Grid. You can execute a dry-run upgrade before the actual upgrade. Dry-run upgrades verify all the steps similar to a real upgrade without making any real changes. Run the following commands:<\/p>\n<p>\n<em>&nbsp; &nbsp; unset ORACLE_BASE<br \/>\n&nbsp; &nbsp; unset ORACLE_HOME<br \/>\n&nbsp; &nbsp; unset ORACLE_SID<br \/>\n&nbsp; &nbsp; cd \/u01\/app\/grid\/product\/19.3.0\/grid&nbsp;<br \/>\n&nbsp; &nbsp; gridsetup.sh -dryRunForUpgrade&nbsp;<\/em><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture3_30.png\" alt=\"19c pic 3\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture4_27.png\" alt=\"19c pic 4\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture4_26.png\" alt=\"19c pic 4\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture5_23.png\" alt=\"19c pic 5\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture6_15.png\" alt=\"19c pic 6\" \/><\/p>\n<p>Finally, the process prompts you to run <strong>rootupgrade.sh<\/strong>. Run this on only a local node.<\/p>\n<p><strong>7. Upgrade Grid<\/strong><\/p>\n<p>In the earlier step, our dry-run upgrade was a success. Now, you can go for the real upgrade. &nbsp;<\/p>\n<p>Before starting the real upgrade, run the following command to bring down the Grid services and ensure that the remaining services are running on the cluster servers. Make sure cluster upgrade status is normal:&nbsp;<\/p>\n<p><em>&nbsp;[grid@norlathrac01 bin]$ .\/crsctl query crs activeversion -f<br \/>\n&nbsp; &nbsp; Oracle Clusterware active version on the cluster is [12.1.0.2.0]. The cluster upgrade<br \/>\n&nbsp; &nbsp; state is [NORMAL]. The cluster active patch level is [2653232555].<br \/>\n&nbsp; &nbsp; cd \/u01\/app\/grid\/product\/19.3.0\/grid<br \/>\n&nbsp; &nbsp; unset ORACLE_BASE<br \/>\n&nbsp; &nbsp; &nbsp;unset ORACLE_HOME<br \/>\n&nbsp; &nbsp; &nbsp;unset ORACLE_SID&nbsp;<br \/>\n&nbsp; &nbsp; .\/gridSetup.sh&nbsp;<\/em><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture7_15.png\" alt=\"19c pic 7\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture8_14.png\" alt=\"19c pic 8\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture9_13.png\" alt=\"19c pic 9\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture10_12.png\" alt=\"19c pic 10\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture11_13.png\" alt=\"19c pic 11\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_technical_images\/26302-body-Picture12_10.png\" alt=\"19c pic 12\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture13_9.png\" alt=\"19c pic 13\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture14_8.png\" alt=\"19c pic 14\" \/><\/p>\n<p>&nbsp;Run <strong>rootupgrade.sh<\/strong> first on the local node and then on the remote node.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture15_4.png\" alt=\"19c pic 15\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26302-body-Picture16_4.png\" alt=\"19c pic 16\" \/><\/p>\n<p>&nbsp;At this point, the process upgrades Grid to 19c, and all the cluster services are running.&nbsp;<\/p>\n<p><strong>8. Verify Grid upgrade<\/strong><\/p>\n<p>After Grid upgrades, run the following commands to verify the upgraded version of Grid:<\/p>\n<p><em>&nbsp; &nbsp; [grid@norlathrac01 bin]$ crsctl query crs activeversion<br \/>\n&nbsp; &nbsp; Oracle clusterware active version on the cluster is [19.0.0.0.0]<br \/>\n&nbsp; &nbsp; [grid@norlathrac01 bin]$<br \/>\n&nbsp; &nbsp; [grid@norlathrac01 bin]$ .\/crsctl query crs softwareversion<br \/>\n&nbsp; &nbsp; Oracle Clusterware version on node [norlathrac03] is [19.0.0.0.0]<\/em><\/p>\n<p>Verify all the CRS services are running on both the cluster nodes:<\/p>\n<p><em>&nbsp; [grid@norlathrac01 bin]$ crsctl check crs<br \/>\n&nbsp; &nbsp; CRS-4638: Oracle high availability services is online<br \/>\n&nbsp; &nbsp; CRS-4537: Cluster ready services is online<br \/>\n&nbsp; &nbsp; CRS-4529: Cluster synchronization services is online<br \/>\n&nbsp; &nbsp; CRS-4533: Event manager is online<\/em><\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Oracle 19c Grid, the latest available version of Grid, provides more stability and security. It comes with new features such as dry-run upgrades, making the Grid upgrade a smooth and accurate process compared to the earlier versions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Upgrade Oracle Grid from 12c to 19c<\/p>\n","protected":false},"author":2,"featured_media":7202,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26302","content_type":"blog","created_by":"10130","authored_on":"2023-11-27T19:16:43+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Brijesh Tiwari, Oracle Applications, Oracle Applications Database Administrator, Rackspace Tecnology","seo_description":"Follow a comprehensive guide to upgrading a two-node Oracle Grid RAC from version 12C to 19C. Ensure a successful upgrade.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26302-insights_image-oracle-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2021-02-15T19:16:43","rxt_solutions":"Databases, Next-Gen Data Platforms","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"How to upgrade 12c Oracle Grid to 19c | Rackspace Technology","field_topics":"","field_slug":"upgrade-oracle-grid-from-12c-to-19c","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7200","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/comments?post=7200"}],"version-history":[{"count":3,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7200\/revisions"}],"predecessor-version":[{"id":17131,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7200\/revisions\/17131"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media\/7202"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media?parent=7200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/categories?post=7200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/tags?post=7200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}