mysql备份及xtrabackup安装

一、数据库备份种类
1、完全备份
这可能是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但是呢,它也需要花费更多的时间和空间,
所以,一般推荐一周做一次完全备份。
2、事务日志备份
事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间。
为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志。
3、差异备份
也叫增量备份。它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。
它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。推荐每天做一次差异备份。
4、文件备份
数据库可以由硬盘上的许多文件构成。如果这个数据库非常大,并且一个晚上也不能将它备份完,那么可以使用文件备份每晚备份数据库的一部分。
由于一般情况下数据库不会大到必须使用多个文件存储,所以这种备份不是很常用。
二、数据库备份工具
1、mysqldump
适用于数据量比较小的备份工作。
mysqldump备份的是sql语句,所以在恢复的时候关闭二进制日志文件,缩短恢复时间。
2、xtrabackup
xtrabackup是Percona公司推出的一款热备份工具,备份的时候不影响数据读写操作,
是商业工具HotBackup的一个替代(现在应该叫MySQL Enterprise Backup)这个工具不止可以备份InnoDB还可以备份MyISAM等等
适用于中大型数据库备份工作,推荐使用。
三、xtrabackup安装使用
本文采用yum方式安装,中间所有依赖库都选择 Y ,也可以使用wget或者本地下载等方式。这里就不赘述了。

#yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
#yum list | grep percona
#yum list | grep percona-xtrabackup
#yum install percona-xtrabackup.x86_64
#xtrabackup --help 可以执行help就说明安装成功了。

注意,install的时候可能会出错,那么就按照提示的依赖去下载安装就可以,我报的是

Error: Package: percona-xtrabackup-2.3.2-1.el6.x86_64 (percona-release-x86_64)
           Requires: libev.so.4()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

意思是缺少64位的libev.so.4,通过http://rpmfind.net/linux/RPM/index.html一个对应的rpm包下载就可以.我下载了两个,有一个可以用.所以大家可以尝试.

wget ftp://rpmfind.net/linux/epel/6/x86_64/libev-4.03-3.el6.x86_64.rpm
rpm -ivh libev-4.03-3.el6.x86_64.rpm 

还有可能出现Can’t locate Time/HiRes.pm in @INC错误
同样下载执行就解决了yum -y install perl-Time-HiRes
再次执行
yum install percona-xtrabackup.x86_64
按装成功
#xtrabackup --help可以执行help就说明安装成功了。

xtrabackup主要包含两个工具
1 xtrabackup
支持innodb、xtradb
不支持myisam
只备份ibd文件,支持压缩远程备份frm
2 innobackupex
本身是Hot Backup脚本修改而来,支持innodb、xtradb、myisam(备份MyISAM需要加读锁.)
备份所有文件,支持压缩远程备份
支持单库,多表,单表备份

一些重要参数
–defaults-file
默认配置文件的路径,如果不该参数,xtrabackup将从依次从以下位置查找配置文件/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf,
并读取配置文件中的[mysqld]和[xtrabackup]配置段。[mysqld]中只需要指定datadir、innodb_data_home_dir、innodb_data_file_path、innodb_log_group_home_dir、
innodb_log_files_in_group、innodb_log_file_size6个参数即可让xtrabackup正常工作
–defaults-extra-file=#
如果使用了该参数,在读取了全局配置文件之后,会再读取这里指定的配置文件
–target-dir=name
备份文件的存放目录路径
–backup
实施备份到target-dir
–prepare
实施对备份文件进行恢复前的准备(生成InnoDB log file)
–print-param
打印备份或恢复时需要的参数
–apply-log prepare 预先恢复参数
–copy-back datadir 将数据库备份文件copy到mysql数据目录
–remote-host=HOSTNAME 通过ssh将备份数据存储到远程(HOSTNAME)数据库上
–use-memory 可选,控制prepare时innodb实例使用的内存量,当服务器内存大的时候加快备份效应
–include=REGEXP test.* test1,test2 单独备份表
–databases=LIST 多个数据库
–slave-info 从库备份从库完后生成日志文件 xtrabackup_slave_info change master to master_log_file,log_pos
–safe-slave-backup 备份会暂停slave线程
–suspend-at-end
在target-dir目录下产生一个xtrabackup_suspended文件,将xtrabackup进程挂起,不停地将数据文件的变化同步到备份文件,直到用户手工删除xtrabackup_suspended文件
–throttle=#
每秒IO次数,限制backup时使用的I/O操作量,使备份对数据库正常业务的影响最小化
–log-stream
该参数在backup的时候使用,将xtrabackup_logfile的内容输出到标准输出,使用该参数时会自动使用suspend-at-end参数,innobackupex脚本的stream 模式会使用该参数。
–incremental-lsn=name
增量备份时只拷贝LSN比该参数指定值新的ibd pages,前次备份到了哪个LSN可以看前次备份集的xtrabackup_checkpoints文件
–incremental-basedir=name
该参数在backup的时候使用,备份比该参数指定位置的备份集新的idb pages
–incremental-dir=name
该参数在prepare的时候使用,指定prepare时产生的.delta 文件和日志文件的存放路径
–tables=name
在备份file-per-table类型的数据文件时使用,使用正则表达式指定需要备份的innodb表
–datadir=name
MySQL数据库的数据文件目录。
–no-timestamp
在进行备份的时候,通过$(date +%Y%m%d)来获取日期定义目录名字的方式需要加此参数
–parallel=4 并行个数,根据主机配置选择合适的,默认是1个,多个可以加快备份速度。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值