Upgrading to GI 23ai at ExaCC using CLI

As you know, the 23ai is already available in several environments, mainly in Oracle Cloud, and one of these is the ExaCC. I already covered how to do the upgrade to 23ai for Grid Infrastructure (GI) using the Web interface, and Christian covered the upgrade of the OCI CLI. But here I will upgrade using the ExaCC CLI (dbaascli).

Again, first things first. Requirements

As discussed in the previous post, the first requirement is that your VM/domU is running the 23.1x version because it runs over the OEL 8. The second one is that the only available versions that are allowed to be installed in the cluster are the 19c and 23ai. The last one is that the attribute “compatible.rdbms” needs to be at least 19.0.0.0 for your diskgroups:

SQL> SELECT name, compatibility, database_compatibility FROM v$asm_diskgroup;

NAME                           COMPATIBILITY                                                DATABASE_COMPATIBILITY
------------------------------ ------------------------------------------------------------ ------------------------------------------------------------
DATAC5                         19.0.0.0.0                                                   11.2.0.4.0
RECOC5                         19.0.0.0.0                                                   11.2.0.4.0

SQL>
SQL> ALTER DISKGROUP DATAC5 SET ATTRIBUTE 'compatible.rdbms' = '19.0.0.0.0';

Diskgroup altered.

SQL> ALTER DISKGROUP RECOC5 SET ATTRIBUTE 'compatible.rdbms' = '19.0.0.0.0';

Diskgroup altered.

SQL>

First step, showImages

It is a simple check, but the first one is to verify if the version 23ai for GI is available. To do that, we use the command “dbaascli cswLib showImages –product GRID”. The parameter “–product GRID” will return only the GI images:

[root@exxc05db01 ~]# dbaascli cswLib showImages --product GRID
DBAAS CLI version 24.1.2.0.0
Executing command cswLib showImages --product GRID
Job id: a1346789-876d-4f93-9e1b-dfrdfgfgtd2344
Session log: /var/opt/oracle/log/cswLib/showImages/dbaastools_2024-06-20_11-23-28-AM_258563.log
Log file location: /var/opt/oracle/log/cswLib/showImages/dbaastools_2024-06-20_11-23-28-AM_258563.log

############ List of Available grid Artifacts  #############

1.IMAGE_TAG=grid_19.22.0.0.0
  VERSION=19.22.0.0.0
  DESCRIPTION=19c JAN 2024 GI Image
2.IMAGE_TAG=grid_19.23.0.0.0
  VERSION=19.23.0.0.0
  DESCRIPTION=19c APR 2024 GI Image
3.IMAGE_TAG=grid_23.4.0.24.05
  VERSION=23.4.0.24.05
  DESCRIPTION=23ai grid image 23.4.0.24.05
4.IMAGE_TAG=grid_19.20.0.0.0
  VERSION=19.20.0.0.0
  DESCRIPTION=19c JUL 2023 GI Image
5.IMAGE_TAG=grid_19.21.0.0.0
  VERSION=19.21.0.0.0
  DESCRIPTION=19c OCT 2023 GI Image
Images can be downloaded using their image tags. For details, see help using 'dbaascli cswlib download --help'.
dbaascli execution completed
[root@exxc05db01 ~]#

As you can see, image version 23.4.0.24.05 is available.

Second step, executePrereqs

In the same way as patching using the web interface, we need to run the precheck. It is a simple command that uses the same dbaascli but with the parameter “–executePrereqs“:

[root@exxc05db01 ~]# dbaascli grid upgrade --targetVersion 23.4.0.24.05 --executePrereqs
DBAAS CLI version 24.1.2.0.0
Executing command grid upgrade --targetVersion 23.4.0.24.05 --executePrereqs
Job id: ad345678-8888-4f64-b60b-888888888888
Session log: /var/opt/oracle/log/grid/upgrade/dbaastools_2024-06-20_12-16-23-PM_379074.log
Loading PILOT...
Session ID of the current execution is: 20821
Log file location: /var/opt/oracle/log/grid/upgrade/pilot_2024-06-20_12-16-29-PM_379736
-----------------
Running initialize job
Completed initialize job
-----------------
Running validate_target_version job
Completed validate_target_version job
-----------------
Running check_locations_existence job
Completed check_locations_existence job
-----------------
Running check_locations_free_space job
Completed check_locations_free_space job
-----------------
Running check_os_version job
Completed check_os_version job
-----------------
Running check_patch_level job
Completed check_patch_level job
-----------------
Running check_crs_running_all_nodes job
Completed check_crs_running_all_nodes job
-----------------
Running check_asm_rebalance_ops job
Completed check_asm_rebalance_ops job
-----------------
Running check_crs_state job
Completed check_crs_state job
-----------------
Running ocrcheck job
Completed ocrcheck job
-----------------
Running validate_databases job
[WARNING] [DBAAS-70643] Following pluggable databases '{DB119CD=[PDB2, PDB3]}' do not have services configured.
   ACTION: Make sure to configure the services of pluggable databases so that pluggable databases are started after the database bounce.
Completed validate_databases job
-----------------
Running validate_image_download_configuration job
Completed validate_image_download_configuration job
-----------------
Running download_image job
Completed download_image job
-----------------
Running create_locations_first_node job
Completed create_locations_first_node job
-----------------
Running unpackage_image_first_node job
Completed unpackage_image_first_node job
-----------------
Running validate_image job
Completed validate_image job
-----------------
Running software_only_prereqs job
Completed software_only_prereqs job
-----------------
Running cluvfy_pre_upgrade job
Completed cluvfy_pre_upgrade job
-----------------
Running prereqs_cleanup job
Completed prereqs_cleanup job
dbaascli execution completed
[root@exxc05db01 ~]#

As you can see above, the precheck was successful and no error was reported. So, we can continue the upgrade process.

One interesting detail is that the command is “dbaascli grid upgrade“, instead of the traditional “dbaascli grid patch“. The parameters are almost the same, and if you try to use the “patch” command (obviosity) you receive one error:

[root@exxc05db01 ~]# dbaascli grid patch --targetVersion 23.4.0.24.05 --executePrereqs
DBAAS CLI version 24.1.2.0.0
Executing command grid patch --targetVersion 23.4.0.24.05 --executePrereqs
Job id: df44567899999-41bf-aa2d-999999999999
Session log: /var/opt/oracle/log/grid/patch/dbaastools_2024-06-20_11-28-14-AM_269847.log
Loading PILOT...
Session ID of the current execution is: 20817
Log file location: /var/opt/oracle/log/grid/patch/pilot_2024-06-20_11-28-19-AM_270275
-----------------
Running initialization job
Execution of initialization failed
[FATAL] [DBAAS-70383] Patch details for target version '23.4.0.24.05' not found.
   CAUSE: A patch for the specified target version has not been released.
   ACTION: Specify a valid target version.
*** Executing jobs which need to be run always... ***
-----------------
Running post_patch_lock_manager job
Completed post_patch_lock_manager job
******** PLUGIN EXECUTION FAILED ********
To resume this failed session, run the following command:
dbaascli grid patch --targetVersion 23.4.0.24.05 --executePrereqs true --sessionID 20817 --resume
[root@exxc05db01 ~]#

Third step, upgrade

The last process is to formally upgrade the GI using the dbaaacli. In the same way as the previous please verify that the “targetVersion” represents the same value that was returned by the “showImages” executed in the first step. So, we can call the upgrade:

[root@exxc05db01 ~]# dbaascli grid upgrade --targetVersion 23.4.0.24.05
DBAAS CLI version 24.1.2.0.0
Executing command grid upgrade --targetVersion 23.4.0.24.05
Job id: aaaaaaaa-3473-2222-3333-fffffffffffff
Session log: /var/opt/oracle/log/grid/upgrade/dbaastools_2024-06-20_12-25-13-PM_16132.log
Loading PILOT...
Session ID of the current execution is: 20822
Log file location: /var/opt/oracle/log/grid/upgrade/pilot_2024-06-20_12-25-18-PM_16436
-----------------
Running initialize job
Completed initialize job
-----------------
Running validate_target_version job
Completed validate_target_version job
-----------------
Running check_locations_existence job
Completed check_locations_existence job
-----------------
Running check_locations_free_space job
Completed check_locations_free_space job
-----------------
Running check_os_version job
Completed check_os_version job
-----------------
Running check_patch_level job
Completed check_patch_level job
-----------------
Running check_crs_running_all_nodes job
Completed check_crs_running_all_nodes job
-----------------
Running check_asm_rebalance_ops job
Completed check_asm_rebalance_ops job
-----------------
Running check_crs_state job
Completed check_crs_state job
-----------------
Running ocrcheck job
Completed ocrcheck job
-----------------
Running validate_databases job
[WARNING] [DBAAS-70643] Following pluggable databases '{DB119CD=[PDB2, PDB3]}' do not have services configured.
   ACTION: Make sure to configure the services of pluggable databases so that pluggable databases are started after the database bounce.
Completed validate_databases job
-----------------
Running validate_image_download_configuration job
Completed validate_image_download_configuration job
-----------------
Running download_image job
Completed download_image job
-----------------
Running create_locations_first_node job
Completed create_locations_first_node job
-----------------
Running unpackage_image_first_node job
Completed unpackage_image_first_node job
-----------------
Running validate_image job
Completed validate_image job
-----------------
Running software_only_prereqs job
Completed software_only_prereqs job
-----------------
Running cluvfy_pre_upgrade job
Completed cluvfy_pre_upgrade job
Acquiring write lock: _u01_app_19.0.0.0_grid
Acquiring write lock: provisioning
-----------------
Running pre_upgrade_lock_manager job
Completed pre_upgrade_lock_manager job
-----------------
Running update_limits job
Completed update_limits job
-----------------
Running unset_css_miscount job
Completed unset_css_miscount job
-----------------
Running setup_software_first_node job
Completed setup_software_first_node job
-----------------
Running create_locations_on_remote_nodes job
Completed create_locations_on_remote_nodes job
-----------------
Running copy_software_to_shared_location job
Completed copy_software_to_shared_location job
-----------------
Running copy_software_to_remote_nodes job
Completed copy_software_to_remote_nodes job
-----------------
Running remove_software_from_shared_location job
Completed remove_software_from_shared_location job
-----------------
Running inventory_rootscript job
Completed inventory_rootscript job
-----------------
Running attach_home job
Completed attach_home job
-----------------
Running software_rootscript job
Grid software install completed with oracle home: /u02/app/23.0.0.0/gridhome_1
Completed software_rootscript job
-----------------
Running config_update job
Completed config_update job
-----------------
Running check_rolling job
Completed check_rolling job
-----------------
Running stop_databases-exxc05db01 job
Completed stop_databases-exxc05db01 job
-----------------
Running stop_tfa-exxc05db01 job
Completed stop_tfa-exxc05db01 job
-----------------
Running umount_acfs-exxc05db01 job
Completed umount_acfs-exxc05db01 job
-----------------
Running execute_rootscript-exxc05db01 job
Completed execute_rootscript-exxc05db01 job
-----------------
Running mount_acfs-exxc05db01 job
Completed mount_acfs-exxc05db01 job
-----------------
Running start_databases-exxc05db01 job
Completed start_databases-exxc05db01 job
-----------------
Running restore_tfa_status-exxc05db01 job
Completed restore_tfa_status-exxc05db01 job
-----------------
Running stop_databases-exxc06db01 job
Completed stop_databases-exxc06db01 job
-----------------
Running stop_tfa-exxc06db01 job
Completed stop_tfa-exxc06db01 job
-----------------
Running umount_acfs-exxc06db01 job
Completed umount_acfs-exxc06db01 job
-----------------
Running execute_rootscript-exxc06db01 job
Completed execute_rootscript-exxc06db01 job
-----------------
Running mount_acfs-exxc06db01 job
Completed mount_acfs-exxc06db01 job
-----------------
Running start_databases-exxc06db01 job
Completed start_databases-exxc06db01 job
-----------------
Running restore_tfa_status-exxc06db01 job
Completed restore_tfa_status-exxc06db01 job
-----------------
Running config_tools job
Completed config_tools job
-----------------
Running cvu_post_checks job
Completed cvu_post_checks job
-----------------
Running check_crs_running_all_nodes_post_upgrade job
Completed check_crs_running_all_nodes_post_upgrade job
-----------------
Running check_crs_version_post_upgrade job
Completed check_crs_version_post_upgrade job
-----------------
Running set_asm_cardinality job
Completed set_asm_cardinality job
-----------------
Running disable_diagsnap job
Completed disable_diagsnap job
-----------------
Running exacs_post_upgrade job
Grid upgrade completed with oracle home: /u02/app/23.0.0.0/gridhome_1
Completed exacs_post_upgrade job
-----------------
Running post_upgrade_lock_manager job
Completed post_upgrade_lock_manager job
Releasing lock: _u01_app_19.0.0.0_grid
Releasing lock: provisioning
-----------------
Running generate_system_details job
Acquiring native write lock: global_dbsystem_details_generation
Releasing native lock: global_dbsystem_details_generation
Completed generate_system_details job
dbaascli execution completed
You have new mail in /var/spool/mail/root
[root@exxc05db01 ~]#

If you are interested, you can check the “pilot” log that was shown in the beginning (I recommend you do that). There you can see all the commands executed like “rootupgrade” and “cluvfy”. From the output above you can notice that the upgrade is done node by node, and all steps are done, from precheck, ACFS, upgrade itself, and TFA. The output is clear about the steps that are executed, and in which node it is being called. And you can see that the new path is mentioned, now GI is at “/u02” instead “/u01”.

As you can see, the procedure was successful. No error was presented, but if you have any errors, please open the SR. Oracle Support is the only official support.

As you saw above, the procedure is quite simple, we precheck and upgrade. There is no secret, you just need to meet the requirements and proceed with the steps. In the end, the OCI web interface will reflect the GI at 23ai too:

 

Disclaimer: “The postings on this site are my own and don’t necessarily represent my actual employer positions, strategies, or opinions. The information here was edited to be useful for general purposes, specific data and identifications were removed to allow reach the generic audience and to be useful for the community. Post protected by copyright

 

One thought on “Upgrading to GI 23ai at ExaCC using CLI

  1. Pingback: Manually upgrading Oracle GI from 19c to 23ai - Fernando Simon

Leave a Reply

Your email address will not be published. Required fields are marked *