mysql数据库备份工具xtrabackup
1.下载二进制安装包

其他高版本测试缺少依赖
2.xtrabackup参数说明
简介:
  Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
    Xtrabackup有两个主要的工具:xtrabackup、innobackupex
  (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
  (2)innobackupex则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁
innobackupex常用参数
--compact 创建一个不包含第二索引(除了主键之外的索引)的备份
--decompress 解压之前所有以–compress参数备份出来的带有.qp格式的备份文件,--parallel参数会允许同时解锁或解压多个文件。需要安装qpress软件。
--defaults-file=[MY.CNF] 配置文件的路径
--incremental-basedir 以上一次全量或增量备份的路径,作为增量备份的基础。指定这个参数的同时,应该同样指定--incremental参数
--incremental 创建增量备份,当指定这个参数的时候,应该指定--incremental-lsn或--incremental-basedir参数,否则将会备份到--incremental-basedir路径
--apply-log 在备份目录下,通过应用名称为xtrabackup_logfile的交易日志文件来准备备份。同时,创建新的交易日志。
--redo-only 当准备数据库的全备或合并增量备份时,需要指定这个参数。这个参数实际上执行的是xtrabackup --apply-log-only,会让xtrabackup跳过回滚节点,只做“redo”步骤。当数据库需要应用增量备份时,需要指定这个参数。
--incremental-dir=DIRECTORY 指定增量备份的目录,需要搭配--incremental参数。
--no-timestamp 这个参数会让xtrabackup在备份的时候不创建带有时间格式的子文件夹。当指定了这个参数,备份会直接创建在指定的备份目录下
--stream=STREAMNAME 指定流备份的格式。备份将会以指定格式输出到STDOUT。目前支持的格式有tar 和 xbstream。如果指定了这个参数,后面需要接tmpdir目录作为处理流的一个中间目录。
--slave-info 当备份一个作为复制环境的服务器时,这个参数会自动将CHANGE MASTER语句写到备份中,在恢复备份后,不必执行CHANGE MASTER语句。
--tables-file=FILE 这个参数会接受一个字符串,这个字符串指定了一个文件,这个文件包含了要备份的表名,格式如database.table,一行一个。
--use-memory=# 这个参数用于在准备备份时,xtrabackup执行crash recovery所使用的内存大小。这个参数仅和--apply-log搭配时才生效。 使用--stream=tar备份,压缩、解压、已经压缩后的大小都优于-stream=xbstream,推荐使用--stream=tar方式压缩,解压时还可以配合tar
3.全量备份
shell > vim script/backupdb.sh #!/bin/bash
dbname='alldatabases'
dbuser='user'
dbpassword='passwd' backup_dir='/data/backup_db'
backup_log='/root/script/logs/backup.log' mtime=`date +%Y-%m`
dtime=`date +%d` log(){
echo -e "`date "+%F %T"` DBname: $1 State: $2\n" >> $backup_log
} [ ! -d $backup_dir/$mtime ] && mkdir -p $backup_dir/$mtime cd $backup_dir/$mtime && /usr/bin/innobackupex --no-lock --user=$dbuser --password=$dbpassword --no-timestamp $dbname > /dev/null >& if [ $? -eq ];then
log $dbname 'Backup success.'
dbakfile=$dbname.$dtime.tar.gz
tar zcf $dbakfile $dbname --remove-files
[ $? -eq ] && log $dbakfile 'Packaging success.' || log $dbakfile 'Packaging failed.'
else
log $dbname 'Backup failed.'
fi
4.全备还原
shell > /etc/init.d/mysql.server stop # 首先关闭数据库 shell > cd /data/backup_db # 切换到备份目录 shell > mv /usr/local/mysql-5.5./data data.old # 将原来的数据目录备份一下 shell > tar zxf alldatabase..tar.gz # 然后将原来的备份解压缩 shell > innobackupex --apply-log alldatabase # 在备份上应用日志,一般没有看到报错且最后显示 OK 就没有问题 ( --use-memory 使用该参数加快速度 )
:: completed OK! shell > innobackupex --copy-back alldatabase # 将备份还原到 my.cnf 指定的 datadir 中,不指定 --defaults-file,默认 /etc/my.cnf Error: datadir must be specified. # 报错信息显示,在默认配置文件 /etc/my.cnf 中,没有找到 datadir 配置项 shell > vim /etc/my.cnf # 加入 datadir 配置项 datadir = /usr/local/mysql-5.5./data shell > innobackupex --copy-back alldatabase # 再次执行 copy 动作,没有报错且显示 OK
:: completed OK! shell > ll -d /usr/local/mysql-5.5./data
drwxr-x--- root root 10月 : /usr/local/mysql-5.5./data shell > chown -R mysql.mysql /usr/local/mysql-5.5./data # 修改数据目录权限 shell > /etc/init.d/mysql.server start
# 备份已经恢复!
# 回顾整个恢复过程,发现一个问题:之前数据库里的东西全部没有了...
# 也就是说,innobackupex 只适用于该 MySQL 中除系统库外,只有一个库的备份。
# 虽然有选项 --databases 可以指定备份哪个数据库,但是备出来的结果却是 all databases,且恢复的时候也是全部覆盖。(默认不指定备份数据库,则全库备份)
# 1、采用 innobackupex 备份整库,然后恢复到一台新库上,再通过 mysqldump 将需要还原的单库备份一次,之后导入需要恢复的数据库中 ( 要考虑恢复时间 )。
# 2、采用 innobackupex 备份只有一个业务库的 MySQL Server,恢复到只有该业务库的 MySQL Server 中。
# 3、如果一个 MySQL Server 中有多个数据库,又只想备份某个库,且该库体积比较小的情况下,建议使用 mysqldump 备份。
mysql数据库备份工具xtrabackup的更多相关文章
- Mysql 数据库备份工具 xtrabackup
		
1.安装测试数据库mysql5.7 详细步骤 yum install -y gcc gcc-c++ cmake bison ncurses-devel .tar.gz cd mysql-/ cmake ...
 - MySQL数据库备份之xtrabackup工具使用
		
一.Xtrabackup备份介绍及原理 二.Xtrabackup的安装 1.在centos7上基于yum源安装percona-xtrabackup软件 [root@node7 ~]# yum -y i ...
 - MySQL数据库备份工具mysqldump的使用(转)
		
说明:MySQL中InnoDB和MyISAM类型数据库,这个工具最新版本好像都已经支持了,以前可能存在于MyISAM的只能只用冷备份方式的说法. 备份指定库: mysqldump -h127.0.0. ...
 - MySQL 物理备份工具-xtrabackup
		
安装 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum -y install perl ...
 - mysql数据库-备份与还原-Percona XtraBackup 2.4备份工具使用
		
目录 xtrabackup 特点 备份生成的相关文件 xtrabackup 安装 xtrabackup 用法 1 备份 2 预备份 3 还原 4 其他 还原注意事项 xtrabackup实现完全备份及 ...
 - Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
		
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
 - xtrabackup数据库备份工具
		
下来我来介绍一下更强大的备份工具:xtrabackup xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速 ...
 - MySQL数据库备份还原
		
本文以CentOS 7 yum安装的MariaDB-server5.5为例,说明MySQL的几种 备份还原方式 将服务器A(192.168.1.100)上的数据库备份,还原到B(192.168.1.2 ...
 - MySQL数据库备份的4种方式
		
MySQL备份的4种方式 总结: 备份方法 备份速度 恢复速度 便捷性 功能 一般用于 cp 快 快 一般.灵活性低 很弱 少量数据备份 mysqldump 慢 慢 一般.可无视存储引擎的差异 一般 ...
 
随机推荐
- 解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
			
最近开发的微信公众号项目中(项目采用Vue + Vux 构建,站点部署在IIS8.5上),遇到个非常奇葩的问题,发布站点内容后,通过微信打开网址发现是空白页面(后来验证是微信浏览器缓存了入口文件-in ...
 - Linux(CentOS)启动时自动执行脚本(rc.local)
			
下面说说通过rc.local文件进行开机启动 1.首先创建一个启动脚本,这里以启动docker为例 创建 docker-startup.sh 脚本 #! /bin/bash /usr/bin/mk-d ...
 - cuda,cudnn
			
20191008 服务器上的cuda总是被人搞坏掉,好烦.记录下: 卸载干净cuda sudo rm -rf /usr/local/cuda sudo apt-get remove cuda sudo ...
 - c# 如何获取当前方法的调用堆栈
			
c# 调试程序时常常需要借助 call stack 查看调用堆栈,实际上通过code也可以获取: class Program { static void Main(string[] args) { T ...
 - javascript:警告(alert 消息对话框),确认(confirm 消息对话框)
			
原文:https://blog.csdn.net/u012110719/article/details/41926315
 - java基本程序设计结构总结
			
学习一门语言:(1)掌握它的表现形式(2)这些语言什么应用. 1.1关键字 1.关键字是被赋予了特殊含义的单词. 2.关键字特点:关键字所有字母都小写. 3.类名的每一个单词开头必须大写. 1.2标识 ...
 - 读 HeadFirst 设计模式
			
以往虽也看过相关设计模式的书籍,但能和与HeadFirt设计模式这本书相比不是缺乏严谨性就是缺乏具体应用实例,还有幽默生动以及引人启发的观点. 设计原则 设计原则并不能光靠死记硬背,我们需要通过具体的 ...
 - SQL Server 两条数据创建时自动关联
			
begin ),(, ))) from workplan a join org_employee b on b.id = a.idowner , LEN(aa.sglzbbh))) glh from ...
 - 安装教程-VMware 12 安装Ubuntu 19.04 桌面版
			
VMware 12 安装Ubuntu 19.04 桌面版 1.实验描述 在虚拟机中,手动安装 Ubuntu 19.04 操作系统,为学习 Linux 桌面版提供平台,因此,有的参数有些差异,请勿较真. ...
 - dga model train and test code
			
# _*_coding:UTF-8_*_ import operator import tldextract import random import pickle import os import ...