Upgrading on Windows

How to upgrade a single server installation using an installer or zip archive

As there are different ways to install ArangoDB on Windows, the upgrade method depends on the installation method that was used.

In general, it will be needed to:

  • Install (or unpack) the new ArangoDB binaries on the system
  • Upgrade the current database (or perform a restore)
  • Optional (but suggested) to keep the system clean (unless there are specific reasons to not do so): remove the old binaries from the system

Some of the above steps may be done automatically, depending on your specific situation.

It is highly recommended to take a backup of your data before upgrading ArangoDB using arangodump.

Upgrading via the Installer

If you have installed via the Installer, to upgrade:

  • Download the new Installer and run it.
  • The Installer will ask if you want to update your current database: select the option “Automatically update existing ArangoDB database” so that the database files will be upgraded.

Update Option

Upgrading via the Installer, when the old data is kept, will keep your password and choice of storage engine as it is.
  • After installing the new package, you will have both packages installed.
  • You can uninstall the old one manually (make a copy of your old configuration file first).

Uninstall old version

When uninstalling the old package, please make sure the option “Delete databases with uninstallation” is not checked.

Delete Option

When upgrading, the Windows Installer does not use the old configuration file for the installed Single Instance but a new (default) one (Issue #3773 ). To use the old configuration, it is currently needed to:

  • Stop the server
  • Replace the new with the old configuration file
  • Restart the server

Manual upgrade of a ‘ZIP archive’ installation

There are two ways to upgrade a Single Instance that has been started from a ZIP package:

  • In-Place upgrade
  • Logical upgrade

In-Place upgrade

This method works easier if:

  • You are using a data directory which is located outside of the directory created when extracting the ZIP archive (data directory can be set via the server option --database.directory)
  • You are using a configuration file which is located outside of the directory created when extracting the ZIP archive (a configuration file can be passed via the server option --configuration)

Assuming that:

  • Your data directory is directory1 (e.g. “D:\arango\data”)
  • Your configuration file is file (e.g. “D:\arango\conf\arangod.conf”)
  • Your old binaries are on directory2 (e.g. “C:\tools\arangodb-3.4.0”)

to perform the upgrade of a Single Instance:

  1. Download and extract the new ZIP package into a new directory (e.g directory3 “C:\tools\arangodb-3.4.1”)
  2. Stop your old server
  3. Start again the server (this time using the binary located in directory3) passing:
    • directory1 as --database.directory,
    • file as --configuration
    • the option --database.auto-upgrade (so that the old data directory will be upgraded)
  4. When the previous step is finished the server will stop automatically; you can now start your server again as done in the previous step but without passing the --database.auto-upgrade option
  5. Optionally remove the old server package by dropping the corresponding directory when you are confident enough that all is working fine.

Logical upgrade

To perform the upgrade of a Single Instance:

  1. Download the new package and extract it on a different location than the previous one
  2. Stop writes to the old server (e.g. block incoming connections)
  3. Take a backup of the data using arangodump
  4. Stop the old server
  5. Optional (depending on whether or not you modified default configuration), copy old ArangoDB configuration file to the new server (or just edit the new configuration file)
  6. Start the new server (with a fresh data directory, by default it will be inside the directory created when extracting the ZIP archive)
  7. Restore the backup into the new server using arangorestore
  8. Re-enable the writes (e.g. allow again incoming connections)
  9. Optionally remove the old server package by dropping the corresponding directory when you are confident enough that all is working fine.