- 论坛徽章:
- 0
|
MySQL数据库备份和恢复方案ZRM for MySQL手册中文翻译–预先安装的软件
目录
1.检查需预先安装的软件
2.调整需预先安装的软件
2.1MySQL备份用户
2.1.1推荐配置
2.1.2最小化配置
2.2二进制日志
2.3使用快照备份
2.3.1使用LVM快照的前提条件
2.3.2Sudo权限配置
2.4配置SSL实现远程安全备份
------------------------------------------------------------------------------
检查需预先安装的软件
核实你部署MySQL版本,是否已经被ZRM for MySQL支持
核实ZRM服务器和mysql服务器上是否有mysql用户和组,同时MySQL服务进程也需要以这个用户及组运行。逻辑备份是不需要的。
mysql用户的uid和gid必须在ZRM服务器上和MySQL服务器上保持一致
在zrm服务器上必须安装如下mysql客户端命令,即使zrm服务器是用于备份远程mysql数据库。- mysqladmin
- mysqlhotcopy
- mysqldump
- mysqlbinlog
- mysql
复制代码 ZRM for MySQL程序必须安装在mysql服务器上。
在zrm备份服务器上的mysql客户端命令的版本必须要兼容mysql服务器上mysql命令的版本
最好是mysql客户端命令版本和mysql服务器上命令版本一致
检测mysql客户端命令是否安装在/usr/bin/目录下。如果不是,相应的在mysql-zrm.conf中配置mysql客户端命令路径和mysql二进制目录路径。
安装和配置ZRM for MySQL需要管理员用户,但所有的ZRM for MySQL命令可以以mysql用户组的用户运行。
如下perl模块是必须安装的。- perl-DBI
- MySQL-perl-DBD
- perl-XML-Parser
复制代码 ZRM for MySQL服务器上需要配置邮件发送程序,通过邮件发送备份信息。
Solaris系统需要安装一些GNU软件包,这些有的已经安装到系统上面了,有的需要到Sun Freeware网站上面下载安装。主要检查这些软件版本- SUNWcsu Core Solaris
- SUNWsshcu SSH Common
- SUNWgzip GNU Zip
- SMCtar GNU tar
- SMCsudo GNU sudo
- SMCgrep GNU grep
- SMCcoreu GNU coreutils
复制代码 SMC 软件包依赖于如下库- SMCliconv
- SMClintl
- SMClgcc346
复制代码 安装前的设置
MySQL数据库和操作系统的一些说明
不要使用Root用户执行备份
当为root用户不允许执行数据库备份和恢复,应该创建一个专门的MySQL备份和恢复用户
增量备份
要支持增量备份,必须在MySQL数据库中开启二进制日志支持
快照备份
快照备份指将备份的数据和日志存储到支持快照的逻辑卷中
MySQL服务器和ZRM服务器直接的安全访问
强烈推荐使用SSL作为不安全网络之间的访问方式
MySQL执行备份的用户
推荐操作
我们推荐新建一个MySQL备份用户来代替root用户。如果mysql备份用户和恢复用户不一致时,请在mysql-zrm.conf配置文件设置mysql备份用户的权限,而数据库还原的用户则可以在mysql-zrm命令行通过--user和--password指定。
最小权限设置
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 权限是必须的。
MySQL备份用户需要SUPER权限,即使MySQL复制没有使用
在做增量备份时,ZRM需要SUPER全新来启动二进制日志
在做了MySQL复制,在从服务器(slave)上作备份时,除了在上述权限的基础上还需要REPLICATION CLIENT权限
实例:赋予最小的备份权限给用户dba-backup,用户在主机"server.company.com"执行远程备份(MySQL4.0.24)- mysql> GRANT LOCK TABLES, SELECT, FILE, RELOAD, SUPER
- -> ON expenses.*
- -> TO 'dba-backup'@'server.company.com'
- -> IDENTIFIED BY 'obscure';
复制代码 在"servercompany.com"主机上面执行ZRM for MySQL备份命令
注意:如果是备份远程mysql服务器,备份用户的即要有访问本地ZRM服务器的权限也要有访问远程MySQL服务器的权限。
二进制日志
MySQL增量备份必须在MySQL服务器启动二进制日志,可以在启动的命令行中添加--log-bin。- mysqld --log-bin=<binlogfilename>
复制代码 注意:
启动二进制日志,大概会减小1%的性能
将二进制日志文件保存在一个单独的文件系统比将二进制日志文件和数据文件保存在同一个文件系统,会有更好的性能。
翻阅http://dev.mysql.com/doc/refman/5.0/en/binary-log.html可以获得更多关于MySQL二进制日志的信息
使用快照备份
ZRM for MySQL可以创建LVM或ZFS卷的临时快照,然后使用临时快照创建备份数据。临时快照也被看成是一种备份数据。使用快照备份数据的优势是只有在执行快照时锁定表。执行完备份后,快照会被删除。快照可以帮助创建完整的数据复制备份,就像数据备份前一样的完整数据。
如果MySQL数据库/表使用的是事务性引擎,如InnoDB,则应用的锁定时间会很短
如果MySQL数据库/表使用的是非事务性引擎,如MyISAM,ZRM for MySQL会将内存中的信息刷新到硬盘中,然后获得数据库/表的锁。而且读锁的时间只是暂时的。
当数据库文件时保存在支持锁/解锁操作的文件系统时,如XFS,VxFS(Verital file systems)或ZFS。在执行快照前文件系统的I/O操作会被暂停。
要执行快照备份,所有的数据库文件(数据文件,日志文件,索引文件)都需要存储在快照卷中。如果不能,则会执行默认的裸设备备份。
使用LVM快照的前提
在卷组中创建空闲的分区以供快照使用,可以用vgdisplay命令查看。空闲的分区可以在mysql-zrm.conf配置文件的"backup parameters"配置段设置。
sudo配置
要以默认用户mysql或其他非root用户执行快照备份,必须首先设置sudo配置文件。
有些Linux版本执行sudo会出现下面的错误:- "sudo: sorry, you must have a tty to run sudo,"
复制代码 执行visudo命令,注释下面的行:非root用户要执行LVM快照备份,需要在配置sudo配置文件
实例:ZRM系统用户是mysql,sudo配置文件配置如下:- mysql ALL = NOPASSWD:/bin/mount, NOPASSWD:/bin/umount, NOPASSWD:/bin/df, NOPASSWD:/sbin/lvdisplay, NOPASSWD:/sbin/lvcreate, NOPASSWD:/sbin/lvremove
复制代码 实例:执行ZFS快照备份,编辑ZRM所在服务器上的/usr/local/etc/sudoers配置文件- mysql MySQLserver.mycompany.com=NOPASSWD:/usr/sbin/zfs
复制代码 配置SSL实现远程安全备份
SSL为备份网络之间提供了一种额外的安全层。只有在执行远程逻辑备份时,才需要在ZRM服务器与MySQL服务器直接安装SSL支持。
可以用下面二种方法来核实MySQL服务是否支持SSL
在MySQL服务器上执行下面的命令当MySQL不支持SSL时,将回应这样的信息- 060828 15:25:08 [ERROR] mysqld: unknown option '--ssl'
复制代码 在MySQL数据库中检查have_openssl变量- mysql> SHOW VARIABLES LIKE 'have_openssl';
- +---------------+-------+
- | Variable_name | Value |
- +---------------+-------+
- | have_openssl | YES |
- +---------------+-------+
复制代码 翻阅http://dev.mysql.com/doc/refman/5.0/en/secure-using-ssl.html获得更多MySQL支持SSL的信息。
当在执行远程备份时,我们推荐使用下面二种方法来配置MySQL支持SSL。
编辑ZRM服务器上的/etc/my.cnf文件:- ssl-ca=<mysql_conf_dir>/openssl/cacert.pem
- ssl-cert=<mysql_conf_dir>/openssl/client-cert.pem
- ssl-key=<mysql_conf_dir>/openssl/client-key.pem
复制代码 编辑ZRM for MySQL的配置文件/etc/mysql-zrm.conf- ssl-options="--ssl --ssl-ca=<mysql_conf_dir>/openssl/cacert.pem
- --ssl-cert=<mysql_conf_dir>/openssl/client-cert.pem
- --ssl-key=<mysql_conf_dir>/openssl/client-key.pem"
复制代码
中文项目主页:http://www.lazysa.com/zrm-for-mysql
[ 本帖最后由 longkaty 于 2009-9-20 23:24 编辑 ] |
|