MySQL recovery
Backup Manager lets you restore the MySQL instances it has backed up. Note that the whole instance is restored (it is not possible to select a particular database, file or table from it).
You can recover MySQL (using the Backup Manager or command line) to either of the following:
- To the current location (in-place restore) - An in-place restore can only be performed only if the following is true:
- MySQL configuration is the same as during the backup
- All MySQL data is inside the datadir folder on Linux, MacOS and Windows
On Windows the
innodb_data_home_dir
andinnodb_log_group_home_dir
folders are also supported for in-place restores.
- To a new location - In this case you will need to move the files to an appropriate folder where MySQL can recognize them. Please do not forget to stop the MySQL service before doing it
How in-place restores work
How in-place restore works after the Restore is started:
- Make a request to MySQL server to get the path to the restore data
- Get the MySQL server user
- Stop the MySQL service
- Restore files to the requested location
- Change the files owner and group to the MySQL server user
- Start MySQL service
Right now only the initd service manager is supported to stop and start MySQL service.
Starting the MySQL service on Security-Enhanced Linux after recovery
SELinux may prevent the MySQL Server Daemon from accessing the database files after recovery, in this case, it results in error #13: Can't open the mysql.plugin table.
In this case, run mysql_upgrade
to create it.
Once created, you can reset the security context of the database files, for example using the restorecon program, by running the following command:
restorecon -Rv /var/lib/mysql
It may also be necessary to repeat the command for other files and directories which have been restored.
Use the man restorecon
command to get additional information about restorecon.
Restore through the command line
- Start your terminal emulator and move to the Backup Manager installation directory
cd /opt/MXB/bin
- Initiate the recovery of your MySQL server
./ClientTool control.restore.start -datasource MySql -selection mysqldb
Here are some options:
- You can restore to the current directory (in-place restore) under certain circumstances. To perform a restore to an intermediate directory, specify the
-restore-to
parameter, for example-restore-to /tmp
- You can specify the backup session that you want to restore (by default the most recent session is selected). This is done using the
-time
parameter – for example-time "2016-09-02 14:44:39"
You can check the current status of the restore session using the
control.session.list
command. - You can restore to the current directory (in-place restore) under certain circumstances. To perform a restore to an intermediate directory, specify the
- (if applicable) If you recovered MySQL to an intermediate directory, you will need to copy the recovered files to the appropriate data directory for the recovered instance
For example, on Linux:
/var/lib/mysql
For example, on Windows:
C:\ProgramData\MySQL\MySQL Server 5.5\data
- (if applicable) On Linux, original file locations and permissions cannot be determined, because Percona XtraBackup files are used and these do not contain the original file locations and permissions
For example:
chown -R mysql:mysql /var/lib/mysql
- Restart the MySQL service to apply the changes
Important
To get details on a particular command (output structure, required arguments and optional arguments), enter the following string to your terminal emulator:
./ClientTool help -c <command>