您的位置:首页 > 数据库 > MySQL

用MySQL-zrm来备份(支持增量)和恢复MySQL数据库

2009-02-05 21:49 597 查看
用MySQL-zrm来备份(支持增量)和恢复MySQL数据库[/b]
用MySQL-zrm来备份(支持增量)和恢复MySQL数据库

MySQL-zrm是用perl脚本写的mysql备份还原工具,功能十分强大,少废话,直奔主题!

官方主页:http://mysqlbackup.zmanda.com/index.php/Main_Page
帮助文档:http://mysqlbackup.zmanda.com/index.php/Zmanda_Recovery_Manager_for_MySQL_Users_Manual

1,安装perl所需要的模块
前提是你必须能连上互联网
# perl -MCPAN -e 'install DBI'
# perl -MCPAN -e 'install XML::Parser'

2,建立备份用户
mysql> grant lock tables, select, file, reload, super, show view on *.* to backup_user@'localhost' identified by 'backup_user';
mysql> flush privileges;

3,安装MySQL-zrm
# rpm -ivh MySQL-zrm-2.1-1.noarch.rpm
# rpm -ivh MySQL-zrm-client-2.1-1.noarch.rpm

4,修改/etc/mysql-zrm/mysql-zrm.confm配置文件,如下:
backup-mode=logical
destination=/root/test
replication=1
databases=test
user="root"
password="foxshare"
socket=/tmp/mysql.sock
mysql-binpath="/usr/local/mysql/bin"
mysql-binlog-path="/var/lib/mysql"
mailto="root@localhost"

根据你自己的实际环境进行修改,我用的myisam引擎,用mysqldump进行的备份。

5,开始全部备份
# mysql-zrm-scheduler --now --backup-set test --backup-level 0

6,开始全部恢复
先将你原来的那个test数据库删除。
# mysql-zrm --action restore --backup-set test --source-directory /root/test/test/20090116155515/

OK,看看你的数据是不是恢复了!!

7,我们来看看增量备份
这个要啰嗦下,如果我们数据量小,负载小,就一台mysql服务器,那么我们的全部备份和增量备份都可以在这台机器进行,如果采用的是主从结构,增量备份还在主服务器上的话,那么就会影响主数据库的正常运行,此时我们可以在从库上进行全部备份,在主服务器上备份binlog日志进行增量备份,这个时候,要告诉mysqlzrm采用从服务器的模式进行备份,就会把主服务器的偏移量进行记录,那么我们只要保留有主服务器的binlog日志,就可以根据这个偏移量进行数据同步了。

原来的test数据库已经全部备份了,那么我们就开始增量备份。

# mysql-zrm --action backup --backup-set test --backup-level 1

ok,这样就增量备份完毕了,不信,你可以恢复这个文件看看,恢复步骤如下:
先还原全备份,删除那个test数据库。
mysql-zrm --action restore --backup-set test --source-directory /root/test/test/20090116155515/
再还原增量备份
mysql-zrm --action restore --backup-set test --source-directory /root/test/test/20090116171100/

如果是主从架构的模式,让我们来看下全部备份了什么东西?
-rw-r--r-- 1 root root 53018 Jan 16 17:08 backup.sql
-rw-r--r-- 1 root root 502 Jan 16 17:08 index
-rw-rw---- 1 mysql mysql 76 Jan 16 17:08 master.info
-rw-rw---- 1 mysql mysql 59 Jan 16 17:08 relay-log.info
-rw-r--r-- 1 root root 278 Jan 16 17:08 zrm_checksum

看下那个master.info文件
15
mysql-bin.000001
292106
192.168.1.225
replication
slave
3306
60
0

这里要注意那个“292106”偏移量,这个就是我们全备份的时候,主服务器的最后更新数据的偏移量。等下我们会用到它,当你在从服务器上进行全备份恢复数据后,可以根据上面将的这个偏移量进行数据同步了,其实主从架构的增量备份就是备份主数据库的binlog日志,哈哈哈,是不是比较简单,祝你好运!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: