分类: Mysql/postgreSQL
2010-03-24 15:24:29
测试环境ubuntu 9.04 server
mysql glibc23 5.1.42 64x
xtrabackup_1.0.tar.gz
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。Xtrabackup中包含两个工具:
* xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表。
* innobackupex - 对xtrabackup封装的perl脚本,提供了myisam表备份的能力。
Xtrabackup可以做什么
* 在线(热)备份整个库的InnoDB, XtraDB表
* 在xtrabackup的上一次整库备份基础上做增量备份(innodb only)
* 以流的形式产生备份,可以直接保存到远程机器上(本机硬盘空间不足时很有用)
1.安装mysql xtrabackup
1.1 mysql 安装
tar -zxvf mysql-5.1.42-linux-x86_64-glibc23.tar.gz
ln -s mysql-5.1.42-linux-x86_64-glibc23 mysql
cd mysql
cp support-files/mysql.server .
cp support-files/my-medium.cnf .
修改文件 mysql.server 设置basedir datadir
2.2xtrabackup 安装
apt-get install libncurses5-dev
tar -zxvf xtrabackup-1.0.tar.gz
cd xtrabackup-1.0/
cp bdb/dist/config.sub .
cp bdb/dist/config.guess .
./configure
make
cd innobase/xtrabackup/
make
sudo make install
会生成两个可执行文件放到 /usr/bin/ 下
分别是 innobackupex-1.5.1 xtrabackup
innobackupex-1.5.1 是一个perl 脚本文件
注意 mysql 的my.cnf 文件 里面一定要有以下一行.
datadir = /srv/soft/mysql/data/
2 备份和恢复
2.1 备份
sudo innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --user=root -password="password" /home/zn/test/1
他会在/home/zn/test/1下建一个当前时间为名称的目录来存放备份的数据
注意 sudo它要用root 用户才能运行
2.2压缩备份
sudo innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --user=root -password="password" --stream=tar | gzip > /home/zn/test/backup.tar.gz
2.3远程备份
sudo innobackupex-1.5.1 --user=root --stream=tar /home/project | ssh root@192.168.1.39 cat ">" /home/project/backup.tar
2.4 恢复
关闭mysql
sudo innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --apply-log /home/zn/test/1/2010-03-19_16-10-27/
sudo innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --copy-back /home/zn/test/1/2010-03-19_16-10-27/
2.5压缩包恢复
tar -zxvif /home/zn/test/backup.tar.gz -c /home/zn/test/bak/
sudo innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --apply-log /home/zn/test/bak/
sudo innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --copy-back /home/zn/test/bak/
2.6增量备份
由于innobackupex-1.5.1不支持增量备份和热备份
只能用xtrabackup 他不支持
增量备份只能做innodb的
xtrabackup --defaults-file=/etc/mysql/my.cnf --backup --target-dir=/home/zn/test/2
xtrabackup --defaults-file=/etc/mysql/my.cnf --backup --target-dir=/home/zn/test/2.1/ --incremental-basedir=/home/zn/test/2/
恢复
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/home/zn/test/2/
xtrabackup --prepare --target-dir=/u01/xtrabackup/2/ --incremental-dir=/home/zn/test/2.1/
如果还有增量的数据,注意他们的先后次序.