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 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:

[appdir]\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.)

Tip

In accordance with backup best practice, the above directory should be regularly backed-up to offline media (e.g. tape or CD). This will allow the data to be restored in the case the server hard-drive is corrupted.

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:

  • Hardware or system failure requires you to rebuild the server and reinstall PaperCut NG.

  • A new print server was purchased and PaperCut NG is being moved to a new server.

  • To import data into an external RDBMS (See Chapter 15, Deployment on an External RDBMS).

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 [appdir]\server\bin\win\.

  4. Run the import process by executing the following:

    db-tools import-db -f "backup file path"
                        
  5. The import will ask whether the existing database data should be deleted before proceeding.

  6. 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: [appdir]\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.