MySQL Backup of an ePages Installation 6.15.4
Created: 6.10.1; Updated: 6.15.0

The backup scripts to start the backups are located in:

  $EPAGES_CARTRIDGES/DE_EPAGES/Database/Scripts

Running the scripts with parameter -help displays an explanation of all parameters.

The backup files will be stored by default in $EPAGES/MySQLDumps.

Another location can be defined via:

  Dumpdir= /srv/dumps

  perl MySQLBackup.pl -full -storename Store -dumpdir /srv/dumps

Table of Contents

1 MySQLBackup / MySQLRestore

This backup method is based on the default MySQL tool 'mysqldump' which comes with the MySQL installation.

It is a logical backup. Because of the parameters applied, the script performs a hot backup, i.e. the database doesn't need to be shut down.

1.1 Full backup

  perl MySQLBackup.pl -full -storename Store -dumpdir /srv/dumps

Using the parameter -storename allows backup of a special Store database. If the parameter is missing, all databases are stored in the backup file.

The backup is stored in a *.dmp file in the given dumpdir.

1.2 Restoring a full backup

The database system has to be running to perform the restore. It's recommended to shut down the epages application to avoid data inconsistencies during the restore.

  perl MySQLRestore.pl -dumpdir /srv/dumps -storename Store

1.3 Incremental backups

You can also perform incremental backups. Incremental backups use the BinLog functionality of MySQL.

Prerequisite is the 'log_bin' entry in the MySQL config file (e.g. my.cnf) in the section [mysqld]:

  [mysqld]
  log_bin = mysql-bin

'mysql-bin' is the relative or absolute path name where the backup files are stored. If the value is not defined the data is stored in a directory using the host name in the data directory of the MYSQL installation. This naming is inflexible and therefore not recommended.

The incremental backup stores the data localy - make sure that enough disc space is available.

Perform the incremental backup using the -log parameter instead of -full, like the following example:

  perl MySQLBackup.pl -log -storename Store -dumpdir /srv/dumps

The backup files are stored as binary files. They can be converted into a readable format using the MySQL tool 'mysqlbinlog':

  mysqlbinlog /srv/dumps/mysql-bin.000161 /srv/dumps/mysql-bin.000162 [...]

The converted file contains event numbers. These event numbers can be used as restore points.

To restore data based on an incremental backup, use a command like the following example:

  perl MySQLRestore.pl -storename Store -dumpdir /srv/dumps -lastfile mysql-bin.000162 -lastpos 184

The value of the parameter '-lastpos' is an event number of the relevant converted backup file.

For more information, see http://www.mysql.com http://dev.mysql.com/doc/refman/5.1/en/binary-log.html .

2 Scheduler

The backups can be performed via the scheduler. The relevant sections for MySQL backups are prepared in $EPAGES_CONFIG/Scheduler.conf of epages 6.10.0 and higher.

Usual options are -fullbackup, -logbackup, or -nooutput. The -nooutput option suppresses additional output into the log file.

By default, all stores are are backed up, but restriction of to single Store is possible.

3 Performance issues

The duration of the restore doesn't increase linearly with data volume. If the amount of data is double-digit or three-digit, the restore may take several hours, while the backup may take significantly less time.


Copyright ePages GmbH 2013