www.percona.com
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/i386/percona-xtrabackup-2.3.3-1.el6.i686.rpm
yum install percona-xtrabackup-2.3.3-1.el6.i686.rpm
xtrabackup 选项 xtrabackup 工具备许多参数,具体可去官网查询(xtrabackup 参数选项 | innobackupex 参数选项),这里简单介绍 innobackupex 一些经常使用的参数。 1) innobackupex 参数选项 --defaults-file=[MY.CNF] //指定配置文件:只能从给定的文件中读取默认选项。 且必须做为命令行上的第一个选项;必须是一个真实的文件,它不能是一个符号连接。 --databases=# //指定备份的数据库和表,格式为:--database="db1[.tb1] db2[.tb2]" 多个库之间以空格隔开,若是此选项不被指定,将会备份全部的数据库。 --include=REGEXP //用正则表达式的方式指定要备份的数据库和表,格式为 --include=‘^mydb[.]mytb’ ,对每一个库中的每一个表逐一匹配,所以会建立全部的库,不过是空的目录。--include 传递给 xtrabackup --tables。 --tables-file=FILE //此选项的参数须要是一个文件名,此文件中每行包含一个要备份的表的完整名称,格式为databasename.tablename。该选项传递给 xtrabackup --tables-file,与--tables选项不一样,只有要备份的表的库才会被建立。 注意:部分备份(--include、--tables-file、--database)须要开启 innodb_file_per_table 。 --compact //建立紧凑型备份,忽略全部辅助索引页,只备份data page;经过--apply-log中重建索引--rebuild-indexs。 --compress //此选项指示xtrabackup压缩备份的InnoDB数据文件,会生成 *.qp 文件。 --decompress //解压缩qp文件,为了解压缩,必须安装 qpress 工具。 Percona XtraBackup不会自动删除压缩文件,为了清理备份目录,用户应手动删除 * .qp文件:find /data/backup -name "*.qp" | xargs rm。 --no-timestamp //指定了这个选项备份将会直接存储在 BACKUP-DIR 目录,再也不建立时间戳文件夹。 --apply-log //应用 BACKUP-DIR 中的 xtrabackup_logfile 事务日志文件。通常状况下,在备份完成后,数据尚且不能用于恢复操做,由于备份的数据中可能会包含还没有提交的事务或已经提交但还没有同步至数据文件中的事务。所以,此时数据文件仍处于不一致状态。“准备”的主要做用正是经过回滚未提交的事务及同步已经提交的事务至数据文件使得数据文件处于一致性状态。 --use-memory=# //此选项接受一个字符参数(1M/1MB,1G/1GB,默认100M),仅与--apply-log一块儿使用,该选项指定prepare时用于崩溃恢复(crash-recovery)的内存。 --copy-back //拷贝先前备份全部文件到它们的原始路径。但原路径下不能有任何文件或目录,除非指定 --force-non-empty-directories 选项。 --force-non-empty-directories //恢复时指定此选项,可以使 --copy-back 和 --move-back 复制文件到非空目录,即原data目录下能够有其余文件,可是不能有与恢复文件中同名的文件,不然恢复失败。 --rsync //此选项可优化本地文件(非InnoDB)的传输。rsync工具一次性拷贝全部非InnoDB文件,而不是为每一个文件单首创建cp,在备份恢复不少数据库和表时很是高效。此选项不能和 --stream 一块儿使用。 --incremental //这个选项告诉 xtrabackup 建立一个增量备份,而不是彻底备份。它传递到 xtrabackup 子进程。当指定这个选项,能够设置 --incremental-lsn 或 --incremental-basedir。若是这2个选项都没有被指定,--incremental-basedir 传递给 xtrabackup 默认值,默认值为:基础备份目录的第一个时间戳备份目录。 --incremental-basedir=DIRECTORY //该选项接受一个字符串参数,该参数指定做为增量备份的基本数据集的完整备份目录。它与 --incremental 一块儿使用。 --incremental-dir=DIRECTORY //该选项接受一个字符串参数,该参数指定了增量备份将与完整备份相结合的目录,以便进行新的完整备份。它与 --incremental 选项一块儿使用。 --redo-only //在“准备基本完整备份” 和 “合并全部的增量备份(除了最后一个增备)”时使用此选项。它直接传递给xtrabackup的 xtrabackup --apply-log-only 选项,使xtrabackup跳过"undo"阶段,只作"redo"操做。若是后面还有增量备份应用到这个全备,这是必要的。有关详细信息,请参阅xtrabackup文档。 --parallel=NUMBER-OF-THREADS //此选项接受一个整数参数,指定xtrabackup子进程应用于同时备份文件的线程数。请注意,此选项仅适用于文件级别,也就是说,若是您有多个.ibd文件,则它们将被并行复制; 若是您的表一块儿存储在一个表空间文件中,它将不起做用。 2) xtrabackup 参数选项 --apply-log-only //这个选项使在准备备份(prepare)时,只执行重作(redo)阶段,这对于增量备份很是重要。
建立用于备份恢复的用户 pxb 并赋予权限 grant reload,process,lock tables,replication client on *.* to 'pxb'@'localhost' identified by '123456'; 建立存放目录 mkdir -pv /data/pxb 进行数据库全备 innobackupex --defaults-file=/etc/my.cnf --user=pxb --password=123456 --socket=/tmp/mysql.sock /data/pxb 能够看到整个备份过程:链接数据库,开始拷贝redo log,拷贝innodb表文件,锁表、拷贝非innodb表文件,中止拷贝redo log,解锁。
xtrabackup 增量备份恢复mysql