有关SQL 数据库自动备份,ftp 定期执行自动上传bak文件到远程服务器记录

  2017年病毒爆发严重,我们公司几个外建项目都受到了不同程度的攻击,最为严重的是其中一个系统的应用服务器和数据库服务器都被攻陷,所有的文件系统不可使用,导致系统崩溃并无法恢复;
  系统设计:应用服务器和数据库服务器使用双机互备,定期备份系统的数据库文件;一般能应付其中一台服务器宕机后可以在短时间内恢复系统运行;但遇到双机都被攻陷的情况下,导致系统完全瘫痪并数据无法恢复。所以我们采用了远程备份的方式作为救灾手段。
  第一:申请远程数据备份存储服务器
     可以购买一台单独的服务器作为文件存储备份服务器;这里我们选择在阿里云上购买了一台ECS服务实例作为服务器;
 第二:部署ftp 服务器
    在备份服务器上部署ftp,此处自行百度;ps:阿里云实例上开通ftp 服务,需要打开20、21端口的进出。别问我为什么,我也不知道。
 第三:在系统服务器上将数据库文件上传至阿里云数据备份服务器
   1) 接下来需要将备份好的bak文件压缩成rar格式(需要安装win rar或其他压缩软件)。
   2)向ftp服务器上传文件
  3)删除所有bak 及 rar 文件
  3,源代码分为两个文件A, B 详细如下:

A.bat 源代码

rem 将每天备份的数据压缩后导入到ftp服务器
@echo off
set dateStr=%date:~0,4%%date:~5,2%%date:~8,2%

echo 压缩备份文件
set path=%path%;D:\Program Files\WinRAR;
rar a f:\databak\2017_%dateStr%.rar f:\databak\*.bak

pause

echo 上传文件
ftp -n < f:\B.ftp
echo 删除多余文件

del f:\databak\*.bak
del f:\databak\*.rar
pause

B.ftp源代码

open 127.0.0.1
user anonymous 33
put f:\databak\*.rar
quit

127.0.0.1 改成你存储服务器的IP

user 输入用户名和密码

ftp主动模式(port):

 

  • 用户主机一个随机端口连接FTP SERVER的TCP21端口进行协商;
  • 用户主机告诉FTP SERVER,我的XXXX端口已经打开,你可以放心大胆的连过来;
  • 然后FTP SERVER就用TCP20端口连接用户主机的XXXX端口,数据传输开始。

ftp被动模式(PASV)

 

  • 首先用户使用随机端口连接FTP SERVER的TCP 21端口进行协商;
  • FTP SERVER告诉客户机:我的XXXX端口开放了,你连过来吧;
  • 客户机使用一个随机端口连接FTP SERVER的XXXX端口传输数据。

 

 

 

如果你的系统服务器也处于路由内,建议选择ftp 被动模式;因为主动模式下,系统服务器向阿里存储服务器的21 端口发送请求后,阿里云存储服务器通过20端口来像系统服务器提供的xxxx端口访问;而你的系统服务器这些端口一般都是受限不允许通过,所以会导致ftp访问异常;

被动模式下(PASV):IIS服务器 ftp设置防火墙支持 设置指定端口范围,ftp服务器就会在端口范围内选择一个端口让客户端访问;所以只要在安全组设置xxx/xxx端口入方向 通过即可;

ftp防火墙设置端口范围后,切记重启ftp服务,使ftp端口生效!!!(血坑。。。。)

客户端服务器ftp通过防火墙设置:

 

64位系统将C:\Windows\SysWOW64\ftp.exe文件添加到防火墙的允许列表中即可。

32位系统就添加C:\Windows\system32\ftp.exe即可。

 

最后将bat文件放到windows 自动执行任务即可完成!

 

以上内容参考其他大神博文指导,仅作整理记录。

 

 

 

 

 

 

 

你可能感兴趣的:(SQL)