xtrabackup备份恢复Mysql
2016-02-10 23:55
555 查看
Mysql增量备份
Xtrabackup中包含两个工具:
xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表(MYISAM表)。
innobackupex - 对xtrabackup封装的perl脚本,提供了myisam表备份的能力。(能进行整库和数据表备份)。
备份分为两个过程:backup,备份阶段,追踪事务日志和复制数据文件(物理备份)。
preparing,重放事务日志,使所有的数据处于同一个时间点,达到一致性状态。
数据备份过程中不会中断事务的处理(热备份)
节约磁盘空间和网络带宽
自动完成备份鉴定
因更快的恢复时间而提高在线时间
一、安装percona-xtrabackup
1.官网下载
2.yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQ
3.rpm -ivh 安装包.rpm
二、innobackupex备份全库
1.备份
2.恢复
备份
3.
//将数据库停掉
#/etc/init.d/mysqld stop
//删除数据库目录下的ib*(ib开头的所有)文件。
#rm /data/mysql_2/ib*
//将/usr/local/Backup/base/2016-2-10目录下的ib*文件拷贝到数据库目录。
#cd /data/mysql_2/
#cp /usr/local/Backup/base/2016-2-10/ib* ./
#chown -R mysql:mysql /data/mysql_2/
4.重启mysql,进入mysql检查是否恢复
四、增量备份及恢复
1.先全量备份:
4.
//将数据库停掉
#/etc/init.d/mysqld stop
//删除数据库目录下的ib*(ib开头的所有)文件。
#rm /data/mysql_2/ib*
//将/usr/local/Backup/base/2016-2-10目录下的ib*文件拷贝到数据库目录。
#cd /data/mysql_2/#cp /usr/local/Backup/base/2016-2-10/ib* ./#cp -r /usr/local/Backup/base/2016-2-10/db3 ./#chown -R mysql:mysql /data/mysql_2/4.重启mysql,进入mysql检查db3是否恢复
本文出自 “echo xiayun” 博客,请务必保留此出处http://linuxerxy.blog.51cto.com/10707334/1741522
Xtrabackup中包含两个工具:
xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表(MYISAM表)。
innobackupex - 对xtrabackup封装的perl脚本,提供了myisam表备份的能力。(能进行整库和数据表备份)。
MySQL主从同步原理
MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的SQL线程从中继日志中读取中继日志,然后应用到Slave MySQL的数据库中。这样实现了主从数据同步功能。XtraBackup备份原理
innobackupex在后台线程不断追踪InnoDB的日志文件,然后复制InnoDB的数据文件。数据文件复制完成之后,日志的复制线程也会结束。这样就得到了不在同一时间点的数据副本和开始备份以后的事务日志。完成上面的步骤之后,就可以使用InnoDB崩溃恢复代码执行事务日志(redo log),以达到数据的一致性。备份分为两个过程:backup,备份阶段,追踪事务日志和复制数据文件(物理备份)。
preparing,重放事务日志,使所有的数据处于同一个时间点,达到一致性状态。
XtraBackup的优点
可以快速可靠的完成数据备份(复制数据文件和追踪事务日志)数据备份过程中不会中断事务的处理(热备份)
节约磁盘空间和网络带宽
自动完成备份鉴定
因更快的恢复时间而提高在线时间
一、安装percona-xtrabackup
1.官网下载
2.yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQ
3.rpm -ivh 安装包.rpm
二、innobackupex备份全库
1.备份
innobackupex --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock /usr/local/backup当然也可以只备份指定的库和表
2.恢复
innobackupex --defaults-file=/usr/local/mysql_2/my.cnf --socket=/tmp/mysql_2.sock --user=root --password=password --apply-log /usr/local/backup/2016-01-26_18-32-02 innobackupex --defaults-file=/usr/local/mysql_2/my.cnf --socket=/tmp/mysql_2.sock --user=root --password=password --copy-back /usr/local/backup/2016-01-26_18-32-02三、全量备份及恢复
备份
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --backup --target-dir=/usr/local/backup/base/2016-2-102.恢复
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --prepare --target-dir=/usr/local/backup/base/2016-2-10/
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --prepare --target-dir=/usr/local/backup/base/2016-2-10/执行两次prepare,是因为第二次prepare会帮助我们生成redo log文件(重做日志文件),加快MySQL数据库启动的速度
3.
//将数据库停掉
#/etc/init.d/mysqld stop
//删除数据库目录下的ib*(ib开头的所有)文件。
#rm /data/mysql_2/ib*
//将/usr/local/Backup/base/2016-2-10目录下的ib*文件拷贝到数据库目录。
#cd /data/mysql_2/
#cp /usr/local/Backup/base/2016-2-10/ib* ./
#chown -R mysql:mysql /data/mysql_2/
4.重启mysql,进入mysql检查是否恢复
四、增量备份及恢复
1.先全量备份:
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --backup --target-dir=/usr/local/backup/base/2016-2-102.在全量的基础上增量备份:
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --backup --target-dir=/usr/local/backup/incre/1 --incremental-basedir=/usr/local/backup/base/2016-2-10/3.恢复
mysql>drop database db3;
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --prepare --apply-log-only --target-dir=/usr/local/backup/base/2016-2-10/
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --prepare --apply-log-only --target-dir=/usr/local/backup/base/2016-2-10/ --incremental-dir=/usr/local/backup/incre/1/
xtrabackup --defaults-file=/usr/local/mysql_2/my.cnf --user=root --password=password --socket=/tmp/mysql_2.sock --prepare --apply-log-only --target-dir=/usr/local/backup/base/2016-2-10/增量备份也可以在前一个增量备份的基础继续增量备份,只不过这种方法会比较不安全,丢失前面的增量备份将导致后面的增量备份全都失效。
4.
//将数据库停掉
#/etc/init.d/mysqld stop
//删除数据库目录下的ib*(ib开头的所有)文件。
#rm /data/mysql_2/ib*
//将/usr/local/Backup/base/2016-2-10目录下的ib*文件拷贝到数据库目录。
#cd /data/mysql_2/#cp /usr/local/Backup/base/2016-2-10/ib* ./#cp -r /usr/local/Backup/base/2016-2-10/db3 ./#chown -R mysql:mysql /data/mysql_2/4.重启mysql,进入mysql检查db3是否恢复
本文出自 “echo xiayun” 博客,请务必保留此出处http://linuxerxy.blog.51cto.com/10707334/1741522
相关文章推荐
- MySQLi基于面向对象的编程
- MySQLi基于面向过程的编程
- MySQL 存储引擎
- MySQL批量删除指定前缀表
- MySQL多实例启停脚本
- mysql多实例实例化数据库
- mysql多实例配置文件
- mysql单表转移数据语句
- mysql表结构表空间和索引的查询
- 【摘】Mysql备份还原数据库之mysqldump实例及参数详细说明
- Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
- MySQL优化要点
- Mysql主从半同步及双机热备
- mysql主从错误记录跳过
- Mysql数据库系统单元压力和性能基准测试
- mysql数据库密码重置
- 常见Mysql系统参数调整
- MySQL数据备份语句
- mysql LAST_INSERT_ID详解
- mysql获取上一步INSERT操作产生的ID