标签: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
标签:mysql备份
原文地址:http://9425473.blog.51cto.com/9415473/1662298