MySQL Enterprise Backup (MEB) Lifecycle

Database-Key-Dates

Installation

Download

Download installation files from Oracle e-delivery...


V1006237-01.zip - MySQL Enterprise Backup 8.0.23 TAR for Oracle Linux / RHEL 7 x86 (64bit), 50.6 MBV1008500-01.zip - MySQL Enterprise Backup 8.0.24 TAR for Oracle Linux / RHEL 7 x86 (64bit), 35.5 MBV1018027-01.zip - MySQL Enterprise Backup 8.0.27 TAR for Generic Linux x86 (64bit), 67.5MB
8.0.27ZIPFILE=V1018027-01.zipTARFILE=mysql-commercial-backup-8.0.27-linux-glibc2.12-x86_64.tar.xz8.0.28ZIPFILE=V1019381-01.zipTARFILE=mysql-commercial-backup-8.0.28-linux-glibc2.12-x86_64.tar.xz

Install (Linux)

Unpack meb-{version}-el6-x86-64bit.tar.gz to /mysql/mysql-backup

cd /mysql

unzip ${ZIPFILE}

tar xvf ${TARFILE}

ln -s /mysql/$(echo ${TARFILE} | awk -F".tar" '{ print $1 }') /mysql/mysql-backup

mv README.txt /mysql/mysql-backup

rm -f ${TARFILE} ${TARFILE}.asc ${TARFILE}.md5 ${ZIPFILE}

export PATH=/mysql/mysql-backup/bin:$PATH

Add this to the .bash_profile for the root user 

vi /root/.bash_profile

Add backup user to MySQL

For MySQL < 8.0

CREATE USER 'backup'@'myserver';

GRANT RELOAD                               ON *.*                          TO 'backup'@'myserver';

GRANT CREATE, INSERT, DROP, UPDATE         ON mysql.ibbackup_binlog_marker TO 'backup'@'myserver';

GRANT CREATE, INSERT, DROP, UPDATE         ON mysql.backup_progress        TO 'backup'@'myserver';

GRANT CREATE, INSERT, SELECT, DROP, UPDATE ON mysql.backup_history         TO 'backup'@'myserver';

GRANT REPLICATION CLIENT                   ON *.*                          TO 'backup'@'myserver';

GRANT SUPER                                ON *.*                          TO 'backup'@'myserver';

GRANT CREATE TEMPORARY TABLES              ON mysql.*                      TO 'backup'@'myserver';

FLUSH PRIVILEGES;

For MySQL 8.0.19+

CREATE USER 'mysqlbackup'@'localhost' IDENTIFIED BY RANDOM PASSWORD;

CREATE USER 'mysqlbackup'@'node1'  IDENTIFIED BY 'samepasswordasabove';

CREATE USER 'mysqlbackup'@'node2'  IDENTIFIED BY 'samepasswordasabove';

CREATE USER 'mysqlbackup'@'node3'  IDENTIFIED BY 'samepasswordasabove';


GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION CLIENT

   ON *.*

   TO 'mysqlbackup'@'localhost',

      'mysqlbackup'@'node1',

      'mysqlbackup'@'node2',

      'mysqlbackup'@'node2';


GRANT BACKUP_ADMIN

   ON *.* 

   TO 'mysqlbackup'@'localhost',

      'mysqlbackup'@'node1',

      'mysqlbackup'@'node2',

      'mysqlbackup'@'node2';


GRANT CREATE, INSERT, DROP, UPDATE

   ON mysql.backup_progress

   TO 'mysqlbackup'@'localhost',

      'mysqlbackup'@'node1',

      'mysqlbackup'@'node2',

      'mysqlbackup'@'node2';


GRANT CREATE, INSERT, DROP, UPDATE, SELECT, ALTER

   ON mysql.backup_history

   TO 'mysqlbackup'@'localhost',

      'mysqlbackup'@'node1',

      'mysqlbackup'@'node2',

      'mysqlbackup'@'node2';

Note that the requirement for multiple users is to allow the backup to run from any node in an innodb cluster and for the backup history to be synchronised across all nodes in the cluster.
Note also that the hostname for "node1","node2" etc should be the fully qualified name including domain information...hostname --fqdn
Note that you are likely to see this warning message (which can be ignored... at some point the MySQL documentation will, presumably, be updated with an updated set of GRANTs)... Warning (code 1287): The SUPER privilege identifier is deprecated
Note: For release 8.0.12 to 8.0.18 there are some additional GRANTs required...GRANT SELECT ON performance_schema.replication_group_members TO 'mysqlbackup'@'myserver';
GRANT SELECT ON performance_schema.variables_info TO 'mysqlbackup'@'myserver';
GRANT SELECT ON performance_schema.log_status TO 'mysqlbackup'@'myserver';

Store Password

Securely store password for mysqlbackup user...

Do this on every node in an innodb cluster so that backups still work after a failover/switchover

mysql_config_editor set --login-path=mysqlbackup --user=mysqlbackup --password

See Example Backup Script

Patch

Upgrade

For MySQL 8.0

GRANT CREATE, INSERT, DROP ON mysql.backup_history_old TO 'mysqlbackup'@'myserver';          # For upgrades to release 8.0.12+

GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_history_new TO 'mysqlbackup'@'myserver';   # For upgrades to release 8.0.12+

https://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/backup-history-table-update.html 

GRANT ALTER ON mysql.backup_progress TO 'mysqlbackup'@'myserver';                            # For upgrades to release 8.0.19+

GRANT CREATE, INSERT, DROP ON mysql.backup_progress_old TO 'mysqlbackup'@'myserver';         # For upgrades to release 8.0.19+

GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_progress_new TO 'mysqlbackup'@'myserver';  # For upgrades to release 8.0.19+

https://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/backup-progress-table-update.html 

Deinstall