Perforce Public Knowledge Base - Upgrading a Helix Server
Downloads Blog Company Integrations Careers Contact Try Free
Menu Search
Reset Search



Upgrading a Helix Server

« Go Back



How do I upgrade to a new version of the Helix Server?


To run a newer version of the Helix Server, your Perforce license must be current. You will not be able to upgrade to a Helix Server version that is dated beyond your license expiry.

If you are running a free Helix Server, upgrades are not restricted. A free Helix Server is sometimes used for evaluation.

Please be sure to read the P4D Release Notes before proceeding with your upgrade to be aware of the latest changes to the current Helix Server version.

In general, you cannot downgrade a Helix Server. It is therefore imperative that you create a checkpoint prior to upgrading to a new version.


        - If you are upgrading your server from a version earlier than 2013.3 to version 2013.3 or later, please follow the upgrade procedure in the article "Upgrading to 2013.3 and beyond". In general, you can upgrade from any previous version of the Helix Server to later releases. For example, you can upgrade directly from a 2010.2 version to 2013.1. There is no need to perform any incremental upgrade; the built-in upgrade process automatically performs the incremental Helix Server database updates and reports them.

        - if you have other Perforce products like Git Fusion, GitSwarm and such and/or your own tools connecting to your current version of Helix server, you must evaluate whether they will continue to work correctly after your server upgrade. The chances are these "non-p4d" products will need to be upgraded, too.

General Upgrade Procedure 

Assuming you have a current license or a free Helix Server, and you are upgrading from a recent release, upgrade the Helix Server by performing the following steps:

  1. Stop the Helix Server (p4d).

    If running as a Windows Service, you can use the Service manager to stop the Perforce service.

    Alternatively, on any platform, you can run:

    p4 admin stop

    (Note, you must be an operator user or have 'super' protections to run the 'p4 admin stop' command.)

  2. Make a checkpoint of the database by issuing the following command, where root is the directory in which your db.* files are located and journal is the path and name of your journal file.  Your journal file is usually named "journal".

    p4d -r root -J journal -jc
  3. Back up the versioned files.
  4. Download the new p4d executable from Perforce.

    On Windows, you will download the helix-versioning-engine-x86.exe or helix-versioning-engine-x64.exe installer.

  5. Install the new p4d in the desired location.

    On Unix, copy off the original p4d replace it with the newly downloaded p4d.

    On Windows, run the helix-versioning-engine-x86.exe or helix-versioning-engine-x64.exe and follow the prompts.

  6. Open a command prompt and run the following commands in the same directory. The first command shows you the p4d version so you can confirm you are using the newly installed p4d executable:

    p4d -V
    p4d -r root -J journal -xu
  7. Restart p4d with your usual parameters.

    On Unix, restart the Helix Server with a startup script or a command similar to:

    cd root ./p4d -r root -p 1666 -J pathto/journal -L pathto/log -d 

    On Windows, restart the Windows service named "Perforce".

There is an optional task to consider after completing the upgrade. It would be an opportune time to make a checkpoint of your newly upgraded database in case there is a subsequent need to recover the db.* files. To make a new checkpoint, repeat steps 1 and 2 from the preceding list.  If you create this checkpoint, consider moving the db.* files to another directory for safekeeping, then restore your newly created checkpoint.  Not only will you test that the checkpoint recovery works properly, but this will also rebalance your database for better performance as seen in Checkpoints for database tree rebalancing.

See Backup and Recovery in the Fundamentals Administrator's Guide for information on making a checkpoint of the database and backing up the versioned files.

Upgrading from earlier versions

If you are upgrading the Helix Server from a release prior to 2001.1, there may be additional considerations. To ensure a successful upgrade from releases prior to 2001.1, please send an email to

Remote depot support requires all your Helix Servers to use release 98.2 or later. 2005.1 and later servers can be used as remote depots from only 99.2 and later servers.

For upgrades to release 2005.1 and later, p4 verify -u must be run at least once following the upgrade to generate file length data for any files in your depot before the upgrade. 

For upgrades to release 2009.2 and later, note that Helix type unicode files can no longer be submitted to a non-Unicode enabled Helix Server. For details, see: Unicode File Type Handling Changes In 2009.2.

In general, older Helix client programs (p4, P4V, and P4SCC) work with newer server versions with no trouble. Please note, however, that legacy products (for example, P4DTI) and maintenance mode products (for example, P4Win) are not guaranteed to work with newer server versions. Some features in a new server release require a client upgrade to access the new features; users with older client programs cannot use such features.

Metadata database schema upgrades

Significant metadata database schema upgrades are performed by the p4d -xu command. The p4d -xu command is generally required when upgrading a server with 1000 or more changelists. If a server has fewer than 1000 changelists, it is automatically upgraded when the new server is started. Attempting to start a new server using a metadata database containing 1000 or more changelists, and for which significant schema upgrades are needed, results in the following server error:

Database is at old upgrade level xx. Use 'p4d -xu' to upgrade to level yy

Where xx and yy are server internal upgrade levels.

After writing the error, the server terminates. On Windows, error messages are written to the server log but are not displayed.

The p4d -xu command is not required for all server upgrades. For example, p4d -xu is not required when upgrading a 2005.2 server to 2006.1, regardless of the number of changelists. But this does not imply that a 2006.1 server can be downgraded to 2005.2 by simply starting a 2005.2 server using a metadata database previously used by a 2006.1 server. New servers make additional schema modifications in the metadata database as the new server executes.

Additional space required

For most upgrades, additional space is required for both the db.* files and the journal. Contact Perforce Technical Support if you have further questions about additional space requirements. 

Note: If you are upgrading the Helix Server from a release prior to 2002.1, and you use jobs, you must run p4 jobs -R to reindex the jobs. The maximum additional space required for the db.* files during the p4 jobs -R is equal to the size of db.ixtext. The maximum additional space required for the journal during the p4 jobs -R is the sum of three times the size of db.ixtext, twice the size of db.boddate, twice the size of db.bodtext, and twice the size of db.ixdate, or (3x size of db.ixtext) + (2x size of db.boddate) + (2x size of db.bodtext) + (2x size of db.ixdate).

Note: To minimize the additional space required for the journal, disable journaling during the upgrade. Be sure to re-enable journaling and make a checkpoint immediately following the successful upgrade. For information on enabling and disabling journaling, see the Journal files in the Fundamentals Administrator's Guide.

Related Links



Was this article helpful?



Please tell us how we can make this article more useful.

Characters Remaining: 255