![虚拟专用服务器的自动备份解决方案](https://linux22.com/image/482173/%E8%99%9A%E6%8B%9F%E4%B8%93%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
我公司有一台 VPS,其网络主机为几个网站提供服务。我想设置一个自动备份,以尽可能覆盖系统的大部分内容。
服务器信息:
- VPS 在 Microsoft Virtual Server Enterprise Edition 中运行
- Windows Server 2003 Web 版(32 位)
- Microsoft SQL Server 2005 Express
备份来源:
- 单个网站的 Web 根文件夹
- 每个站点的数据库(如果需要)
- IIS 设置
- 其他杂项文件(与操作系统或网站无关)
最好是,我可以为每个网站设置一个备份方案,其中包括该网站的文件和数据库,以及一个用于服务器范围信息的备份方案。但是,一个全局备份也可以。
备份的首选目标是 FTP 服务器。
我目前正在手动完成大部分工作(IIS 设置除外)。
答案1
首先,我建议您使用 rsync 进行复制。rsync 乍一看很可怕,但它很容易上手,而且带宽效率很高。请参阅:
http://www.ratsauce.co.uk/notablog/UsingRsync.asp
以获得快速指南。
您没有说明分区结构。是单个 C: 分区,还是小 C: 分区加上 D: 分区(用于存放数据)还是其他分区?
如果 C: 分区较小,D: 分区较大,我会将 C: 快照(请参阅 www.drivesnapshot.de)保存为 D: 上的文件,然后备份快照。如果只有一个 C: 分区,您仍然可以将 C: 快照保存为 C: 上的文件,但快照会相当大,因为它包括 C: 上的所有内容。
可以使用以下方法将 SQL 数据库转储到文件中:
osql /S 服务器名 /E /Q “使用 init 将数据库 fred 备份到磁盘='D:\fred.bak'”
然后就可以备份.bak文件了。
最后一个调整是,可以使用 vshadow.exe 小程序备份正在使用的文件,以便制作 C: 分区的影子副本,并将影子副本复制到 rsync 服务器。在 Google 上搜索 vshadow.exe 可以找到很多关于它的好文章,或者我很快就会写一篇关于它的文章。
答案2
任务调度程序:
- 导出 IIS 元数据库到文件系统
- NTBackup Web 根文件夹和 IIS 元数据库文件
- 运行 sqlcmd 将数据库备份到磁盘
将所有内容写入您使用 FTP 服务器提供的文件夹(使用非标准端口,如果可以,使用 SFTP 服务器)。在您的终端,让作业登录到 FTP 服务器并检索文件。