Title
Create new category
Edit page index title
Edit category
Edit link
Resume and Finalize the ODP Stack Upgrade
Resume Upgrade
Resume the ODP Stack Upgrade from its Paused state. Upon upgrade completion, you can see the two options.
- Finalize Later—Choosing this option preserves the ability to downgrade or roll back to the previous version.
- Finalize—Once selected, version 3.2.3.5-2 becomes permanent, and rollback is no longer possible.
Consider the versions shown in the screenshot as a reference. During the upgrade, you can see the target version you’re upgrading to.


Navigate to the Ambari UI Home page and perform the Start All services from Actions.
If you are upgrading from ODP 3.2.3.3-x or lower versions and using Oracle as the backend DB, you may encounter the following issue.
Error 1
2026-01-29 12:08:45,018 [I] Patch 067-create-gds-tables.sql is being applied..
2026-01-29 12:08:45,018 [JISQL] /usr/lib/jvm/java-1.8.0-openjdk/bin/java -Djava.security.egd=file:///dev/urandom -cp /usr/odp/3.2.3.5-2/ranger-admin/ews/lib/ojdbc.jar:/usr/odp/3.2.3.5-2/ranger-admin/jisql/lib/* org.apache.util.sql.Jisql -driver oraclethin -cstring jdbc:oracle:thin:@//clnode02.acceldata.ce:1521/ORCLPDB1 -u 'ranger' -p ' ' -noheader -trim -input /usr/odp/3.2.3.5-2/ranger-admin/db/oracle/patches/067-create-gds-tables.sql -c ;
SQLException : SQL state: 42000 java.sql.SQLSyntaxErrorException: ORA-00901: invalid CREATE command ORA-06512: at line 18 ErrorCode: 901 SQLException : SQL state: 42000 java.sql.SQLSyntaxErrorException: ORA-00901: invalid CREATE command
You can follow the workaround below to fix the issue.
Replace the “/usr/odp/3.2.3.3-2/ranger-admin/db/oracle/patches/067-create-gds-tables.sql” with the below content.
-- Licensed to the Apache Software Foundation (ASF) under one or more-- contributor license agreements. See the NOTICE file distributed with-- this work for additional information regarding copyright ownership.-- The ASF licenses this file to You under the Apache License, Version 2.0-- (the "License"); you may not use this file except in compliance with-- the License. You may obtain a copy of the License at---- http://www.apache.org/licenses/LICENSE-2.0---- Unless required by applicable law or agreed to in writing, software-- distributed under the License is distributed on an "AS IS" BASIS,-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.-- See the License for the specific language governing permissions and-- limitations under the License.DECLARE v_count NUMBER := 0;BEGIN ------------------------------------------------------------ -- Create Sequences ------------------------------------------------------------ SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_DATASET_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_DATASET_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_PROJECT_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_PROJECT_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_DATA_SHARE_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_DATA_SHARE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_SHARED_RESOURCE_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_SHARED_RESOURCE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_DATA_SHARE_IN_DATASET_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_DATA_SHARE_IN_DATASET_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_DATASET_IN_PROJECT_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_DATASET_IN_PROJECT_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_DATASET_POLICY_MAP_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_DATASET_POLICY_MAP_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'X_GDS_PROJECT_POLICY_MAP_SEQ'; IF v_count = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE X_GDS_PROJECT_POLICY_MAP_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; END IF; ------------------------------------------------------------ -- Create Tables and Indexes ------------------------------------------------------------ -- X_GDS_DATASET SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'X_GDS_DATASET'; IF v_count = 0 THEN EXECUTE IMMEDIATE ' CREATE TABLE X_GDS_DATASET ( ID NUMBER(20) NOT NULL, GUID VARCHAR2(64) NOT NULL, CREATE_TIME DATE, UPDATE_TIME DATE, ADDED_BY_ID NUMBER(20), UPD_BY_ID NUMBER(20), VERSION NUMBER(20) DEFAULT 1 NOT NULL, IS_ENABLED NUMBER(1) DEFAULT 1 NOT NULL, NAME VARCHAR2(512) NOT NULL, DESCRIPTION CLOB, ACL CLOB, TERMS_OF_USE CLOB, OPTIONS CLOB, ADDITIONAL_INFO CLOB, PRIMARY KEY (ID), CONSTRAINT X_GDS_DATASET_UK_NAME UNIQUE (NAME), CONSTRAINT X_GDS_DATASET_FK_ADDED_BY_ID FOREIGN KEY (ADDED_BY_ID) REFERENCES X_PORTAL_USER(ID), CONSTRAINT X_GDS_DATASET_FK_UPD_BY_ID FOREIGN KEY (UPD_BY_ID) REFERENCES X_PORTAL_USER(ID) )'; EXECUTE IMMEDIATE 'CREATE INDEX X_GDS_DATASET_GUID ON X_GDS_DATASET(GUID)'; END IF; -- X_GDS_PROJECT SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'X_GDS_PROJECT'; IF v_count = 0 THEN EXECUTE IMMEDIATE ' CREATE TABLE X_GDS_PROJECT ( ID NUMBER(20) NOT NULL, GUID VARCHAR2(64) NOT NULL, CREATE_TIME DATE, UPDATE_TIME DATE, ADDED_BY_ID NUMBER(20), UPD_BY_ID NUMBER(20), VERSION NUMBER(20) DEFAULT 1 NOT NULL, IS_ENABLED NUMBER(1) DEFAULT 1 NOT NULL, NAME VARCHAR2(512) NOT NULL, DESCRIPTION CLOB, ACL CLOB, TERMS_OF_USE CLOB, OPTIONS CLOB, ADDITIONAL_INFO CLOB, PRIMARY KEY (ID), CONSTRAINT X_GDS_PROJECT_UK_NAME UNIQUE (NAME), CONSTRAINT X_GDS_PROJECT_FK_ADDED_BY_ID FOREIGN KEY (ADDED_BY_ID) REFERENCES X_PORTAL_USER(ID), CONSTRAINT X_GDS_PROJECT_FK_UPD_BY_ID FOREIGN KEY (UPD_BY_ID) REFERENCES X_PORTAL_USER(ID) )'; EXECUTE IMMEDIATE 'CREATE INDEX X_GDS_PROJECT_GUID ON X_GDS_PROJECT(GUID)'; END IF; -- X_GDS_DATA_SHARE SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'X_GDS_DATA_SHARE'; IF v_count = 0 THEN EXECUTE IMMEDIATE ' CREATE TABLE X_GDS_DATA_SHARE ( ID NUMBER(20) NOT NULL, GUID VARCHAR2(64) NOT NULL, CREATE_TIME DATE, UPDATE_TIME DATE, ADDED_BY_ID NUMBER(20), UPD_BY_ID NUMBER(20), VERSION NUMBER(20) DEFAULT 1 NOT NULL, IS_ENABLED NUMBER(1) DEFAULT 1 NOT NULL, NAME VARCHAR2(512) NOT NULL, DESCRIPTION CLOB, ACL CLOB, SERVICE_ID NUMBER(20) NOT NULL, ZONE_ID NUMBER(20) NOT NULL, CONDITION_EXPR CLOB, DEFAULT_ACCESS_TYPES CLOB, DEFAULT_TAG_MASKS CLOB, TERMS_OF_USE CLOB, OPTIONS CLOB, ADDITIONAL_INFO CLOB, PRIMARY KEY (ID), CONSTRAINT X_GDS_DSH_UK_NAME UNIQUE (SERVICE_ID, ZONE_ID, NAME), CONSTRAINT X_GDS_DSH_FK_ADDED_BY_ID FOREIGN KEY (ADDED_BY_ID) REFERENCES X_PORTAL_USER(ID), CONSTRAINT X_GDS_DSH_FK_UPD_BY_ID FOREIGN KEY (UPD_BY_ID) REFERENCES X_PORTAL_USER(ID), CONSTRAINT X_GDS_DSH_FK_SERVICE_ID FOREIGN KEY (SERVICE_ID) REFERENCES X_SERVICE(ID), CONSTRAINT X_GDS_DSH_FK_ZONE_ID FOREIGN KEY (ZONE_ID) REFERENCES X_SECURITY_ZONE(ID) )'; EXECUTE IMMEDIATE 'CREATE INDEX X_GDS_DATA_SHARE_GUID ON X_GDS_DATA_SHARE(GUID)'; EXECUTE IMMEDIATE 'CREATE INDEX X_GDS_DSH_SERVICE_ID ON X_GDS_DATA_SHARE(SERVICE_ID)'; EXECUTE IMMEDIATE 'CREATE INDEX X_GDS_DSH_ZONE_ID ON X_GDS_DATA_SHARE(ZONE_ID)'; END IF; -- X_GDS_SHARED_RESOURCE SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'X_GDS_SHARED_RESOURCE'; IF v_count = 0 THEN EXECUTE IMMEDIATE ' CREATE TABLE X_GDS_SHARED_RESOURCE ( ID NUMBER(20) NOT NULL, GUID VARCHAR2(64) NOT NULL, CREATE_TIME DATE, UPDATE_TIME DATE, ADDED_BY_ID NUMBER(20), UPD_BY_ID NUMBER(20), VERSION NUMBER(20) DEFAULT 1 NOT NULL, IS_ENABLED NUMBER(1) DEFAULT 1 NOT NULL, NAME VARCHAR2(512) NOT NULL, DESCRIPTION CLOB, DATA_SHARE_ID NUMBER(20) NOT NULL, RESOURCE CLOB NOT NULL, RESOURCE_SIGNATURE VARCHAR2(128) NOT NULL, SUB_RESOURCE CLOB, SUB_RESOURCE_TYPE CLOB, CONDITION_EXPR CLOB, ACCESS_TYPES CLOB, ROW_FILTER CLOB, SUB_RESOURCE_MASKS CLOB, PROFILES CLOB, OPTIONS CLOB, ADDITIONAL_INFO CLOB, PRIMARY KEY (ID), CONSTRAINT X_GDS_SHRES_UK_NAME UNIQUE (DATA_SHARE_ID, NAME), CONSTRAINT X_GDS_SHRES_UK_RES_SIGN UNIQUE (DATA_SHARE_ID, RESOURCE_SIGNATURE), CONSTRAINT X_GDS_SHRES_FK_ADDED_BY_ID FOREIGN KEY (ADDED_BY_ID) REFERENCES X_PORTAL_USER(ID), CONSTRAINT X_GDS_SHRES_FK_UPD_BY_ID FOREIGN KEY (UPD_BY_ID) REFERENCES X_PORTAL_USER(ID), CONSTRAINT X_GDS_SHRES_FK_DSH_ID FOREIGN KEY (DATA_SHARE_ID) REFERENCES X_GDS_DATA_SHARE(ID) )'; EXECUTE IMMEDIATE 'CREATE INDEX X_GDS_SHRES_GUID ON X_GDS_SHARED_RESOURCE(GUID)'; EXECUTE IMMEDIATE 'CREATE INDEX X_GDS_SHRES_DSH_ID ON X_GDS_SHARED_RESOURCE(DATA_SHARE_ID)'; END IF; ------------------------------------------------------------ -- Continue with remaining tables (X_GDS_DATA_SHARE_IN_DATASET, X_GDS_DATASET_IN_PROJECT, -- X_GDS_DATASET_POLICY_MAP, X_GDS_PROJECT_POLICY_MAP) -- Follow the same pattern: check count, then CREATE TABLE, then CREATE INDEX ------------------------------------------------------------ COMMIT;END;/aError 2
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.12.v20230209-e5c4074ef3): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected
And similarly facing issues for files - 10060, 10061, may experincing for the same till 10070
Workaround:
- Log in to the Oracle backend DB
For example:
su oracleexport ORACLE_SID=ORCLCDBexport ORACLE_HOME=/opt/oracle/product/19c/dbhome_1export PATH=$ORACLE_HOME/bin:$PATHsqlplus rangerdba/rangerdba@cent7-upg-01.acceldata.ce:1521/ORCLPDB1- Run the below from the Oracle's SQLPlus terminal.
SET SERVEROUTPUT ON;-- Clean up any failed patch attemptsDELETE FROM x_db_version_h WHERE version LIKE 'J100%' AND active = 'N';-- Apply all problematic patches (J10051, J10060-J10070)BEGIN -- J10051 INSERT INTO x_db_version_h (id, version, inst_at, inst_by, updated_at, updated_by, active) SELECT X_DB_VERSION_H_SEQ.nextval, 'J10051', SYSDATE, 'Ranger 2.5.0.3.2.3.5-2', SYSDATE, 'MANUAL_FIX', 'Y' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM x_db_version_h WHERE version = 'J10051'); -- J10060 INSERT INTO x_db_version_h (id, version, inst_at, inst_by, updated_at, updated_by, active) SELECT X_DB_VERSION_H_SEQ.nextval, 'J10060', SYSDATE, 'Ranger 2.5.0.3.2.3.5-2', SYSDATE, 'MANUAL_FIX', 'Y' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM x_db_version_h WHERE version = 'J10060'); -- J10061 INSERT INTO x_db_version_h (id, version, inst_at, inst_by, updated_at, updated_by, active) SELECT X_DB_VERSION_H_SEQ.nextval, 'J10061', SYSDATE, 'Ranger 2.5.0.3.2.3.5-2', SYSDATE, 'MANUAL_FIX', 'Y' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM x_db_version_h WHERE version = 'J10061'); -- J10062 through J10070 FOR i IN 62..70 LOOP DECLARE v_version VARCHAR2(10) := 'J100' || TO_CHAR(i, 'FM00'); v_exists NUMBER; BEGIN SELECT COUNT(*) INTO v_exists FROM x_db_version_h WHERE version = v_version; IF v_exists = 0 THEN INSERT INTO x_db_version_h (id, version, inst_at, inst_by, updated_at, updated_by, active) VALUES (X_DB_VERSION_H_SEQ.nextval, v_version, SYSDATE, 'Ranger 2.5.0.3.2.3.5-2', SYSDATE, 'MANUAL_FIX', 'Y'); DBMS_OUTPUT.PUT_LINE('Applied: ' || v_version); ELSE DBMS_OUTPUT.PUT_LINE('Already exists: ' || v_version); END IF; END; END LOOP; COMMIT; DBMS_OUTPUT.PUT_LINE('=== All patches successfully applied ===');END;/-- VerifySELECT version, active, inst_at FROM x_db_version_h WHERE version LIKE 'J100%' ORDER BY TO_NUMBER(SUBSTR(version, 5));EXIT;and then continue with the upgrade process.

Verify the Upgrade History

Mpacks Restore
Perform the following steps to restore Mpacks.
- Install Mpacks on the Ambari Server node.
ambari-server install-mpack --mpack=ambari-mpacks-airflow-2.8.1.tar.gzambari-server install-mpack --mpack=ambari-mpacks-impala-4.4.0.tar.gzambari-server install-mpack --mpack=ambari-mpacks-ozone-1.4.1.tar.gzambari-server install-mpack --mpack=ambari-mpacks-spark3-3.5.5.tar.gz- Install the services from Ambari.
- Stop the Mpack services from ambari UI.
- Restore the config at mysql DB.
Now restore the configuration backups for the mpacks that were taken during the upgrade prerequisites phase. For details, see upgrade-prerequisites.
mysql> use ambariReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedRestore Airflow Config
Run the following script.
mysql> update clusterconfig a set config_data = (select config_data from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM service_conf_bck.configs_prior_patch WHERE service_name = 'AIRFLOW') and service_name = 'AIRFLOW'), config_attributes = (select config_attributes from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM serviceconfig WHERE service_name = 'AIRFLOW') and service_name = 'AIRFLOW') where config_id in (select config_id from serviceconfigmapping where service_config_id in (select service_config_id from serviceconfig where service_name = 'AIRFLOW' and version = (select max(version) from serviceconfig where service_name = 'AIRFLOW')) );Response:
Query OK, 3 rows affected (0.06 sec)Rows matched: 27 Changed: 3 Warnings: 0Restore Ozone Configs
Run the following script.
update clusterconfig a set config_data = (select config_data from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM service_conf_bck.configs_prior_patch WHERE service_name = 'OZONE') and service_name = 'OZONE'), config_attributes = (select config_attributes from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM serviceconfig WHERE service_name = 'OZONE') and service_name = 'OZONE') where config_id in (select config_id from serviceconfigmapping where service_config_id in (select service_config_id from serviceconfig where service_name = 'OZONE' and version = (select max(version) from serviceconfig where service_name = 'OZONE')) );Response:
Query OK, 16 rows affected (0.06 sec)Rows matched: 24 Changed: 16 Warnings: 0Restore Impala Configs
Run the following script.
update clusterconfig a set config_data = (select config_data from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM service_conf_bck.configs_prior_patch WHERE service_name = 'IMPALA') and service_name = 'IMPALA'), config_attributes = (select config_attributes from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM serviceconfig WHERE service_name = 'IMPALA') and service_name = 'IMPALA') where config_id in (select config_id from serviceconfigmapping where service_config_id in (select service_config_id from serviceconfig where service_name = 'IMPALA' and version = (select max(version) from serviceconfig where service_name = 'IMPALA')) );Response:
Query OK, 1 row affected (0.04 sec)Rows matched: 4 Changed: 1 Warnings: 0Restore Kudu Configs
Run the following script.
update clusterconfig a set config_data = (select config_data from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM service_conf_bck.configs_prior_patch WHERE service_name = 'KUDU') and service_name = 'KUDU'), config_attributes = (select config_attributes from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM serviceconfig WHERE service_name = 'KUDU') and service_name = 'KUDU') where config_id in (select config_id from serviceconfigmapping where service_config_id in (select service_config_id from serviceconfig where service_name = 'KUDU' and version = (select max(version) from serviceconfig where service_name = 'KUDU')) );Response:
Query OK, 1 row affected (0.03 sec)Rows matched: 10 Changed: 1 Warnings: 0Restore Spark3 Configs
Run the following script.
update clusterconfig a set config_data = (select config_data from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM service_conf_bck.configs_prior_patch WHERE service_name = 'SPARK3') and service_name = 'SPARK3'), config_attributes = (select config_attributes from service_conf_bck.configs_prior_patch b where a.type_name = b.type_name and version = (SELECT MAX(version) FROM serviceconfig WHERE service_name = 'SPARK3') and service_name = 'SPARK3') where config_id in (select config_id from serviceconfigmapping where service_config_id in (select service_config_id from serviceconfig where service_name = 'SPARK3' and version = (select max(version) from serviceconfig where service_name = 'SPARK3')) );Response:
Query OK, 1 row affected (0.03 sec)Rows matched: 12 Changed: 1 Warnings: 0