Home > 我的收藏 > 实现MySQL数据库的简单自动异地备份

实现MySQL数据库的简单自动异地备份

2007年12月29日 字体大小 发表评论 阅读评论

免费的数据库软件mySQL数据库简单、高效、灵活,而且它的OpenSource的特性使得其在各平台上都能被广泛支持。所以用户数量也越来越大。

不管是什么数据库,备份总是一件很烦人的事。对于一个软件或者系统来说,数据才是真正的生命。程序被破坏了,或者系统中的软件丢失了,最多重新安装一下就可以了,但是如果数据丢了,那就再也找不回来了。

MySQL的备份,其实很简单。手动的备份可以使用mysqldump或者phpmyadmin等工具来实现,如何让系统自动备份呢?下面总结一下。

1. Master-Slave 模式。MySQL从4.0开始就提供了类似Oracle的Data Guard的功能——Master-Slave模式。一个数据库作为Master 数据库提供服务,所有的更新都将通过Binary Log同步到Slave DB。

所有的设定,都在my.cnf中设定就可以实现了。

在Master DB的my.cnf的mysqld标签段添加

#打开Binary log
log-bin
#服务器号
server-id = 1

在Slave DB的my.cnf的mysqld标签段添加

server-id = 2
master-host =
master-port = master-user =
master-password = #打开Binary log,对于Slave DB是可选项,但是建议打开
log-bin

这样就ok了,Master DB的数据就会被同步到Slave DB(有一个Binary Log的时差)

2.备份的远程传递
可以使用mysqldump定时生成备份文件,然后传送到其他服务器

2-a,UNIX 使用脚本
很简单,例如要每小时备份一次
在cronjob中设置一个shell脚本,
脚本的内容如下:

#####################################
# Script for Backup Database#
#####################################
# Written by : WellsWang#
# Date : 2004-09-03 #
#####################################

/usr/local/bin/mysqldump -C 数据库名 -r database.sql -u 用户名 -p密码
/bin/rm -rf database.sql.gz
/usr/bin/gzip -9 database.sql

/usr/bin/ftp -i -n FTP服务器名 << EOF
user 用户名 密码
bin
put database.sql.gz
bye

使用类似的脚本,就能定时传送备份的文件了:)
上面的脚本适用于备份服务器打开FTP的情况。

2-b, Windows使用同步软件
在服务器上同样使用脚本定时通过mysqldump备份数据库,
脚本如下:

REM #####################################
REM # Script for Backup Database#
REM #####################################
REM # Written by : WellsWang#
REM # Date : 2004-09-03 #
REM #####################################

c:mysqklbinmysqldump -C 数据库名 -r database.sql -u 用户名 -p密码

REM 如果你有gzip for windows,同样可以使用Gzip压缩备份出的数据,以减少网络传送时间
REM del database.sql.gz
REM gzip -9 database.sql

很明显,脚本仅缺少了gzip压缩和FTP传送,这里我们使用软件来完成传送。

推荐使用Super Flexible File Synchronizer这个软件,这个软件可以图形化的设定Schedule来进行当前服务器和备份服务器之间的文件同步。可以通过Windows网络共享或者FTP来实现同步。
因此,这个方案适用于备份服务器不打开FTP服务的情况

FROM: http://www.elaguan.net/show-324-1.html

分类: 我的收藏 标签: 浏览201 次
声明: 本站内容遵循 署名-非商业性使用-禁止演绎 2.5 共享协议. 原创文章转载 请注明转自 守望的麦子

相关文章 随机文章 本月热评 热门标签

      1. 本文目前尚无任何评论.
      1. 本文目前尚无任何 trackbacks 和 pingbacks.