本文主要介绍MySQL Enterprise Backup的安装以及使用。
1、安装
从官方网站下载MySQL Enterprise Backup安装包,推荐下载rpm软件包。
[root@mydb01 ~]# rpm -qpl meb-4.1.1-el7.x86_64.rpm
warning: meb-4.1.1-el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
/opt
/opt/mysql
/opt/mysql/meb-4.1
/opt/mysql/meb-4.1/LICENSE.mysql
/opt/mysql/meb-4.1/LICENSE.third_party
/opt/mysql/meb-4.1/README.txt
/opt/mysql/meb-4.1/bin/mysqlbackup
/opt/mysql/meb-4.1/manual.html
/opt/mysql/meb-4.1/mvl.css
[root@mydb01 ~]# yum -y install meb-4.1.1-el7.x86_64.rpm
[root@mydb01 ~]# vi .bash_profile
export PATH=$PATH:$HOME/bin:/opt/mysql/meb-4.1/bin
2、备份
如果不想用root用户进行备份操作,则使用下面的语句创建专用的备份用户并赋予相关权限:
mysql> CREATE USER 'bakuser'@'localhost' IDENTIFIED BY 'abcABC@12';
mysql> GRANT RELOAD ON *.* TO 'bakuser'@'localhost';
mysql> GRANT CREATE, INSERT, DROP, UPDATE ON mysql.ibbackup_binlog_marker TO 'bakuser'@'localhost';
mysql> GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'bakuser'@'localhost';
mysql> GRANT CREATE, INSERT, SELECT, DROP, UPDATE ON mysql.backup_history TO 'bakuser'@'localhost';
mysql> GRANT REPLICATION CLIENT ON *.* TO 'bakuser'@'localhost';
mysql> GRANT SUPER ON *.* TO 'bakuser'@'localhost';
mysql> GRANT CREATE TEMPORARY TABLES ON mysql.* TO 'bakuser'@'localhost';
mysql> FLUSH PRIVILEGES;
2.1 全量备份
[root@mydb01 ~]# mysqlbackup --defaults-file=/etc/my.cnf --user=root --password --host=127.0.0.1 --with-timestamp --backup-dir=/u02/full backup-and-apply-log
MySQL Enterprise Backup version 4.1.1 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018/04/24 07:54:03]
Copyright (c) 2003, 2018, Oracle and/or its affiliates. All Rights Reserved.
[Build ID : 12942442.c465cfd7261c781502aec204494abf138f9d59e6]
180627 11:00:02 MAIN INFO: A thread created with Id '140048649107264'
180627 11:00:02 MAIN INFO: Starting with following command line ...
mysqlbackup --defaults-file=/etc/my.cnf --user=root --password
--host=127.0.0.1 --backup-dir=/u02/full backup-and-apply-log
180627 11:00:02 MAIN INFO:
Enter password:
180627 11:00:04 MAIN INFO: Not using SSL.
180627 11:00:04 MAIN INFO: MySQL server version is '5.7.22-log'
180627 11:00:04 MAIN INFO: MySQL server compile os version is 'Linux'
180627 11:00:04 MAIN INFO: SSL: SSL version used for connection is 'TLSv1.1'
180627 11:00:04 MAIN INFO: Got some server configuration information from running server.
180627 11:00:04 MAIN INFO: Server system variable 'old_alter_table' was set to '0'. Setting it to '1'.
IMPORTANT: Please check that mysqlbackup run completes successfully.
At the end of a successful 'backup-and-apply-log' run mysqlbackup
prints "mysqlbackup completed OK!".
180627 11:00:05 MAIN INFO: 0 active keyring plugins found.
180627 11:00:05 MAIN INFO: KEF target path:'/u02/full/2018-06-27_11-00-05/meta/keyring_kef'
180627 11:00:05 MAIN INFO: TDE Keyring service initialized.
180627 11:00:05 MAIN INFO: MEB logfile created at /u02/full/2018-06-27_11-00-05/meta/MEB_2018-06-27.11-00-05_backup_apply_log.log
--------------------------------------------------------------------
Server Repository Options:
--------------------------------------------------------------------
datadir = /var/lib/mysql/
innodb_data_home_dir =
innodb_data_file_path = ibdata1:12M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_files_in_group = 2
innodb_log_file_size = 50331648
innodb_undo_directory = /var/lib/mysql/
innodb_undo_tablespaces = 0
innodb_undo_logs = 128
innodb_buffer_pool_filename = ib_buffer_pool
innodb_page_size = 16384
innodb_checksum_algorithm = crc32
--------------------------------------------------------------------
Backup Config Options:
--------------------------------------------------------------------
datadir = /u02/full/2018-06-27_11-00-05/datadir
innodb_data_home_dir = /u02/full/2018-06-27_11-00-05/datadir
innodb_data_file_path = ibdata1:12M:autoextend
innodb_log_group_home_dir = /u02/full/2018-06-27_11-00-05/datadir
innodb_log_files_in_group = 2
innodb_log_file_size = 50331648
innodb_undo_directory = /u02/full/2018-06-27_11-00-05/datadir
innodb_undo_tablespaces = 0
innodb_undo_logs = 128
innodb_buffer_pool_filename = ib_buffer_pool
innodb_page_size = 16384
innodb_checksum_algorithm = crc32
180627 11:00:05 MAIN INFO: Unique generated backup id for this is 1530068404×××868
180627 11:00:05 MAIN INFO: Creating 14 buffers each of size 16777216.
180627 11:00:05 MAIN INFO: Full Backup operation starts with following threads
1 read-threads 6 process-threads 1 write-threads
180627 11:00:05 MAIN INFO: Found checkpoint at lsn 75536184611.
180627 11:00:05 MAIN INFO: Starting log scan from lsn = 75536184320 at offset = 41777664 and checkpoint = 75536184611 in file /var/lib/mysql/ib_logfile0.
180627 11:00:05 MAIN INFO: System tablespace file format is Antelope.
180627 11:00:05 MAIN INFO: Starting to copy all innodb files...
180627 11:00:05 RDR1 INFO: A thread created with Id '140048264505088'
180627 11:00:05 PCR2 INFO: A thread created with Id '140048247719680'
180627 11:00:05 PCR3 INFO: A thread created with Id '140048239326976'
180627 11:00:05 PCR5 INFO: A thread created with Id '140048222541568'
180627 11:00:05 PCR4 INFO: A thread created with Id '140048230934272'
180627 11:00:05 WTR1 INFO: A thread created with Id '140048003491584'
180627 11:00:05 RLR1 INFO: A thread created with Id '140047995098880'
180627 11:00:05 PCR6 INFO: A thread created with Id '140048011884288'
180627 11:00:05 PCR1 INFO: A thread created with Id '140048256112384'
180627 11:00:05 RLW1 INFO: A thread created with Id '140047986706176'
180627 11:00:05 RLP1 INFO: A thread created with Id '140047978313472'
180627 11:00:05 RDR1 INFO: Copying /var/lib/mysql/ibdata1 (Barracuda file format).
......
180627 11:15:43 RDR1 INFO: Completed the copy of binlog files...
180627 11:15:43 RDR1 INFO: Opening backup source directory '/var/lib/mysql'
180627 11:15:43 RDR1 INFO: Starting to backup all non-innodb files in
subdirectories of '/var/lib/mysql'
180627 11:15:43 RDR1 INFO: Copying the database directory '.oracle_jre_usage'
180627 11:15:43 RDR1 INFO: Copying the database directory 'hjy_zxzy'
180627 11:15:43 RDR1 INFO: Copying the database directory 'lepus'
180627 11:15:43 RDR1 INFO: Copying the database directory 'mysql'
180627 11:15:44 RDR1 INFO: Copying the database directory 'performance_schema'
180627 11:15:44 RDR1 INFO: Copying the database directory 'sys'
180627 11:15:44 RDR1 INFO: Completing the copy of all non-innodb files.
180627 11:15:44 RDR1 INFO: Requesting completion of redo log copy. Rapid: 0
180627 11:15:44 RLR1 INFO: Signaled '1' to complete log copy.
180627 11:15:44 RLR1 INFO: Signaled '1' to complete log copy.
180627 11:15:44 RLR1 INFO: Signaled '1' to complete log copy.
180627 11:15:44 RLR1 INFO: Redo log reader waited = 913270.00 ms for logs to generate.
180627 11:15:44 RLW1 INFO: A copied database page was modified at 75536184611.
(This is the highest lsn found on page)
Scanned log up to lsn 75536184696.
Was able to parse the log up to lsn 75536184696.
180627 11:15:45 RDR1 INFO: All tables unlocked
180627 11:15:45 RDR1 INFO: All MySQL tables were locked for 2.455 seconds.
180627 11:15:45 RDR1 INFO: Setting server system variable 'old_alter_table' back to '0'.
180627 11:15:45 RDR1 INFO: Reading all global variables from the server.
180627 11:15:45 RDR1 INFO: Completed reading of all global variables from the server.
180627 11:15:45 RDR1 INFO: Writing config file for server '5.7.22-log'.
180627 11:15:45 RDR1 INFO: Creating server config files server-my.cnf and server-all.cnf in /u02/full/2018-06-27_11-00-05
180627 11:15:45 MAIN INFO: Full Backup operation completed successfully.
180627 11:15:45 MAIN INFO: Backup created in directory '/u02/full/2018-06-27_11-00-05'
180627 11:15:45 MAIN INFO: MySQL binlog position: filename master-bin.005828, position 154
-------------------------------------------------------------
Parameters Summary
-------------------------------------------------------------
Start LSN : 75536184320
End LSN : 75536184696
-------------------------------------------------------------
180627 11:15:45 MAIN INFO: Creating 14 buffers each of size 65536.
180627 11:15:45 MAIN INFO: Apply-log operation starts with following threads
1 read-threads 1 process-threads 6 apply-threads
180627 11:15:45 MAIN INFO: Using up to 100 MB of memory.
180627 11:15:45 MAIN INFO: ibbackup_logfile's creation parameters:
start lsn 75536184320, end lsn 75536184696,
start checkpoint 75536184611.
180627 11:15:47 ALW1 INFO: A thread created with Id '140047978313472'
180627 11:15:47 ALW3 INFO: A thread created with Id '140047995098880'
180627 11:15:47 ALW4 INFO: A thread created with Id '140048003491584'
180627 11:15:47 ALW2 INFO: A thread created with Id '140047986706176'
180627 11:15:47 RDR1 INFO: A thread created with Id '140048500758272'
180627 11:15:47 ALW6 INFO: A thread created with Id '140048509150976'
180627 11:15:47 ALW5 INFO: A thread created with Id '140048517543680'
180627 11:15:47 PCR1 INFO: A thread created with Id '140048492365568'
180627 11:15:47 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 75536184696.
180627 11:15:47 PCR1 INFO: InnoDB: Starting an apply batch of log records to the database...
.
InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
180627 11:15:47 PCR1 INFO: InnoDB: Setting log file size to 50331648.
180627 11:15:47 PCR1 INFO: InnoDB: Setting log file size to 50331648.
180627 11:15:47 PCR1 INFO: We were able to parse ibbackup_logfile up to
lsn 75536184696.
180627 11:15:47 PCR1 INFO: Last MySQL binlog file position 0 154, file name master-bin.005828
180627 11:15:47 PCR1 INFO: The first data file is '/u02/full/2018-06-27_11-00-05/datadir/ibdata1'
and the new created log files are at '/u02/full/2018-06-27_11-00-05/datadir'
180627 11:15:47 MAIN INFO: Apply-log operation completed successfully.
180627 11:15:47 MAIN INFO: Full backup prepared for recovery successfully.
mysqlbackup completed OK!
--defaults-file:指定MySQL的配置文件 --user:指定备份用户 --password:备份用户的密码 --host:MySQL实例运行的主机 --backup-dir:MySQL备份文件的存放路径 --with-timestam:加上时间戳
2.2 增量备份
[root@mydb01 ~]# mysqlbackup --defaults-file=/etc/my.cnf --user=root --password --host=127.0.0.1 --with-timestamp --incremental-backup-dir=/u02/incr --start-lsn=75536184696 --incremental backup
MySQL Enterprise Backup version 4.1.1 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018/04/24 07:54:03]
Copyright (c) 2003, 2018, Oracle and/or its affiliates. All Rights Reserved.
[Build ID : 12942442.c465cfd7261c781502aec204494abf138f9d59e6]
180627 11:47:55 MAIN INFO: A thread created with Id '140596443768640'
180627 11:47:55 MAIN INFO: Starting with following command line ...
mysqlbackup --defaults-file=/etc/my.cnf --user=root --password
--host=127.0.0.1 --incremental-backup-dir=/u02/incr
--start-lsn=75536184696 --incremental backup
180627 11:47:55 MAIN INFO:
Enter password:
180627 11:47:58 MAIN INFO: Not using SSL.
180627 11:47:58 MAIN INFO: MySQL server version is '5.7.22-log'
180627 11:47:58 MAIN INFO: MySQL server compile os version is 'Linux'
180627 11:47:58 MAIN INFO: SSL: SSL version used for connection is 'TLSv1.1'
180627 11:47:58 MAIN INFO: Got some server configuration information from running server.
180627 11:47:58 MAIN INFO: Server system variable 'old_alter_table' was set to '0'. Setting it to '1'.
180627 11:47:58 MAIN WARNING: Binlog files will not be copied for this backup as --incremental-base is not specified.
IMPORTANT: Please check that mysqlbackup run completes successfully.
At the end of a successful 'backup' run mysqlbackup
prints "mysqlbackup completed OK!".
180627 11:47:58 MAIN INFO: 0 active keyring plugins found.
180627 11:47:58 MAIN INFO: KEF target path:'/u02/incr/2018-06-27.11-47-58/meta/keyring_kef'
180627 11:47:58 MAIN INFO: TDE Keyring service initialized.
180627 11:47:58 MAIN INFO: MEB logfile created at /u02/incr/2018-06-27.11-47-58/meta/MEB_2018-06-27.11-47-58_inc_backup.log
--------------------------------------------------------------------
Server Repository Options:
--------------------------------------------------------------------
datadir = /var/lib/mysql/
innodb_data_home_dir =
innodb_data_file_path = ibdata1:12M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_files_in_group = 2
innodb_log_file_size = 50331648
innodb_undo_directory = /var/lib/mysql/
innodb_undo_tablespaces = 0
innodb_undo_logs = 128
innodb_buffer_pool_filename = ib_buffer_pool
innodb_page_size = 16384
innodb_checksum_algorithm = crc32
--------------------------------------------------------------------
Backup Config Options:
--------------------------------------------------------------------
datadir = /u02/incr/2018-06-27.11-47-58/datadir
innodb_data_home_dir = /u02/incr/2018-06-27.11-47-58/datadir
innodb_data_file_path = ibdata1:12M:autoextend
innodb_log_group_home_dir = /u02/incr/2018-06-27.11-47-58/datadir
innodb_log_files_in_group = 2
innodb_log_file_size = 50331648
innodb_undo_directory = /u02/incr/2018-06-27.11-47-58/datadir
innodb_undo_tablespaces = 0
innodb_undo_logs = 128
innodb_buffer_pool_filename = ib_buffer_pool
innodb_page_size = 16384
innodb_checksum_algorithm = crc32
180627 11:47:58 MAIN INFO: Unique generated backup id for this is 15300712787259227
180627 11:47:58 MAIN INFO: Creating 14 buffers each of size 17301504.
180627 11:47:58 MAIN INFO: Incremental Backup operation starts with following threads
1 read-threads 6 process-threads 1 write-threads
180627 11:47:58 MAIN INFO: Found checkpoint at lsn 75536192617.
180627 11:47:58 MAIN INFO: Starting log scan from lsn = 75536192512 at offset = 41785856 and checkpoint = 75536192617 in file /var/lib/mysql/ib_logfile0.
180627 11:47:58 MAIN INFO: System tablespace file format is Antelope.
180627 11:47:58 MAIN INFO: Starting to copy all innodb files...
180627 11:47:58 RDR1 INFO: A thread created with Id '140596051826432'
180627 11:47:58 PCR1 INFO: A thread created with Id '140596043433728'
180627 11:47:58 WTR1 INFO: A thread created with Id '140595922188032'
180627 11:47:58 RDR1 INFO: Copying /var/lib/mysql/ibdata1 (Barracuda file format).
180627 11:47:58 RLW1 INFO: A thread created with Id '140595905402624'
180627 11:47:58 PCR2 INFO: A thread created with Id '140596035041024'
180627 11:47:58 PCR5 INFO: A thread created with Id '140595938973440'
180627 11:47:58 PCR4 INFO: A thread created with Id '140595947366144'
180627 11:47:58 RLP1 INFO: A thread created with Id '140595553105664'
180627 11:47:58 PCR6 INFO: A thread created with Id '140595930580736'
180627 11:47:58 RLR1 INFO: A thread created with Id '140595913795328'
180627 11:47:58 PCR3 INFO: A thread created with Id '140595955758848'
......
180627 11:53:07 RDR1 INFO: Completing the copy of innodb files.
180627 11:53:07 RDR1 INFO: Requesting a dump of the InnoDB buffer pool
180627 11:53:07 RDR1 INFO: Waiting for the dump of the InnoDB buffer pool to complete
180627 11:53:07 RDR1 INFO: The dump of the InnoDB buffer pool completed
180627 11:53:07 RDR1 INFO: Preparing to lock tables: Connected to mysqld server.
180627 11:53:07 RDR1 INFO: Starting to lock all the tables...
180627 11:53:07 RDR1 INFO: Flushing the default MyISAM key cache.
180627 11:53:07 RDR1 INFO: All tables are locked and flushed to disk
180627 11:53:07 RDR1 INFO: Completed the copy of binlog files...
180627 11:53:07 RDR1 INFO: Opening backup source directory '/var/lib/mysql'
180627 11:53:07 RDR1 INFO: Starting to backup all non-innodb files in
subdirectories of '/var/lib/mysql'
180627 11:53:07 RDR1 INFO: Copying the database directory '.oracle_jre_usage'
180627 11:53:07 RDR1 INFO: Copying the database directory 'hjy_zxzy'
180627 11:53:08 RDR1 INFO: Copying the database directory 'lepus'
180627 11:53:08 RDR1 INFO: Copying the database directory 'mysql'
180627 11:53:08 RDR1 INFO: Copying the database directory 'performance_schema'
180627 11:53:08 RDR1 INFO: Copying the database directory 'sys'
180627 11:53:08 RDR1 INFO: Completing the copy of all non-innodb files.
180627 11:53:08 RDR1 INFO: Requesting completion of redo log copy. Rapid: 0
180627 11:53:08 RLR1 INFO: Signaled '1' to complete log copy.
180627 11:53:08 RLR1 INFO: Signaled '1' to complete log copy.
180627 11:53:08 RLR1 INFO: Signaled '1' to complete log copy.
180627 11:53:08 RLR1 INFO: Redo log reader waited = 303270.00 ms for logs to generate.
180627 11:53:08 RLW1 INFO: A copied database page was modified at 75536192493.
(This is the highest lsn found on page)
Scanned log up to lsn 75536192626.
Was able to parse the log up to lsn 75536192626.
180627 11:53:09 RDR1 INFO: All tables unlocked
180627 11:53:09 RDR1 INFO: All MySQL tables were locked for 1.994 seconds.
180627 11:53:09 RDR1 INFO: Setting server system variable 'old_alter_table' back to '0'.
180627 11:53:09 RDR1 INFO: Reading all global variables from the server.
180627 11:53:09 RDR1 INFO: Completed reading of all global variables from the server.
180627 11:53:09 RDR1 INFO: Writing config file for server '5.7.22-log'.
180627 11:53:09 RDR1 INFO: Creating server config files server-my.cnf and server-all.cnf in /u02/incr/2018-06-27.11-47-58
180627 11:53:09 MAIN INFO: Incremental Backup operation completed successfully.
180627 11:53:09 MAIN INFO: Backup created in directory '/u02/incr/2018-06-27.11-47-58'
180627 11:53:09 MAIN INFO: Backup contains changes from lsn 75536184697 to lsn 75536192626
180627 11:53:09 MAIN INFO: MySQL binlog position: filename master-bin.005828, position 809
-------------------------------------------------------------
Parameters Summary
-------------------------------------------------------------
Start LSN : 75536184697
End LSN : 75536192626
-------------------------------------------------------------
mysqlbackup completed OK! with 1 warnings
--defaults-file:指定MySQL的配置文件 --user:指定备份用户 --password:备份用户的密码 --host:MySQL实例运行的主机 --incremental-backup-dir:MySQL增量备份文件的存放路径 --with-timestam:加上时间戳 --start-lsn:指上次备份完成后的LSN,可以在备份目录里的meta/backup_variables.txt文件中找到。 在初始备份过程中,系统会在mysql数据库中创建backup_history以及backup_progress两张表,备份的相关信息都会记录在这两张表中。
3、恢复
3.1 合并增量备份
如果mysql的备份有全量备份以及增量备份,在恢复之前必须整合增量备份到全量备份。
[root@mydb01 ~]# mysqlbackup --incremental-backup-dir=/u02/incr/2018-06-27.11-47-58 --backup-dir=/u02/full/2018-06-27_11-00-05/ apply-incremental-backup
MySQL Enterprise Backup version 4.1.1 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018/04/24 07:54:03]
Copyright (c) 2003, 2018, Oracle and/or its affiliates. All Rights Reserved.
[Build ID : 12942442.c465cfd7261c781502aec204494abf138f9d59e6]
180627 12:30:14 MAIN INFO: A thread created with Id '140486177048384'
180627 12:30:14 MAIN INFO: Starting with following command line ...
mysqlbackup --incremental-backup-dir=/u02/incr/2018-06-27.11-47-58
--backup-dir=/u02/full/2018-06-27_11-00-05/ apply-incremental-backup
180627 12:30:14 MAIN INFO:
IMPORTANT: Please check that mysqlbackup run completes successfully.
At the end of a successful 'apply-incremental-backup' run mysqlbackup
prints "mysqlbackup completed OK!".
180627 12:30:14 MAIN INFO: MySQL server version is '5.7.22-log'
180627 12:30:14 MAIN INFO: Restoring ...5.7.22-log version
180627 12:30:14 MAIN INFO: MySQL server version is '5.7.22-log'
180627 12:30:14 MAIN INFO: Restoring ...5.7.22-log version
180627 12:30:14 MAIN INFO: KEF source path:'/u02/incr/meta'
180627 12:30:14 MAIN INFO: KEF target path:'/u02/full/20180627/meta'
180627 12:30:14 MAIN INFO: TDE Keyring service initialized.
180627 12:30:14 MAIN INFO: MEB logfile created at /u02/full/20180627/meta/MEB_2018-06-27.12-30-14_apply_inc.log
--------------------------------------------------------------------
Backup Config Options:
--------------------------------------------------------------------
datadir = /u02/full/20180627/datadir
innodb_data_home_dir = /u02/full/20180627/datadir
innodb_data_file_path = ibdata1:12M:autoextend
innodb_log_group_home_dir = /u02/full/20180627/datadir
innodb_log_files_in_group = 2
innodb_log_file_size = 50331648
innodb_buffer_pool_filename = ib_buffer_pool
innodb_page_size = 16384
innodb_checksum_algorithm = crc32
180627 12:30:14 MAIN INFO: Creating 14 buffers each of size 17301504.
180627 12:30:14 MAIN INFO: Apply-Incremental-Pages operation starts with following threads
1 read-threads 1 write-threads
180627 12:30:14 MAIN INFO: Starting to copy all innodb files...
180627 12:30:14 MAIN INFO: Starting deletion of obsolete ibd files in backup-dir...
180627 12:30:14 MAIN INFO: Deleting dropped ibd files.
180627 12:30:14 MAIN INFO: Deletion of obsolete ibd files in backup-dir is completed.
180627 12:30:14 MAIN INFO: Deleting non-innodb files in backup-dir...
180627 12:30:14 RDR1 INFO: A thread created with Id '140485805418240'
180627 12:30:14 WTR1 INFO: A thread created with Id '140485797025536'
180627 12:30:14 RDR1 INFO: Applying diff pages from `/u02/incr/datadir/ibdata1` to `/u02/full/20180627/datadir/ibdata1`.
180627 12:30:14 RDR1 INFO: Applying incremental pages to innodb data files...
180627 12:30:14 RDR1 INFO: Applying diff pages from `/u02/incr/datadir/lepus/chapter.ibd` to `/u02/full/20180627/datadir/lepus/chapter.ibd`.
180627 12:30:14 RDR1 INFO: Applying diff pages from `/u02/incr/datadir/mysql/innodb_index_stats.ibd` to `/u02/full/20180627/datadir/mysql/innodb_index_stats.ibd`.
180627 12:30:14 RDR1 INFO: Applying diff pages from `/u02/incr/datadir/mysql/innodb_table_stats.ibd` to `/u02/full/20180627/datadir/mysql/innodb_table_stats.ibd`.
180627 12:30:14 RDR1 INFO: This incremental backup does not have binlogs. Applying this incremental backups ignore binlogs for all .
180627 12:30:14 RDR1 INFO: Completed the copy of binlog files...
180627 12:30:14 RDR1 INFO: Starting to copy all non-innodb files in
subdirectories of '/u02/incr/datadir'
180627 12:30:14 RDR1 INFO: Copying the database directory '.oracle_jre_usage'
180627 12:30:14 RDR1 INFO: Copying the database directory 'hjy_zxzy'
180627 12:30:14 RDR1 INFO: Copying the database directory 'lepus'
180627 12:30:14 RDR1 INFO: Copying the database directory 'mysql'
180627 12:30:14 RDR1 INFO: Copying the database directory 'performance_schema'
180627 12:30:14 RDR1 INFO: Copying the database directory 'sys'
180627 12:30:14 RDR1 INFO: Completing the copy of all non-innodb files.
180627 12:30:14 RDR1 INFO: Copying server configuration files to backup_dir.
180627 12:30:14 MAIN INFO: No Keyring file to process.
180627 12:30:14 MAIN INFO: Apply-Incremental-Pages operation completed successfully.
180627 12:30:14 MAIN INFO: Creating 14 buffers each of size 65536.
180627 12:30:14 MAIN INFO: Apply-log operation starts with following threads
1 read-threads 1 process-threads 6 apply-threads
180627 12:30:14 MAIN INFO: Using up to 100 MB of memory.
180627 12:30:14 MAIN INFO: ibbackup_logfile's creation parameters:
start lsn 75536192512, end lsn 75536192626,
start checkpoint 75536192617.
180627 12:30:15 ALW1 INFO: A thread created with Id '140485797025536'
180627 12:30:15 ALW2 INFO: A thread created with Id '140485805418240'
180627 12:30:15 ALW3 INFO: A thread created with Id '140486043895552'
180627 12:30:15 ALW6 INFO: A thread created with Id '140486018717440'
180627 12:30:15 ALW4 INFO: A thread created with Id '140486035502848'
180627 12:30:15 ALW5 INFO: A thread created with Id '140486027110144'
180627 12:30:15 PCR1 INFO: A thread created with Id '140486001932032'
180627 12:30:15 RDR1 INFO: A thread created with Id '140486010324736'
180627 12:30:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 75536192626.
180627 12:30:15 PCR1 INFO: InnoDB: Starting an apply batch of log records to the database...
.
InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
180627 12:30:15 PCR1 INFO: InnoDB: Setting log file size to 50331648.
180627 12:30:15 PCR1 INFO: InnoDB: Setting log file size to 50331648.
180627 12:30:16 PCR1 INFO: We were able to parse ibbackup_logfile up to
lsn 75536192626.
180627 12:30:16 PCR1 INFO: Last MySQL binlog file position 0 809, file name master-bin.005828
180627 12:30:16 PCR1 INFO: The first data file is '/u02/full/20180627/datadir/ibdata1'
and the new created log files are at '/u02/full/20180627/datadir'
180627 12:30:16 MAIN INFO: No Keyring file to process.
180627 12:30:16 MAIN INFO: Apply-log operation completed successfully.
180627 12:30:16 MAIN INFO: Full backup prepared for recovery successfully.
mysqlbackup completed OK!
--incremental-backup-dir:指增量备份的目录 --backup-dir:指全量备份的目录
3.2 使用全备份恢复
[root@mydb01 lib]# mysqlbackup --user=root --datadir=/var/lib/mysql --backup-dir=/u02/full/2018-06-27_11-00-05 copy-back
MySQL Enterprise Backup version 4.1.1 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018/04/24 07:54:03]
Copyright (c) 2003, 2018, Oracle and/or its affiliates. All Rights Reserved.
[Build ID : 12942442.c465cfd7261c781502aec204494abf138f9d59e6]
180627 12:32:19 MAIN INFO: A thread created with Id '140697770657600'
180627 12:32:19 MAIN INFO: Starting with following command line ...
mysqlbackup --user=root --datadir=/var/lib/mysql
--backup-dir=/u02/full/2018-06-27_11-00-05 copy-back
180627 12:32:19 MAIN INFO:
IMPORTANT: Please check that mysqlbackup run completes successfully.
At the end of a successful 'copy-back' run mysqlbackup
prints "mysqlbackup completed OK!".
180627 12:32:19 MAIN INFO: MySQL server version is '5.7.22-log'
180627 12:32:19 MAIN INFO: Restoring ...5.7.22-log version
180627 12:32:19 MAIN WARNING: If you restore to a server of a different version, the innodb_data_file_path parameter might have a different default. In that case you need to add 'innodb_data_file_path=ibdata1:12M:autoextend' to the target server configuration.
180627 12:32:19 MAIN WARNING: If you restore to a server of a different version, the innodb_log_files_in_group parameter might have a different default. In that case you need to add 'innodb_log_files_in_group=2' to the target server configuration.
180627 12:32:19 MAIN WARNING: If you restore to a server of a different version, the innodb_log_file_size parameter might have a different default. In that case you need to add 'innodb_log_file_size=50331648' to the target server configuration.
180627 12:32:19 MAIN INFO: KEF source path:'/u02/full/2018-06-27_11-00-05/meta'
180627 12:32:19 MAIN INFO: KEF target path:'/var/lib/mysql'
180627 12:32:19 MAIN INFO: TDE Keyring service initialized.
180627 12:32:19 MAIN INFO: MEB logfile created at /u02/full/2018-06-27_11-00-05/meta/MEB_2018-06-27.12-32-19_copy_back.log
--------------------------------------------------------------------
Server Repository Options:
--------------------------------------------------------------------
datadir = /var/lib/mysql
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:12M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
innodb_log_files_in_group = 2
innodb_log_file_size = 50331648
innodb_buffer_pool_filename = ib_buffer_pool
innodb_page_size = Null
innodb_checksum_algorithm = crc32
--------------------------------------------------------------------
Backup Config Options:
--------------------------------------------------------------------
datadir = /u02/full/2018-06-27_11-00-05/datadir
innodb_data_home_dir = /u02/full/2018-06-27_11-00-05/datadir
innodb_data_file_path = ibdata1:12M:autoextend
innodb_log_group_home_dir = /u02/full/2018-06-27_11-00-05/datadir
innodb_log_files_in_group = 2
innodb_log_file_size = 50331648
innodb_buffer_pool_filename = ib_buffer_pool
innodb_page_size = 16384
innodb_checksum_algorithm = crc32
180627 12:32:19 MAIN INFO: Creating 14 buffers each of size 16777216.
180627 12:32:19 MAIN INFO: Copy-back operation starts with following threads
1 read-threads 1 write-threads
180627 12:32:19 MAIN INFO: Starting to copy all innodb files...
180627 12:32:19 RDR1 INFO: A thread created with Id '140697406367488'
180627 12:32:19 WTR1 INFO: A thread created with Id '140697397974784'
180627 12:32:19 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/ibdata1.
......
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/lepus/questions.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/engine_cost.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/gtid_executed.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/innodb_index_stats.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/innodb_table_stats.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/server_cost.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/slave_master_info.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/slave_relay_log_info.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/mysql/slave_worker_info.ibd.
180627 12:41:55 RDR1 INFO: Copying /u02/full/2018-06-27_11-00-05/datadir/sys/sys_config.ibd.
180627 12:41:55 RDR1 INFO: Could not find binlog index file. binlogs will not be copied for this backup.
Point-In-Time-Recovery will not be possible.
If this is online backup then server may not have started with --log-bin.
You may specify its location with --log-bin-index option.
180627 12:41:55 RDR1 INFO: Completed the copy of binlog files...
180627 12:41:55 RDR1 INFO: Copying the database directory '.oracle_jre_usage'
180627 12:41:55 RDR1 INFO: Copying the database directory 'hjy_zxzy'
180627 12:41:55 RDR1 INFO: Copying the database directory 'lepus'
180627 12:41:55 RDR1 INFO: Copying the database directory 'mysql'
180627 12:41:55 RDR1 INFO: Copying the database directory 'performance_schema'
180627 12:41:55 RDR1 INFO: Copying the database directory 'sys'
180627 12:41:55 RDR1 INFO: Completing the copy of all non-innodb files.
180627 12:41:55 RDR1 INFO: Copying the log file 'ib_logfile0'
180627 12:41:55 RDR1 INFO: Copying the log file 'ib_logfile1'
180627 12:41:55 MAIN INFO: No Keyring file to process.
180627 12:41:55 MAIN INFO: MySQL server version is '5.7.22-log'
180627 12:41:55 MAIN INFO: MySQL server compile os version is 'Linux'
180627 12:41:55 MAIN INFO: Writing config file for server '5.7.22-log'.
180627 12:41:55 MAIN INFO: Creating server config files server-my.cnf and server-all.cnf in /var/lib/mysql
180627 12:41:55 MAIN INFO: Variable 'datadir'='/var/lib/mysql/'->'/var/lib/mysql' option 'datadir' type 0
180627 12:41:55 MAIN INFO: Variable 'datadir'='/var/lib/mysql/'->'/var/lib/mysql' option 'datadir' type 0
180627 12:41:55 MAIN INFO: Variable 'innodb_buffer_pool_filename'='ib_buffer_pool'->'ib_buffer_pool' option 'innodb_buffer_pool_filename' type 9
180627 12:41:55 MAIN INFO: Variable 'innodb_buffer_pool_filename'='ib_buffer_pool'->'ib_buffer_pool' option 'innodb_buffer_pool_filename' type 9
180627 12:41:55 MAIN INFO: Variable 'innodb_checksum_algorithm'='crc32'->'crc32' option 'innodb_checksum_algorithm' type 11
180627 12:41:55 MAIN INFO: Variable 'innodb_checksum_algorithm'='crc32'->'crc32' option 'innodb_checksum_algorithm' type 11
180627 12:41:55 MAIN INFO: Variable 'innodb_checksums'='ON'->'ON' option 'innodb_checksums' type 12
180627 12:41:55 MAIN INFO: Variable 'innodb_checksums'='ON'->'ON' option 'innodb_checksums' type 12
180627 12:41:55 MAIN INFO: Variable 'innodb_data_file_path'='ibdata1:12M:autoextend'->'ibdata1:12M:autoextend' option 'innodb_data_file_path' type 2
180627 12:41:55 MAIN INFO: Variable 'innodb_data_file_path'='ibdata1:12M:autoextend'->'ibdata1:12M:autoextend' option 'innodb_data_file_path' type 2
180627 12:41:55 MAIN INFO: Variable 'innodb_data_home_dir'=''->'/var/lib/mysql' option 'innodb_data_home_dir' type 1
180627 12:41:55 MAIN INFO: Variable 'innodb_log_file_size'='50331648'->'50331648' option 'innodb_log_file_size' type 5
180627 12:41:55 MAIN INFO: Variable 'innodb_log_file_size'='50331648'->'50331648' option 'innodb_log_file_size' type 5
180627 12:41:55 MAIN INFO: Variable 'innodb_log_files_in_group'='2'->'2' option 'innodb_log_files_in_group' type 4
180627 12:41:55 MAIN INFO: Variable 'innodb_log_files_in_group'='2'->'2' option 'innodb_log_files_in_group' type 4
180627 12:41:55 MAIN INFO: Variable 'innodb_log_group_home_dir'='./'->'/var/lib/mysql' option 'innodb_log_group_home_dir' type 3
180627 12:41:55 MAIN INFO: Variable 'innodb_log_group_home_dir'='./'->'/var/lib/mysql' option 'innodb_log_group_home_dir' type 3
180627 12:41:55 MAIN INFO: Variable 'innodb_page_size'='16384'->'16384' option 'innodb_page_size' type 10
180627 12:41:55 MAIN INFO: Variable 'innodb_page_size'='16384'->'16384' option 'innodb_page_size' type 10
180627 12:41:55 MAIN INFO: Variable 'innodb_undo_directory'='./'->'/var/lib/mysql' option 'innodb_undo_directory' type 6
180627 12:41:55 MAIN INFO: Variable 'innodb_undo_directory'='./'->'/var/lib/mysql' option 'innodb_undo_directory' type 6
180627 12:41:55 MAIN INFO: Variable 'innodb_undo_logs'='128'->'128' option 'innodb_undo_logs' type 8
180627 12:41:55 MAIN INFO: Variable 'innodb_undo_logs'='128'->'128' option 'innodb_undo_logs' type 8
180627 12:41:55 MAIN INFO: Variable 'innodb_undo_tablespaces'='0'->'0' option 'innodb_undo_tablespaces' type 7
180627 12:41:55 MAIN INFO: Variable 'innodb_undo_tablespaces'='0'->'0' option 'innodb_undo_tablespaces' type 7
180627 12:41:55 MAIN INFO: Copy-back operation completed successfully.
180627 12:41:55 MAIN INFO: Finished copying backup files to '/var/lib/mysql'
mysqlbackup completed OK!
3.3 启动MySQL服务
恢复后的数据库文件的属主是root用户,必须改成mysql用户才能启动MySQL服务。
[root@mydb01 ~]# chown -R mysql:mysql /var/lib/mysql
[root@mydb01 ~]# systemctl start mysqld
[root@mydb01 ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-06-27 13:00:15 CST; 2h 29min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 6482 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 6464 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 6485 (mysqld)
CGroup: /system.slice/mysqld.service
└─6485 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Jun 27 13:00:14 mydb01 systemd[1]: Starting MySQL Server...
Jun 27 13:00:15 mydb01 systemd[1]: Started MySQL Server.
4、备份脚本
4.1 全量备份脚本
#!/bin/bash
BACKUP_DIR=/u02/full
BACKUP_PASS=abcABC@12
BACKUP_USER=root
/opt/mysql/meb-4.1/bin/mysqlbackup --defaults-file=/etc/my.cnf --host=127.0.0.1 --user=$BACKUP_USER --password=$BACKUP_PASS --with-timestamp --backup-dir=$BACKUP_DIR backup-and-apply-log
4.2 增量备份脚本
#!/bin/bash
BACKUP_DIR=/u02/incr
BACKUP_PASS=abcABC@12
BACKUP_USER=root
/opt/mysql/meb-4.1/bin/mysqlbackup --defaults-file=/etc/my.cnf --host=127.0.0.1 --user=$BACKUP_USER --password=$BACKUP_PASS --incremental=optimistic --incremental-base=history:last_backup --incremental-backup-dir=/u02/incr --with-timestamp backup
4.3 全备份成功发邮件脚本
#!/bin/bash
BACKUP_DIR=/u02/full
BACKUP_PASS=abcABC@12
BACKUP_USER=root
DATE_DAY=$(date +"%Y-%m-%d")
DATE_HOUR=$(date +"%H")
EMAIL_RECIPIENT=root@localhost
/opt/mysql/meb-4.1/bin/mysqlbackup --defaults-file=/etc/my.cnf --host=127.0.0.1 --user=$BACKUP_USER --password=$BACKUP_PASS --with-timestamp --backup-dir=$BACKUP_DIR backup-and-apply-log
NO_OF_COMPLETE_OK_MESSAGES=$(cat $BACKUP_DIR/${DATE_DAY}_${DATE_HOUR}*/meta/MEB_${DATE_DAY}.${DATE_HOUR}*.log | grep "mysqlbackup completed OK" | wc -l)
# Note that the string "mysqlbackup completed OK" must occur 2 times in the log in order for the backup to be OK
if [ $NO_OF_COMPLETE_OK_MESSAGES -eq 2 ]; then
# Backup successful, find backup directory
echo "Backup succeeded"
exit 0
else
echo "MySQL backup failed, please check logfile" | mail -s "ERROR: MySQL Backup Failed!" ${EMAIL_RECIPIENT}
exit 1
fi