2013年12月09日 星期一 10:53
对于一个现代化的互联网企业,最重要的财产就是其业务的数据。为数据库制定完善的备份方案是DBA最重要的职责之一。
常见的备份方案有:
1,通过mysqldump进行备份,这种方案属于逻辑备份,备份速度慢,恢复速度也慢。备份过程会阻塞本机MySQL数据库的写入操作。
2,通过mylvmbackup配合LVM(逻辑卷管理器)进行备份,这种方案属于物理备份,具有闪电般的速度,瞬间即可备份完毕。但要求数据库的磁盘需要使用LVM进行管理。
3,将一台MySQL Slave服务停止,然后拷贝文件。这种方案也属于物理备份,备份速度取决于拷贝文件的速度。备份过程需要停止本机MySQL进程。
Percona XtraBackup是一种更先进的备份方案,具有如下优势:
1,无需停止MySQL服务。
2,备份InnoDB数据的过程中,不会阻塞写入操作。
3,适用于多种数据库版本(MySQL 5.1,5.5,5.6)。
4,对服务器没有特殊要求。
5,物理备份,速度快。
6,使用方便,可以直接备份到远程服务器
安装过程非常简单:
配置软件安装源(/etc/yum.repos.d/percona.repo):
[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgcheck = 1
gpgkey=http://www.percona.com/downloads/RPM-GPG-KEY-percona
然后执行:
yum install -y percona-xtrabackup
下面的是将本地数据库直接备份到远端服务器的一个示例:
在远端服务器端执行:
nc -l 9999 |tar ixvf -
在MySQL服务器端执行:
innobackupex --defaults-file=/etc/my.cnf --socket=/data/mysql/3306/mysql.sock --stream=tar ./ |nc remote.machine 9999
然后在远端服务器执行:
innobackupex --apply-log .
这样就得到了一份完整可用的数据,在备份文件夹中的xtrabackup_binlog_info文件里,有binlog的信息,可以用于change master操作。
更多Percona XtraBackup的相关文档请参考:
http://www.percona.com/doc/percona-xtrabackup/2.1/index.html
http://www.percona.com/doc/percona-xtrabackup/2.1/howtos/setting_up_replication.html
2013年12月09日 星期一 11:08
孟叔,XtraBackup先进的原理是啥?
2013年12月09日 星期一 20:50
根据我的理解,原理可以简单总结为:
1,跟踪REDO LOG文件,将备份过程中所有新增的REDO LOG都保存起来。
2,拷贝所有InnoDB数据文件。
3,Apply第一步保存的REDO LOG,使数据达到一致和完整。
更权威的解释可以参考:
http://www.percona.com/doc/percona-xtrabackup/2.1/how_xtrabackup_works.html
Zeuux © 2024
京ICP备05028076号