1、Xtrabackup安装
1)yum安装方式:
yuminstallhttp://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yumlist | grep percona
yuminstall xtrabackup
2)apt安装方式:
apt-keyadv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
debhttp://repo.percona.com/apt VERSION main
deb-srchttp://repo.percona.com/apt VERSION main
apt-getupdate
apt-getinstall percona-xtrabackup
2、全备:
innobackupex--defaults-file=/etc/my.cnf --host=127.0.0.1 -port=3306 --user=root--password=123456 --slave-info --safe-slave-backup --no-timestamp /data/mysqlbak/2015.sql1717
参数说明:
--slave-info会将Master的binary log的文件名和偏移位置记录打印出来,同时也保存到xtrabackup_slave_info文件中.
--safe-slave-backup会暂停Slave的SQL线程,等待到没有打开的临时表的时候开始备份.备份结束后SQL线程会自动启动,这样就可以确保一致性的复制状态.
--no-timestamp 是让innobackupex别自动生成一个时间戳的目录名/home/mysqlbak/2013***,而是存放在/home/mysqlbak/base
3、全备恢复:
rm-rf /usr/local/mysql/data/* ;#测试环境删除数据目录
innobackupex --apply-log /data/mysqlbak/2015.sql1717 ;#准备
innobackupex --copy-back /data/mysqlbak/2015.sql1717 ;#恢复
chown-R mysql.mysql /usr/local/mysql/data ;#修改目录权限
/etc/init.d/mysqlstart #启动mysql
4、部分备份:
innobackupex部分备份,有以下三个参数可选择:
1.--databases="database1[.table1] ..." 比如: --databases="employees sales.orders"
2.--tables-file=tables.txt, tables.txt 文件每一行有一个database.table
3.--include=regexp, 支持正则,比如: --include='^database(1|2)\.reports'
在准备”部分备份”和拷贝恢复”部分备份”到一个空的datadir之后,请确保datadir中有”mysql”数据库,否则MySQL无法启动.
如果没有,则需要先创建系统的数据库再启动。
5、增量备份:
进行第一次增量备份,需要在有一次完整备份的基础上进行:
innobackupex --defaults-file=/etc/my.cnf --host=127.0.0.1-port=3306 --user=root --password=123456 --no-timestamp --incremental/data/mysqlbak/2015.sql1717-zengliang --incremental-basedir=/data/mysqlbak/2015.sql1717
333795
参数说明:
–incremental 指定增量备份存放的目标目录
–incremental-basedir= 指定完整备份的目录
#也可以每次都基于全备做增量备份,而不是基于上一次的增备。
6、增量恢复:
增量备份的还原操作跟完整的还原有点不一样,首先必须使用–apply-log –redo-only对完整备份的目录及所有增量备份目录进行操作,然后就可以像还原完整备份时的操作了。
1)准备全备的日志
innobackupex --apply-log --redo-only --use-memory=4G /data/mysqlbak/2015.sql1717
2)把增量备份合并到全量备份中
innobackupex--defaults-file=/etc/mysql/my.cnf --host=127.0.0.1 -port=3306 --user=root --password=123456 --slave-info --safe-slave-backup --apply-log--use-memory=4G /data/mysqlbak/2015.sql1717 --incremental-dir=/data/mysqlbak/2015.sql1717-zengliang
3)把这个全备目录拷贝到数据mysql数据目录
innobackupex --copy-back /data/mysqlbak/2015.sql1717
7、附xtrabackup参数说明:
--print-defaults 显示默认选项。Xtrabackup默认情况会去读my.cnf文件,读取顺序是/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
--no-defaults 忽略任何my.cnf文件选项
--defaults-file=# 读取指定的my.cnf文件
--defaults-extra-file=# 再读取另外一个文件
--target-dir=name 目的目录,默认目录在./xtrabackup_backupfiles/,相对于datadir目录
--backup 备份
--stats 计算datadir目录统计信息
--prepare 从backup 恢复
--export 在恢复时,创建文件导入到另一个数据库
--apply-log-only 在恢复时,停止恢复进程不进行LSN只使用log
--print-param 打印出参数
--use-memory=#buffer_pool_size值
--suspend-at-end 在备份时,创建xtrabackup_suspended文件,直到备份完成后删掉
--throttle=# 限制IO总数
--log-stream 记录标准输出信息xtrabackup_logfile
--extra-lsndir=name 仅适用于backup,保存另一份xtrabackup_checkpoints文件
--incremental-lsn=name 仅适用于backup,增量备份
--incremental-basedir=name 仅适用于backup,增量备份目录
--incremental-dir=name 仅适用于prepare,恢复指定目录下的.delta文件和日志文件
--tables=name 过滤某些表
--tables_file=name 过滤database.table列表文件
--create-ib-logfile
-h,--datadir=name datadir目录
-t,--tmpdir=name tmpdir目录
--parallel=# 默认为1.传输数据文件的并行线程数。没有任何流模式的影响
--innodb_* 有关innodb参数