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/1sl4jByP) blog
这种安装方法比较简单,只需下载相应的rpm安装包安装便可(注意根据提示安装相应的依赖包)。其中须要的 libev.so.4() 安装包: 进程
https://pan.baidu.com/s/1i4EZfwThttps://pan.baidu.com/s/1i4EZfwT
--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=数据库名:使用这个参数,针对某个数据库进行备份,若是不加这个参数默认就是所有的库备份
备份阶段
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root /opt/
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
恢复阶段:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38
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/
innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /opt/2019-01-15_20-32-38/
受权新data目录的权限
chown -R mysql.mysql data