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:

  • entry in [Storedb].conf Dumpdir= /srv/dumps

  • parameter in command line perl MySQLBackup.pl -full -storename Store -dumpdir /srv/dumps

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.

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.

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

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.

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.

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.