System Backups

As with any application, it is important to ensure that backups are performed regularly. PaperCut NG includes a built-in backup process that saves the state of the database to a file. The in-built backup functionality is designed to complement (not replace) a good system-wide backup policy and procedure. The backup is stored in the industry standard XML format that is compressed using the standard ZIP format to reduce disk-space on the server and your backup medium. The use of these open standards ensures that your data is always available and accessible.

PaperCut NG makes the process of managing backups simple by automatically performing a weekly backup. The backup file is in the following directory:

[app-path]\server\data\backups

The weekly backups are performed at 20 minutes past midnight on Sunday morning (or as otherwise defined by the schedule.weekly config key. Please see the section called “Using the Config Editor” to find out how to change config keys.)

Tip

In accordance with backup best practice, the above directory should be regularly backed-up to offline media (e.g. tape, CD or remote server). This will allow the data to be restored in the case the server hard-drive is corrupted. An example backup script called copy-backups-to-remote-server.bat found at [app-path]/server/examples/scripting/batch/ may help administrators automate the process of maintaining an off-disk copy.

On larger networks, it may be desirable to perform backups more frequently than the in-built once a week period. The server-command tool may be used to execute the backup task at other times. Simply write a script (e.g. batch file) to execute server-command perform-online-backup. Schedule the script to run at the desired intervals. More information on server-command is available in the section called “Server Commands (server-command)”.

Performing an Online Backup

In addition to the automated weekly backups, it is also possible to manually initiate a backup. This might be useful to back up the system before performing an upgrade. To perform a manual backup:

  1. Navigate to the OptionsBackups page.

  2. Press the Backup Now button.

  3. A window will open showing the backup progress and the location where the backup file is saved.

Restoring a Backup

There are a number of situations when it might be necessary to restore a database, including:

To restore from a backup:

  1. Locate a previous backup file.

  2. Shutdown the application server (See the section called “Stopping and Starting the Application Server”). The database cannot be in-use when performing the restore, so the application server needs to be stopped first.

  3. Open a command prompt. Change to the server binaries directory. On a Windows system the directory location is [app-path]\server\bin\win\.

  4. Re-initialize the database back to an empty state by typing the following:

    db-tools init-db -f 
                            

  5. Run the import process by executing the following:

    db-tools import-db -f "C:\path\to\backup\backup-file-name.zip"
                            

    (Or, ./db-tools on some systems. See the section called “Database Tool (db-tools)” for more information on using db-tools) NOTE: On Mac/Linux ensure proper permissions for access to the file, e.g.

    chown papercut:admin \path\to\backup\backup-file-name.zip
                            

  6. The import will ask whether the existing database data should be deleted before proceeding.

  7. Once the import has completed, restart the application server (See the section called “Stopping and Starting the Application Server”).

Performing Offline Backups

Performing an online backup (as discussed above) is a simple and convenient process, but it is sometimes necessary to perform an offline backup. For example:

  • To integrate into your existing backup procedures, it might be necessary to write a script or batch file to perform a backup at a known point in time.

  • When it is necessary to guarantee that the backup captures all the data. When performing an online backup the system is still in use so data could be modified after the backup completes.

To perform an offline backup:

  1. Stop the application server (See the section called “Stopping and Starting the Application Server”). To ensure all data is captured, the application server must be stopped to perform an offline backup.

  2. Open a command prompt. On a Windows system change to the following directory: [app-path]\server\bin\win\

  3. Run the database export process by executing:

    db-tools export-db

    (This will create a backup file in the system backups directory and the filename named with a timestamp).

    The export command has additional options that allows you to specify a different directory or filename. See the section called “export-db Command” for more details.

Backup File Retention

Backup files in

[app-path]\server\data\backups

will be retained for 30 days and then deleted. This number of days can be changed on the OptionsBackups page under "Keep backups for ... days". This period will automatically be extended should backups not be performed on a regular basis, i.e. when automatic backup have been temporarily disabled for a time or when skipping scheduled backups due to a system outage. Older backups files will not be deleted unless a number of new backups have been performed. At the very least the latest backup file will always be retained regardless of its age.