Linux中MySQL的异地自动备份
2010-11-09李来祥
文/李来祥
Linux中MySQL的异地自动备份
文/李来祥
随着校园网应用的日益丰富,Linux系统下MySQL数据库的应用也越来越广泛。然而数据的意外丢失对于校园网应用来说是很大的损失,业务数据和校园网应用的日常业务运作唇齿相依。数据的丢失,即使是暂时性,也会给校园网应用的正常运行带来诸多的麻烦,况且有些基础数据是不可再生的。所以搞好数据库的备份工作,对于校园网应用的安全运行来说至关重要。
传统的MySQL数据库备份人为参与的因素较多,费时费力。而且随着MySQL数据量的增加,传统的备份方式越来越不现实,本着低成本高效率的原则,如何实现MySQL数据库异地自动备份是一个值得关注的话题。本文结合网络应用管理的实际经验,分以下几个步骤详细介绍了Linux环境下如何实现MySQL数据库轻量级的异地自动备份。
1 服务器环境
数据库服务器:Linux AS3,MySQL-4.1.14-rhel3
FTP 服务器:Linux AS3, vsftpd-1.2.0-4(Linux自带)
2 MySQL数据库的备份
由于MySQL安装完成之后,超级用户root的口令为空,所以任何人都可以无需口令地以root用户进行连接并且被授予所有权限。尽管这样的连接必须从本地主机发出,但对于MySQL数据库系统来说仍然是不安全的。因此备份的第一项工作就是应该为root设置一个口令。方法如下:在mysql>模式下,使用SQL语句和PASSWORD()函数设置root口令,具体命令如下:
通过上述命令将连接使用MySQL的超级用户root的登录口令设置成123456。
MySQL数据库的常用备份方法是使用应用程序mysqldump,备份命令格式如下:
说明:
(1)mysql_bin_dir:mysqldump所在的路径,一般默认为为/usr/bin
(2)user:数据库用户名;
(3)dataname:数据库名;
(4)password:用户密码;
(5)$(date +%Y%m%d):系统用来获取当前时间的命令,这个时间作为前缀用来标识备份文件。
3 定期备份数据库文件
如何将定期备份的数据库文件自动上传到另一台FTP服务器,是实现数据库自动备份的关键。在上传数据前,需要FTP服务器提供具有上传数据权限的用户,以及正常的FTP服务。这里通过Linux的shell脚本程序来实现,具体的脚本命令如下:
4 删除临时文件
为了节省MySQL数据库上的空间,可以用以下命令删除在MySQL服务器生成的临时文件。
创建文件backup.sh,将其保存在/root目录下,具体内容如下:
在/root目录下,赋予backup.sh可执行权限具体命令为:
5 结合crontab实现日备份
具体操作如下:
用root登陆系统编辑crontab文件
在末尾添加如下一行,即每天的01:05执行以上脚本
这样,服务器就可以自动的每天实现MySQL数据的异地备份了。
MySQL数据库异地自动备份的实现在一定程度上减少了人为参与的环节,确保了数据的安全,为Linux下mysql数据库的网络应用的正常运行,提供了有力的保证。
(作者单位为山东聊城大学网络信息中心)