赞
踩
mysql当然可以使用它本身的双机热备,但只有一台服务器就不能使用双机热备,这里说一下热备工具Xtrabackup
xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表)
1、工具安装
将文件解压后,目录里安装上两个有用的工具:xtrabackup,innobackupex-1.5.1:
xtrabackup可以在不加锁的情况下备份innodb数据表,不过此工具不能操作myisam。
innobackupex-1.5.1是一个脚本封装,能同时处理innodb和myisam,但在处理myisam时需要加一个读锁。
按如上的介绍,由于操作myisam时需要加读锁,这会堵塞线上服务的写操作,而innodb没有这样的限制,所以数据库中innodb表类型所占的比例越大,则越有利。实际应用中一般是直接使用innobackupex-1.5.1方法,它主要有三种操作方式,按手册中的介绍:
Usage:
innobackup [--sleep=MS] [--compress[=LEVEL]] [--include=REGEXP] [--user=NAME]
[--password=WORD] [--port=PORT] [--socket=SOCKET] [--no-timestamp]
[--ibbackup=IBBACKUP-BINARY] [--slave-info] [--stream=tar]
[--defaults-file=MY.CNF]
[--databases=LIST] [--remote-host=HOSTNAME] BACKUP-ROOT-DIR
innobackup --apply-log [--use-memory=MB] [--uncompress] [--defaults-file=MY.CNF]
[--ibbackup=IBBACKUP-BINARY] BACKUP-DIR
innobackup --copy-back [--defaults-file=MY.CNF] BACKUP-DIR
(1)第一个命令行是热备份mysql数据库。
(2)带有--apply-log选项的命令是准备在一个备份上启动mysql服务。
(3)带有--copy-back选项的命令从备份目录拷贝数据,索引,日志到my.cnf文件里规定的初始位置。
下面说一下备份和恢复命令
2、备份数据库
1.普通备份:
innobackupex-1.5.1 [--defaults-file=/etc/my.cnf] --user=root [--host=192.168.1.52] [--password=xxx] [--port=3306] /data/back_data/
例如我们把数据库备份到/home/mysql/back中
export PATH=$PATH:/home/xtrabackup-1.5/bin
/home/xtrabackup-1.5/bin/innobackupex-1.5.1 --user=mysql--password=mysql /home/mysql/back
这里需要注意一点,使用命令前,先要设置环境变量
3、恢复数据库
首先停掉数据库,然后删除数据库目录下的所有数据库文件.
service mysql stop
cd /data/mysql_data
rm -rf * # 删除数据目录里的所有文件
/opt/gjnp/xtrabackup-1.5/bin/innobackupex-1.5.1 --copy-back /home/mysql/back/backfile-dir
默认innobackupex-1.5.1会将二进制日志信息存放在文件xtrabackup_binlog_info中发(方便做Slave)。
cd /data
chown -R mysql:mysql mysql_data/
service mysql start
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。