码迷,mamicode.com
首页 > 其他好文 > 详细

xtrabackup原理和使用

时间:2015-06-16 19:37:34      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:mysql备份

对于InnoDB,XtraBackup基于InnoDB的crash-recovery功能进行备份。

crash-recovery是这样的:InnoDB维护了一个redolog,又称为 transaction log,也叫事务日志,它包含了InnoDB数据的所有改动情况。InnoDB启动的时候先去检查datafile和transaction log,然后应用所有已提交的事务并回滚所有未提交的事务。

XtraBackup在备份的时候并不锁定表,而是一页一页地复制InnoDB的数据,与此同时,XtraBackup还有另外一个线程监视着transactions log,一旦log发生变化,就把变化过的log pages复制走(因为transactions log文件大小有限,写满之后,就会从头再开始写,新数据可能会覆盖到旧的数据,所以一旦变化就要立刻复制走)。在全部数据文件复制完成之后,停止复制logfile。


备份步骤:

./innobackupex--defaults-file=/etc/my.cnf /data/backup/

innobackupex: Backupcreated in directory ‘/data/backup/2014-11-04_20-47-41‘(比较重要的输出信息)


如果不想要后面的时间戳:

加上--no-timestamp


日志输出

innobackupex: completedOK!

代表备份完成


看备份下的文件

 

[root@node20db_full_20141103]# ls -lh

total 1.1G

-rw-r--r-- 1 rootroot  357 Nov  3 22:18 backup-my.cnf

drwxr-xr-x 2 rootroot   19 Nov  3 22:18 db01

-rw-r----- 1 root root1.0G Nov  3 22:18 ibdata1

drwxr-xr-x 2 root root4.0K Nov  3 22:18 mysql

drwxr-xr-x 2 root root4.0K Nov  3 22:18 performance_schema

drwxr-xr-x 2 rootroot    6 Nov  3 22:18 test

-rw-r--r-- 1 rootroot   25 Nov  3 22:18 xtrabackup_binlog_info

-rw-r----- 1 root root   89 Nov 3 22:18 xtrabackup_checkpoints

-rw-r--r-- 1 rootroot  590 Nov  3 22:18 xtrabackup_info

-rw-r----- 1 root root2.5K Nov  3 22:18 xtrabackup_logfile


catxtrabackup_checkpoints     (记录LSN,以及备份的类型)

backup_type =full-backuped(备份类型,全备)

from_lsn = 0

to_lsn = 2084534

last_lsn = 2084534


1 日志应用到备份文件的数据文件中

innobackupex --apply-log--defaults-file=backup-my.cnf /data/backup/2014-11-04_20-47-41/

日志恢复成功会提示

xtrabackup: startingshutdown with innodb_fast_shutdown = 1

141111 23:31:25  InnoDB: Starting shutdown...

141111 23:31:30  InnoDB: Shutdown completed; log sequencenumber 1626124

141111 23:31:30  innobackupex: completed OK!



2 备份文件中的数据恢复到数据库中

 

/etc/init.d/mysql stop

cd/data/mysql/mysql_3306

mv data data_bak

mkdir data

cd data

cp -r /data/backup/2014-11-04_20-47-41/*.  (拷贝备份)

 

cd ..

chown -R mysql:mysqldata   (修改权限)

 

[root@node20mysql_3306]# ls -lh

total 8.0K

drwxr-xr-x 7 mysqlmysql 4.0K Nov  3 22:35 data

drwxr-xr-x 7 mysqlmysql 4.0K Nov  3 22:33 data_bak

drwxr-xr-x 2 mysqlmysql    6 Sep 11 20:57 logs

drwxr-xr-x 2 mysqlmysql    6 Sep 11 20:57 tmp

 

启动数据库

/etc/init.d/mysql start


本文出自 “dba天空” 博客,请务必保留此出处http://9425473.blog.51cto.com/9415473/1662298

xtrabackup原理和使用

标签:mysql备份

原文地址:http://9425473.blog.51cto.com/9415473/1662298

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!