xtrabackup备份与恢复实践
- 开源,在线备份innodb表
- 支持限速备份,避免对业务造成影响
- 支持流备
- 支持增量备份
- 支持备份文件压缩与加密
- 支持并行备份与恢复,速度快
- 基于innodb的crash-recovery功能
- 备份期间允许用户读写,写请求产生redo日志
- 从磁盘上拷贝数据文件
- 从innodb redo log file实时拷贝走备份期间产生的所有redo日志
- 恢复的时候 数据文件+redo日志 = 一致性数据
- 开源Perl脚本,封装调用xtrabackup及一系列相关工具与OS操作,最终完成备份过程
- 支持备份Innodb和其他引擎的表
- 备份一致性保证
- 全量备份
- 增量备份
- 流方式备份
- 并行备份
- 限流备份
- 压缩备份
- 常用参数介绍
aiapple@ubuntu:~$ innobackupex-1.5. --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf dbbackup/ innobackupex-1.5.: Backup created in directory '/home/aiapple/dbbackup/2016-08-20_06-16-26'
innobackupex-1.5.: MySQL binlog position: filename 'mysql-bin.000001', position
:: innobackupex-1.5.: Connection to database server closed
:: innobackupex-1.5.: completed OK!
aiapple@ubuntu:~$ innobackupex-1.5. --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf --incremental --incremental-dir dbbackup/--20_06--/ dbbackup/ innobackupex-1.5.: Backup created in directory '/home/aiapple/dbbackup/2016-08-20_06-24-08'
innobackupex-1.5.: MySQL binlog position: filename 'mysql-bin.000001', position
:: innobackupex-1.5.: Connection to database server closed
:: innobackupex-1.5.: completed OK! #备份成功
aiapple@ubuntu:~$ ls dbbackup/
--20_06-- --20_06--
aiapple@ubuntu:~$ innobackupex-1.5. --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf --stream=xbstream dbbackup/ > dbbackup/stream.bak innobackupex-1.5.: Backup created in directory '/home/aiapple/dbbackup'
innobackupex-1.5.: MySQL binlog position: filename 'mysql-bin.000001', position
:: innobackupex-1.5.: Connection to database server closed
:: innobackupex-1.5.: completed OK! #备份成功
aiapple@ubuntu:~$ ls dbbackup/
--20_06-- --20_06-- stream.bak
aiapple@ubuntu:~$ innobackupex-1.5. --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf --parallel= dbbackup/ innobackupex-1.5.: Backup created in directory '/home/aiapple/dbbackup/2016-08-20_06-36-34'
innobackupex-1.5.: MySQL binlog position: filename 'mysql-bin.000001', position
:: innobackupex-1.5.: Connection to database server closed
:: innobackupex-1.5.: completed OK! #备份成功
aiapple@ubuntu:~$ ls dbbackup/
--20_06-- --20_06-- --20_06-- stream.bak
aiapple@ubuntu:~$ innobackupex-1.5. --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf --throttle= dbbackup/ innobackupex-1.5.: Backup created in directory '/home/aiapple/dbbackup/2016-08-20_06-38-26'
innobackupex-1.5.: MySQL binlog position: filename 'mysql-bin.000001', position
:: innobackupex-1.5.: Connection to database server closed
:: innobackupex-1.5.: completed OK! #备份成功
aiapple@ubuntu:~$ ls dbbackup/
--20_06-- --20_06-- stream.bak
--20_06-- --20_06--
aiapple@ubuntu:~$ innobackupex-1.5. --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf --compress --compress-thread dbbackup/ innobackupex-1.5.: Backup created in directory '/home/aiapple/dbbackup/2016-08-20_06-40-26'
innobackupex-1.5.: MySQL binlog position: filename 'mysql-bin.000001', position
:: innobackupex-1.5.: Connection to database server closed
:: innobackupex-1.5.: completed OK! #备份成功
aiapple@ubuntu:~$ ls dbbackup/
--20_06-- --20_06-- --20_06--
--20_06-- --20_06-- stream.bak
innobackupex --help | less
mysql> show tables;
+--------------+
| Tables_in_tt |
+--------------+
| course |
| t1 |
+--------------+
rows in set (0.00 sec) aiapple@ubuntu:~$ innobackupex --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf dbbackup/ #备份成功;
aiapple@ubuntu:~$ ls dbbackup/
--20_06--
mysql> drop table t1;
Query OK, rows affected (0.02 sec) mysql> show tables;
+--------------+
| Tables_in_tt |
+--------------+
| course |
+--------------+
row in set (0.00 sec)
aiapple@ubuntu:~$ innobackupex --apply-log dbbackup/--20_06-- InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number
:: innobackupex: completed OK!
aiapple@ubuntu:~/dbbackup/--20_06--$ ls
backup-my.cnf mysql xtrabackup_binlog_info
ibdata1 performance_schema xtrabackup_checkpoints
ib_logfile0 tt xtrabackup_logfile
ib_logfile1 xtrabackup_binary
aiapple@ubuntu:~/dbbackup$ innobackupex --defaults-file=/tmp/mysqldata/my.cnf --user=root --password= --copy-back --20_06--/ innobackupex-1.5.: Copying '/home/aiapple/dbbackup/2016-08-20_06-16-26/ib_logfile1' to '/tmp/mysqldata/node1/ib_logfile1'
innobackupex-1.5.: Finished copying back files.
:: innobackupex-1.5.: completed OK!
mysql> show tables;
+--------------+
| Tables_in_tt |
+--------------+
| course |
| t1 |
+--------------+
rows in set (0.00 sec)
mysql> show tables;
+--------------+
| Tables_in_tt |
+--------------+
| course |
| t1 |
+--------------+
rows in set (0.00 sec) mysql> create table zengliang(a int ,b int);
Query OK, rows affected (0.06 sec)
aiapple@ubuntu:~$ innobackupex --user=root --password= --defaults-file=/tmp/mysqldata/my.cnf --incremental --incremental-dir dbbackup/--20_06--/ dbbackup/ innobackupex-1.5.: MySQL binlog position: filename 'mysql-bin.000001', position
:: innobackupex-1.5.: Connection to database server closed
:: innobackupex-1.5.: completed OK!
aiapple@ubuntu:~$ ls dbbackup/
--20_06-- --20_06--
aiapple@ubuntu:~/dbbackup$ innobackupex --apply-log --redo-only --20_06--
aiapple@ubuntu:~/dbbackup$ innobackupex --apply-log --incremental-dir=(增量备份目录) (基础备份目录)
aiapple@ubuntu:~/dbbackup$ innobackupex --defaults-file=/tmp/mysqldata/my.cnf --user=root --password= --copy-back --20_06--/ innobackupex-1.5.: Copying '/home/aiapple/dbbackup/2016-08-20_06-16-26/ib_logfile1' to '/tmp/mysqldata/node1/ib_logfile1'
innobackupex-1.5.: Finished copying back files. :: innobackupex-1.5.: completed OK!
aiapple@ubuntu:~/dbbackup/mysql3309$ cat xtrabackup_binlog_info
mysql-bin.
aiapple@ubuntu:/tmp/mysqldata/node1$ mysqlbinlog -vv mysql-bin. | less
# at
# :: server id end_log_pos CRC32 0x683bcdc6 Query thread_id= exec_time= error_code=
SET TIMESTAMP=/*!*/;
insert into t6 values(,),(,),(,)
/*!*/;
# at
# :: server id end_log_pos CRC32 0xf264071a Xid =
COMMIT/*!*/;
# at
# :: server id end_log_pos CRC32 0x3f63ae99 Query thread_id= exec_time= error_code=
SET TIMESTAMP=/*!*/;
BEGIN
/*!*/;
# at
# :: server id end_log_pos CRC32 0x5c3b7667 Query thread_id= exec_time= error_code=
SET TIMESTAMP=/*!*/;
insert into t6 values(,),(,),(,)
/*!*/;
# at
# :: server id end_log_pos CRC32 0x4ea5c481 Xid =
COMMIT/*!*/;
aiapple@ubuntu:/tmp/mysqldata/node1$ mysqlbinlog -vv --start-position= --stop-position= mysql-bin. | mysql -uroot -p --socket=/home/aiapple/dbbackup/mysql3309/mysql.sock
aiapple@ubuntu:/tmp/mysqldata/node1$ mysqlbinlog -vv --start-datetime='2016-08-20 9:03:58' --stop-datetime='2016-08-20 9:11:51' mysql-bin. | cat
xtrabackup备份与恢复实践的更多相关文章
- RMAN备份与恢复实践(转)
1 RMAN备份与恢复实践 1.1 备份 1.1.1 对数据库进行全备 使用backup database命令执行备份 RMAN> BACKUP DATABASE; 执行上述命令后将对目标 ...
- MySQL入门篇(七)之Xtrabackup备份与恢复
一.Xtrabackup介绍 MySQL冷备.mysqldump.MySQL热拷贝都无法实现对数据库进行增量备份.在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况 ...
- Xtrabackup备份与恢复MySQL
1.innobackupex备份原理 .innobackupex启动并fork一个进程启动xtrabackup,然后等待xtrabackup备份InnoDB文件; .xtrabackup备份时存在两个 ...
- Xtrabackup备份与恢复
一.Xtrabackup介绍 MySQL冷备.mysqldump.MySQL热拷贝都无法实现对数据库进行增量备份.在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况 ...
- 16、Xtrabackup备份与恢复
XTRABACKUP xtrabackup是percona公司开发的第三方备份软件,只备份innodb引擎表的ibd文件(frm不备份),不备份myisam引擎表.备份性能很高,备份期间没有任和锁,d ...
- XtraBackup 备份与恢复实例讲解
前一篇文章我们讲到了PXB的原理以及安装方法,接下来将详细介绍 XtraBackup 备份和恢复的具体过程. xtrabackup 选项 xtrabackup 工具有许多参数,具体可去官网查询(xtr ...
- KubeSphere 日志备份与恢复实践
为什么需要日志备份 KubeSphere 日志系统使用 Fluent Bit + ElasticSearch 的日志采集存储方案,并通过 Curator 实现对 Index 的生命周期管理,定期清理久 ...
- xtrabackup 备份与恢复
书上摘抄 ---深入浅出mysql 448页 grant reload on *.* to 'backup'@'localhost' identified by '123456'; grant re ...
- mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)
一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...
随机推荐
- 12-8下午 php语法
<?php //var_dump(empty($a)); //判断变量是否为空//var_dump(isset($a)); //判断变量是否定义//$a = 10;//unset($a); // ...
- sqlite入门
SQLite官网: https://www.sqlite.org/index.html 1. 下载请到https://www.sqlite.org/download.html下载相应平台的sqlite ...
- pyhton 27 pip命令无法使用 没有Scripts文件夹 的解决方法
1 安装了setuptools http://jingyan.baidu.com/article/fb48e8be52f3166e622e1400.html 2 用ez_setup.py安装了setu ...
- Nginx 502 Bad Gateway 错误的原因及解决方法
http://my.oschina.net/zhouyuan/blog/118708 刚才在调试程序的时候,居然服务器502错误,昨天晚上也发生了,好像我没有做非常规的操作. 然后网上寻找了下答案, ...
- c++构造函数的作用---13
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ http://blog.csdn.net/tidyjiang/article/details/52073 ...
- 《C与指针》第二章练习
本章问题 1.Comments in C do not nest(嵌套).What would be the result of "commenting out" the code ...
- MongoDB学习笔记三:查询
MongoDB中使用find来进行查询.查询就是返回一个集合中文档的子集,子集合的范围从0个文档到整个集合.find的第一个参数决定了要返回哪些文档,其形式也是一个文档,说明要执行的查询细节.空的查询 ...
- day17算法
http://www.360doc.com/content/14/0804/11/1073512_399302715.shtml
- foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值
http://zhangxiong0301.iteye.com/blog/2242723 最近有个需求,就是使用mybatis时,向mysql中插入数据,其参数为map类型,map里面的key为列名, ...
- java比较两个字符串是否相等
从c 到c++ 到 c# 到 JavaScript 判断两个字符串是否相等,用==号都可以.奇葩的java怎么可以只能用equals()这个函数.只是因为String是引用类型吗??!!哭笑不得.. ...