找回密码
 FreeOZ用户注册
查看: 1610|回复: 5
打印 上一主题 下一主题

[网络技术] 可靠且0成本的异地远程自动数据库备份技术介绍

[复制链接]
跳转到指定楼层
1#
发表于 15-2-2010 14:44:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
本站是在服务器硬盘损坏,造成一定的数据丢失后把数据自动备份或数据冗余提到极为优先的位置的,  一开始考虑的方案是用二块硬盘做RAID,这样除非二块硬盘同时坏掉,否则数据是比较保险的。  联系了我们的服务商serverpoint, 他们给答复是,无法加RAID功能,因为机架没有相应的位置。他们建议用他们的数据保护服务,aresoft , 35G好象是每月40美元。 (本站或本店: 指www.usidc5.cn, bbs.usidc5.net, www.usidc5.net和淘宝店铺 http://shop35937626.taobao.com/


我们经过考虑和征询合租客户的意见,感觉35G无法做到数据的完全备份,软件的每小时备份一次对我们来说也是多余的功能。 不如自己动手,寻求更廉价的更容易控制的远程异地每日自动数据库备份方式。


我们所作的方案如下:


1 ms sqlserver数据库备份   


采用的是数据库系统自带的数据库维护计划,可定时,每日自动备份所有用户数据库到磁盘文件中。  文件扩展名定义为.bak文件。




2  mysql 数据库备份
采用的是mysql数据库自带的msqldump,可支持备份所有数据库。 备份文件扩展名定义为.sql 。




3 文件传送到远程
采用的是ftp命令行方式,考虑到美国到美国FTP上传速度非常快,故无需考虑断点续传问题。数据备份的服务器是另外一家美国服务商。


4  每日定时的问题
在系统计划任务里添加了一个定时的任务, 执行体为一个dos下的bat文件。 在sqlserver数据库备份完成后,windows计划任务将启动这个任务,由这个bat执行一系列的命令来完成备份过程。


5  速度优化
我们把所有的文件全部进行用RAR进行压缩,节约上传时间。




让我们具体看下实现:
bat文件内容:


del d:\xxxxx\mysqlbak.sql


mysqldump --all-databases -u root -ppassword   >  "d:\xxxxx\mysqlbak.sql"


del d:\xxxxx\*.rar


"C:\Program Files\WinRAR\rar.exe"  a  "d:\xxxxx\mysqlbak.sql.rar"  "d:\xxxxx\mysqlbak.sql"


"C:\Program Files\WinRAR\rar.exe"  a  "d:\xxxxx\sqlserverbak.rar"  "d:\xxxxx\*.bak"


del d:\xxxxx\*.bak


ftp -s:"d:\xxxxx\ftp.txt"




ftp.txt文件内容
open   x.x.x.x  
username
password
binary   
prompt
mput d:\xxxxx\*.rar   
bye






这样,无需任何外部软件,全部由系统自带软件,完成了远程异地每日自动备份,目前运转情况良好,最大限度地保障了用户的数据安全。

首发于: http://bbs.usidc5.net/read.php?tid=114

评分

参与人数 1威望 +10 收起 理由
yuba + 10 能用就好

查看全部评分

回复  

使用道具 举报

2#
发表于 15-2-2010 15:14:42 | 只看该作者
这样的备份太不安全
回复  

使用道具 举报

3#
发表于 15-2-2010 15:19:39 | 只看该作者
sftp, rsynch is better than ftp
putting username/password in plain text file is asking for trouble. Try to setup trust relationship between accounts... If you run *nix on both side. Windows for server ... is looking for trouble.
回复  

使用道具 举报

4#
 楼主| 发表于 15-2-2010 15:34:40 | 只看该作者
密码明文保存在文件里,安全性是不高,但是对于我现在这种应用,是可以接受的。

bat ,  ftp.txt 这2个文件的权限我们都已经设置成只有管理员才能读和写。 其他合租用户如果取不到管理员权限,都是白给,如果取到了,人家就放木马,加黑链了,什么都能做,对这2个文件也不会感兴趣。
回复  

使用道具 举报

5#
 楼主| 发表于 15-2-2010 15:36:49 | 只看该作者
国内的应用还是以windows为主, 在代购的印象中,win : linux要达到5:1 至少。
回复  

使用道具 举报

6#
 楼主| 发表于 18-2-2010 16:14:39 | 只看该作者
服务器换了一次机器名,然后sqlserver里就运行维护计划失败,手工执行也是失败,想删除了重建都不行。可能是sqlserver本身有点问题,换了机器名后连不上数据库。

因此,又想了一个办法,使用sqlserver 命令行执行sql 语句进行备份。


在BAT文件里加了如下一条命令。
sqlcmd -i d:\aaa.sql -o d:\bbb.txt




在增加一个aaa.sql文件,内容从企业管理器中取出T-SQL语句即可。


sqlcmd默认是用windows当前用户授权连接本机默认实例,因此无须输入sa密码或系统管理员密码。


如果有知道如何解决sqlserver换机器名后维护计划不能用的问题,请告诉我。 感谢。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 29-4-2024 07:53 , Processed in 0.024880 second(s), 22 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表