对于MySQL数据库的热备,xtrabackup是除了MySQL enterprise backup之外的不二之选。该工具提供了基于innodb存储引擎的热备,支持全量,增量备份,部分备份,时点恢复以及使用xtrabackup备份来重做slave等。xtrabackup工具包包含一个innobackupex命令行工具,同时支持InnoDB引擎以及MyISAM引擎。本文主要描述的是trabackup的备份原理并给出了相关演示。
1、安装部署Xtrabackup
下载地址:http://www.percona.com/software/percona-xtrabackup
2、xtrabackup工作原理
3、extrabackup的备份步骤
4、演示全备
#当前环境 robin@localhost[(none)]> show variables like 'version'; +---------------+------------+ | Variable_name | Value | +---------------+------------+ | version | 5.6.12-log | +---------------+------------+ robin@localhost[(none)]> show variables like '%default_storage%'; +------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | default_storage_engine | InnoDB | +------------------------+--------+ #全备数据库 [mysql@app ~]$ innobackupex --user=robin -password=xxx --port=3606 --socket=/tmp/mysql3606.sock \ > --defaults-file=/data/inst3606/data3606/my3606.cnf /data/bak/hotbak InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy ............ 141105 15:41:59 innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:; ............. innobackupex: Using mysql server version 5.6.12-log innobackupex: Created backup directory /data/bak/hotbak/2014-11-05_15-42-02 #在指定备份目录下创建一个基于时间戳的文件夹 141105 15:42:02 innobackupex: Starting ibbackup with command: xtrabackup --defaults-file="/data/inst3606/data3606/my3606.cnf" --defaults-group="mysqld" --backup --suspend-at-end --target-dir=/data/bak/hotbak/2014-11-05_15-42-02 --tmpdir=/tmp --extra-lsndir='/tmp' innobackupex: Waiting for ibbackup (pid=27441) to suspend innobackupex: Suspend file '/data/bak/hotbak/2014-11-05_15-42-02/xtrabackup_suspended_2' #下面从配置文件获取有关innodb的配置信息 xtrabackup version 2.2.5 based on MySQL server 5.6.21 Linux (x86_64) (revision id: ) xtrabackup: uses posix_fadvise(). xtrabackup: cd to /data/inst3606/data3606 xtrabackup: open files limit requested 0, set to 1024 # Author : Leshami xtrabackup: using the following InnoDB configuration: # Blog : http://blog.csdn.net/leshami xtrabackup: innodb_data_home_dir = ./ xtrabackup: innodb_data_file_path = ibdata1:10M:autoextend xtrabackup: innodb_log_group_home_dir = ./ xtrabackup: innodb_log_files_in_group = 2 xtrabackup: innodb_log_file_size = 50331648 >> log scanned up to (380655683) #扫描innodb日志lsn并复制inndodb系统表空间 [01] Copying ./ibdata1 to /data/bak/hotbak/2014-11-05_15-42-02/ibdata1 >> log scanned up to (380655683) >> log scanned up to (380655683) [01] ...done [01] Copying ./mysql/slave_relay_log_info.ibd to /data/bak/hotbak/2014-11-05_15-42-02/mysql/slave_relay_log_info.ibd #类似部分省略,全部是基于innodb引擎的ibd文件... [01] Copying ./tempdb/tb_user.ibd to /data/bak/hotbak/2014-11-05_15-42-02/tempdb/tb_user.ibd [01] ...done >> log scanned up to (380655683) xtrabackup: Creating suspend file '/data/bak/hotbak/2014-11-05_15-42-02/xtrabackup_suspended_2' with pid '27441' 141105 15:42:30 innobackupex: Continuing after ibbackup has suspended 141105 15:42:30 innobackupex: Executing FLUSH TABLES WITH READ LOCK... #缓冲写出到数据文件并锁表 141105 15:42:30 innobackupex: All tables locked and flushed to disk 141105 15:42:30 innobackupex: Starting to backup non-InnoDB tables and files #复制非innodb表及相关文件 innob