Xtrabackup实现数据的备份与恢复-mysql

Xtrabackup介绍 mysql

  Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份一样须要加表锁);mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,若是数据库大于50G,mysqldump备份就不太适合。 sql

备份原理 数据库

备份开始时首先会开启一个后台检测进程,实时检测mysq redo的变化,一旦发现有新的日志写入,马上将日志记入后台日志文件xtrabackup_log中,以后复制innodb的数据文件一系统表空间文件ibdatax,复制结束后,将执行flush tables with readlock,而后复制.frm MYI MYD等文件,最后执行unlock tables,最终中止xtrabackup_log 服务器

xtrabackup增量备份的原理是: app

1)、首先完成一个彻底备份,并记录下此时检查点LSN; ssh

2)、而后增量备份时,比较表空间中每一个页的LSN是否大于上次备份的LSN,如果则备份该页并记录当前检查点的LSN。 socket

Xtrabackup安装 日志

 

l  rpm 安装(下载:https://pan.baidu.com/s/1sl4jByPblog

这种安装方法比较简单,只需下载相应的rpm安装包安装便可(注意根据提示安装相应的依赖包)。其中须要的 libev.so.4() 安装包: 进程

https://pan.baidu.com/s/1i4EZfwThttps://pan.baidu.com/s/1i4EZfwT

 

 

 

innobackupex参数介绍:

--defaults-file=/etc/my.cnf:指定my.cnf配置文件位置

--user=root:指定连接数据库的用户名

--apply-log:对xtrabackup的—prepare参数的封装

--copy-back:作数据恢复时把备份文件拷贝到mysql服务器的datadir目录下

--remote-host:经过ssh将备份数据存储到远程的服务器上

--stream:经过指定的数据格式将备份的数据输出到标准输出

--tmpdir:当指定了—remote-host或者是—stream参数后,事务日志须要临时存储到本地磁盘,此参数默认使用了mysql服务器的配置

--use-memory:此参数结合ibbackup使用,相似于xrtabackup的参数use-memory参数

--throttle=IOS:同xtrabackup的参数throttle

--sleep:是给ibbackup使用的,指定每备份1M数据,进程中止考呗多少秒,也是为了减小对正常业务的影响,具体查看ibbackup的手册

-compass:对备份的数据进行压缩,仅仅支持ibbackup,xtrabackup尚未实现

--include=REGEXP对xtrabackup参数的封装,也支持ibbackup;

--database=LIST :列出须要备份的databases,若是没有制定该参数,则全部包含Myisam和innoDB表的database 都会被备份

--password="*****":访问mysql的用户口令,当mysql的root口令为空时省略—password参数。

PORT=3306 :指定mysql监听的端口

--slave-info:slave-info能够记录备份恢 复后,做为slave须要的一些信息,根据这些信息,能够很方便的利用备份来重作slave。

/mysql_backup:备份位置

--socket=SOCKET :mysql服务器的socket文件的位置

2>/mysql_backup/ innobackupex.log:记录备份时的输出

--databases=数据库名:使用这个参数,针对某个数据库进行备份,若是不加这个参数默认就是所有的库备份

备份阶段

1:全量备份

innobackupex --defaults-file=/etc/my.cnf --user=root --password=root /opt/

2:第一次增量备份

mysql> create database test123;

innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --incremental-basedir=/opt/2019-01-15_20-32-38/ --incremental  /opt/incremental
image 
 
恢复阶段:

1.第一次还原全量恢复

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38

2.第二次还原增量恢复

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38 --incremental-dir=/opt/incremental/2019-01-15_20-40-36/

3.复制全部的备份到他们原来的位置

innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /opt/2019-01-15_20-32-38/

受权新data目录的权限
chown -R mysql.mysql data

image

相关文章
相关标签/搜索