Share this page

# Upgrade PPM - Oracle

This topic provides detailed steps to upgrade PPM with an Oracle database to the latest version.

In this topic:

## Upgrade PPM with Oracle database

You should use the `sh upgrade.sh` command to upgrade PPM.

To upgrade PPM with an Oracle database:

1. Extract the ppm-<PPM version>-upgrade.zip package.

2. Navigate to the <PPM_Home>upgrade_<PPM version> directory and run the sh upgrade.sh command.

   Parameter | Description
   --- | ---
   `-o`, or `--on_current_home` | Upgrades PPM on your current PPM system. This parameter overrides the "-n" parameter. Do not use the "-o" and "-n" parameters together. Tip: We recommend that you upgrade PPM to a new <PPM_Home> folder, and use the current PPM system as a backup. For details, see -n, or --new_PPM_Home.
   `-n`, or `--new_PPM_Home` | Upgrades your current PPM system to a new specified <PPM_Home> folder. For details, see Upgrade PPM - Oracle. You cannot use this parameter if you already use the "-o" parameter. We recommend you run this command because doing this can back up the existing file system and makes it easier to restore. To define which files or folders to copy from the existing <PPM_Home> folder to the new folder, edit the `upgrade.properties` file under the upgrade_<PPM version> folder, for example: `ppm.upgrade.copypath=server.conf;ppm_server_conf.env;security;customization;content` Note: If you upgrade your instance to a new PPM home, in some cases, the attachments, report logs, and execution logs that are placed under the old PPM home might not be accessed by the upgraded instance. For details, see Verify the paths of attachments, report logs, and executions logs are correct.
   `-v`, or `--prevalidate` | Validates if your database is ready to upgrade. You can run this command anytime. Note: This command can only catch some most obvious issues. It cannot guarantee that no database related issues occur during the upgrade.
   `-p`, or `--noprevalidate` | Skips the database validation.
   `-b`, or `--no-backup` | Skips the file system backup. Note: This parameter is effective only when the -o parameter is used. For details, see -o, or --on_current_home.
   `-f`, or `--upgrade_filesystem` | Upgrades the PPM code file system only. If you have multiple PPM nodes across multiple physical servers, you need to upgrade PPM code file system on each server, while upgrading the PPM database only once.
   `-d`, or `--upgrade_database` | Upgrades the PPM database only.
   `-w`, or `--db-password` | Enters the PPM schema password. Optional. You can enter it later.
   `-l`, or `--install_old_langs` | Installs all the languages that have been installed in the current system to the upgraded instance.
   `-i`, or `--installation_locale` | Installs the system language. You can use it together with the "-a" parameter, but cannot use it if you already use the "-l" parameter.
   `-a`, or `--add_langs` | Installs extra languages in addition to the system language on the upgraded instance.
   `-m`, or `--name` | Specifies the name of a non-primary node server. Optional. Use it when you upgrade on a non-primary node server.

## Best practices for upgrade

The following are the recommended practices for upgrade.

You can upgrade the database first, then upgrade the file system. Alternatively, upgrade the database and file system together.

1. Before the upgrade, run sh upgrade.sh -v to validate your database.
2. Back up your database, and under any of the nodes, run sh upgrade.sh -d to upgrade the database.

3. For each node, upgrade your PPM code file system.

   1. Run sh upgrade.sh -n <NEW_PPM_Home> -f to upgrade your PPM code file system to a new <PPM_Home> directory.
   2. Rename the old <PPM_Home> to a different name, for example, PPM_24.1_Backup.
   3. Rename the new <PPM_Home> to the initial <PPM_Home> value.
4. Start PPM in the new <PPM_Home> folder.

Note: When upgrading to PPM 26.2 or 26.3, if you choose to perform a database-only upgrade using sh upgrade.sh -d, do not enable Single Language Optimization (SLO) during the upgrade. First complete the database upgrade, followed by the file system upgrade. After both upgrades have been successfully completed, you may run SLO if needed.

### Verify the paths of attachments, report logs, and executions logs are correct.

As the PPM code file system is upgraded to a new PPM home, to make sure the attachments, report logs, and execution logs can still be accessed by the upgraded instance, you should check the following parameters to verify the paths of these files.

- com.kintana.core.server.ATTACHMENT_DIRNAME
- com.kintana.core.server.BASE_LOG_DIR
- com.kintana.core.server.DISTRIBUTION_LOG_DIR
- com.kintana.core.server.PACKAGE_LOG_DIR
- com.kintana.core.server.REPORT_DIR
- com.kintana.core.server.REPORT_LOG_DIR
- com.kintana.core.server.REQUEST_LOG_DIR
- com.kintana.core.server.SCRIPT_DIR
- com.kintana.core.server.TEMP_DIR
- com.kintana.core.server.TRANSFER_PATH
- com.kintana.core.server.VALIDATION_LOG_DIR
- com.kintana.core.server.WEB_CACHE_DIR

If these parameters are set to the folders under the old PPM home that are mapped with shared folders where these files are actually stored, change the parameter values to mapped folders under the new PPM home.

If these parameters are set to the folders under the old PPM home where these files are actually stored, do either of the following.

- Recommended way: Do not host all your nodes on a single server. Separate them across multiple servers. Store attachments, reports, and execution logs in shared places and configure the above parameters to point to the shared places.

- Keep attachments/reports/execution logs in the old PPM home, and in the new PPM home, change the configurations to point to the old places.

  For report and execution logs, in the `server.conf` file of the upgraded PPM instance, change the above parameters to point to the old locations (e.g. locations under the old PPM home).

  For attachments, change `server.conf: com.kintana.core.server.ATTACHMENT_DIRNAME=/<old_PPM_Home>/attachments`, and in the Administration Console > DMS Configuration, set the dms.filesys.attachmentDir field to the old location.

### Install languages during upgrade

You can install the previously deployed languages after or during the upgrade.

To install the languages after the upgrade, run the `kDeploy.sh` command.

To install the languages during the upgrade, do the following:

1. Before the upgrade, run sh upgrade.sh -v to validate your database.

2. Before the upgrade, leave one node untouched, and for each of the rest nodes, run sh upgrade.sh -n <NEW_PPM_Home> -f -l to upgrade your PPM code file system to a new <PPM_Home> directory and install the languages.

3. On the upgrade day, back up your database, and under the not-upgraded node, run sh upgrade.sh -n <NEW_PPM_Home> -l.
4. Start PPM in the new <PPM_Home> folder.

### If you have frequent customizations, we have additional recommendations.

1. Commit your customizations to a source control system.
2. When you want to deploy customizations, download them from the source control system, and put them in a shared place.
3. Use kSync.sh to merge customizations from the shared place to the PPM code file system.

### SSH2 Client Migration when upgrading to 26.2 or later

In 26.2, the SSH2 JSch client has been replaced with the Apache SSH client. When upgrading from version 25.4 or earlier to 26.2 or later, environments using SSH must be updated.

If in an existing environment the Connection Protocol is set to SSH2, or if the Transfer Protocol is set to Secure Copy 2, perform the following:

1. Go to Workbench > Environments.

2. Open the configured environment and update the following:

   - Connection Protocol: Apache SSH2.

   - Transfer Protocol: Apache Secure Copy 2.

3. Click Save.

## Troubleshooting

If your PPM is installed with the Oracle database 19c running in CDB mode, the following error may occur during the upgrade:

"ORA-38824: A CREATE OR REPLACE command may not change the EDITIONABLE property of an existing object."

To resolve this issue:

1. In the SQL Plus window, run the following query:

   Copy code

       select 'alter ' || object_type || ' ' || object_name || ' editionable;' from user_objects where editionable = 'N'

2. If no result is returned, close the SQL Plus window.

3. If a query is returned, for example: `alter procedure <procedure-name> editionable`, then run the returned query in the SQL Plus window.

## See also

- Upgrade PPM - PostgreSQL

https://admhelp.microfocus.com PPM 8942
Tips to improve your search results... OpenText™ Project and Portfolio Management Help Center PPM Help 26.2-26.3 All View Local Help Center View Online Help Center Version: