MySQL是一个最常见和多功能的数据库软件,越来越多的用户选择了MySQL。MySQL支持从一个用户的应用程序到上百万用户的应用程序。遗憾的是它没有任何系统有效的管理和备份工具。大约30%-40%的MySQL数据库没有系统的备份,很多数据库管理用通过脚本来实现MySQL
MySQL是一个最常见和多功能的数据库软件,越来越多的用户选择了MySQL。MySQL支持从一个用户的应用程序到上百万用户的应用程序。遗憾的是它没有任何系统有效的管理和备份工具。大约30%-40%的MySQL数据库没有系统的备份,很多数据库管理用通过脚本来实现MySQL数据库备份。
一、什么是ZRM
ZRM(Zmanda Recovery Manager for MySQL)是一个健壮MySQL备份和还原解决方案,具有自动化和灵活的特征。它可以非常方便数据库管理员完成备份和恢复工作。ZRM分为商业版和社区版。社区版是免费的,最新的发行版是MySQL-zrm-2.2.0。
ZRM主要功能包括:
1、根据你的需求定时备份
2、集中备份MySQL,集中管理ZRM服务
3、详细的备份报表输出
4、通过默认提供的插件可以定制化备份方案
5、本地备份或者远程备份MySQL数据库
6、本地存储备份数据,通过SAN硬盘存储或者NAS/SAN存储
下面的图显示了在本机运行的ZRM for MySQL备份两台MySQL-Server上多个mysql数据库
备份的功能
ZRM for MySQL可以备份被mysql服务器管理的多个数据库
可以备份多台mysql服务器上的多个数据库
可以备份单个数据库中的表
可以对数据库进行热备
根据MySQL表使用的不同的存储引擎支持多种不同的备份方式
具有两种级别的备份:全备份和对数据库的增量备份
可以使用mysqldump,mysqlhotcopy,snapshots(Linux LVM/Solaris ZFS)和MySQL replication作为不同的备份方式
透明实现各种数据库表引擎数据库备份
在ZRM备份服务器与数据库服务器之间支持SSL认证,可以通过Internet和防火墙安全备份。
检验备份数据的完整性
使用标准的工具如gzip,GPG等可以对备份镜像进行压缩或者加密
灵活控制备份作业
支持快照备份,并转换真实备份
恢复的功能
ZRM for MySQL使得恢复备份的数据变得很容易
支持使用备份索引文件(index)记录备份过程信息
它可以使用报表工具查看备份索引文件
支持恢复完全备份和增量备份
通过选择MySQL二进制日志中的时间或位置,可选择性的恢复误操作的数据,恢复点可以是二进制日志中时间点或位置
ZRM for MySQL通过MySQL二进制日志可以很容易的过滤出对数据库操作的行为,可以帮助决定哪些被恢复,哪些不被恢复
根据你所做的备份的类型,可以使用备份在本机恢复或者在不同的机器上进行恢复
报告和计划任务能力
ZRM for MySQL可以立即执行备份计划或者按天/按周/按月做备份计划任务
它可以自动生成备份报告
它具有预先设定的备份报告也可以用户自定义的备份报告
它可以报告任何备份的统计或者这些统计的组合
它支持HTML或者Text格式的报告
它可以发送email告知备份的运行状态
它还可以通过RSS feed的方式提供备份报告
插件
ZRM for MySQL提供插件来扩展工具功能,数据库管理员通过插件来定制数据库备份。ZRM提供了插件模版,使得创建插件更加容易
它提供了以下可以使用的插件:预先日程插件、预先备份插件、在备份之后插件、拷贝插件、二进制日志分析插件、快照插件。
二、安装ZRM
ZRM for MySQL套件是使用perl写的,所以使用环境必须支持perl,这个套件支持MySQL的版本有4.0.x(4.0.24或以上版本),4.1.x,5.x。
在安装ZRM for MySQL时首先需要检查下列事项:
1、MySQL的版本是否是被ZRM for MySQL支持的
2、确认ZRM服务器和mysql服务器上存在mysql用户和组。同时MySQL服务进程是使用相同的用户和组启动的
3、在MySQL服务器和ZRM服务器上的mysql用户的uid和gid要相同
4、ZRM for MySQL需要用到mysqladmin、mysqlhotcopy、mysqldump、mysqlbinlog、mysql这些MySql客户端的命令,这些命令需要安装在ZRM for MySQL运行的服务器上
5、MySQL ZRM必须的perl模块:perl-DBI、perl-DBD-MySQL、perl-XML-Parser
安装需要的perl模块
yum install perl-XML-Parser perl-DBI perl-DBD-MySQL
获取ZRM安装包
wget http://www.zmanda.com/downloads/community/ZRM-MySQL/2.2/RPM/MySQL-zrm-2.2.0-1.noarch.rpm
安装ZRM
rpm -ivh MySQL-zrm-2.2.0-1.noarch.rpm
三、创建MySQL执行备份和恢复的用户
推荐新建一个MySQL备份用户来代替root用户。ZRM需要的mysql数据备份用户和mysql数据恢复用户所需的最小权限分别为::
备份用户:LOCK TABLES,SELECT,FILE,RELOAD,SUPER,SHOW VIEW
还原用户:CREATE,DROP,INDEX,SHUTDOWN,INSERT,ALTER,SUPER,REPLICATION CLIENT,CREATE VIEW
注:在MySQL5.x上执行逻辑备份时,SHOW VIEW and CREATE VIEW 权限是必须的。
建立一个给ZRM用的备份用户
mysql>grant select,insert,update,create,file,index,drop,reload,shutdown,alter,super,lock tables,replication client,show view,create view on *.* to 'zrm_backup'@'192.168.1.%' identified by