备份类型:物理备份
备份工具xtrabackup
备份方式:xtrabackup流式备份
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex
xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。

mysql工具备份迁移

备份开始时首先会开启一个后台检测进程,实时检测mysql redo的变化,一旦发现redo中有新的?日志写入,立刻将日志记
入后台日志文件xtrabackup_log中。之后复制innodb的数据文件和系统表空间文件ibdata1,待复制结束后,执行flush
tables with read lock操作,复制.frm,MYI,MYD,等文件(执行flush tableswith read lock的目的是为了防止数据表发生
DDL操作,并且在这一时刻获得binlog的位置)最后会发出unlock tables,把表设置为可读可写状态,最终停止
xtrabackup_log。

xtrabackup流式备份:
可以将备份的路径建立在远程服务器上,不占用本机服务器的磁盘空间
Xtrabackup支持tar格式以及xbstream格式的流备份

步骤
一、Xtrabackup工具备份过程步骤
1、安装xtrabckup工具
2、备份二进制日志文件:
二、备份步骤:
1、进行全量备份
2、进行增量备份
3、从库解压并删除原有的压缩文件
4、进行应用全量备份
5、从库解压并删除原有的压缩文件
6、进行应用增量备份
7、停止mysql服务
三、 主从搭建
修改配置文件
重启mysql
3、设置主从
查看slave状态

一、Xtrabackup工具备份过程步骤

1、安装xtrabckup工具
[[email protected] bal]# rpm -ivh libev-4.03-3.el6.x86_64.rpm
[[email protected] bal]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.x86_64.rpm
[[email protected] bal]# rpm -ivh perl-DBI-1.609-4.el6.x86_64.rpm
[[email protected] bal]# rpm -ivh percona-xtrabackup-2.3.10-1.el6.x86_64.rpm

2、备份二进制日志文件:
[[email protected] mysqldb ]# cp crf_hz-bin.0780* …/binlog_bak/
备份完成后需要进行做主从同步需要将binlog日志文件保留时间调整久一点
set global expire_logs_days=7;
show variables like “%expire_logs_days%”;

二、备份步骤:
被分到远程服务器,不占用本地空间
1、进行全量备份
[[email protected] ~]# innobackupex --user=root --password=‘M0yeJi5n’ --compress --extra-lsndir=/data/chkpoint --stream=xbstream /data/tmp | ssh [email protected] "xbstream -x -C /back

2、进行增量备份
[[email protected] ~]# innobackupex --user=root --password=M0yeJi5n --incremental --extra-lsndir=/data/chkpoint --incremental-basedir=/data/chkpoint --stream=xbstream /data/tmp | ssh [email protected] “xbstream -x -C /back_in”

如果备份文件是带有qp的后缀名的文件,需要进行解压
3、从库解压并删除原有的压缩文件
xtrabackup --decompress -parallel=6 --remove-original --target-dir=/back
–decompress ##解压
-parallel=6 ###线程数
–target-dir=/back ##需要解压的文件存放目录
–remove-original ###j解压之后把原本的文件删除。如果空间足够不需要加该参数

4、进行应用全量备份
[[email protected] ~]# innobackupex --apply-log --redo-only /back

–apply-log ##应用日志中未提交的动作进行提交操作
–redo-only ### 应用undo日志的未提交的动作进行回滚 如果不是最后一次的增量或者后续还有增量数据,不要加该参数

5、从库解压并删除原有的压缩文件
xtrabackup --decompress -parallel=6 --remove-original --target-dir=/back_in

6、进行应用增量备份
[[email protected] ~]# innobackupex --apply-log /back --incremental-dir=/back_in

7、停止mysql服务:
[[email protected] ~]#service mysqld stop

清空数据库数据目录下的所有数据
[[email protected] ~]# rm -rf /data/mysqldb/*
注: 不删除,进行mv 或者是把my.cnf中的datadir路径修改成当前路径即可
此处使用的mount直接把备份的数据的盘挂载到了datadir路径下
重新挂载磁盘到数据库目录下
[[email protected] ~]# mount /dev/vdb1 /data/mysqldb

数据文件修改宿主
[[email protected] ~]# chown -R mysql.mysql /data/mysqldb/

启动mysql
[[email protected] ~]# service mysqld start

三、 主从搭建
修改my.cnf配置文件
Server-id=706
删除其他过滤配置,注释 #slave_skip_errors=1062
重启mysql
[[email protected] inc_dir]# service mysqld restart
3、设置主从
mysql> change master to master_host=‘10.195.68.4’,master_user=‘root’,master_password=‘M0yeJi5n’,
master_log_file=‘crf_hz-bin.078141’,master_log_pos=42857093;
查看slave状态
mysql> Show slave status\G;

mysql工具备份迁移

相关文章: