作者:最初的心

我是VFP爱好者“最初的心”,现加入了加菲猫的狐友会社群,我虽然年过半百,仍在做业余开发。平常我记性不好,经常要记录心得,以备不时之需,最近我听狐友说勒索病毒很猖獗,上网一查得知勒索病毒会攻击云服务器,而今年我的一个Django框架的行车日志项目上线了,该项目停摆对业务的致命影响,于是打算来一次云服务器灾难恢复演练……

于是趁618买了一台云服务器,开始测试。

服务器镜像备份怎么操作 服务器镜像恢复_服务器镜像备份怎么操作

项目简要介绍

行车日志项目为BS架构,WEB前端用Django框架搭建(使用mysql),MIS后端用VFP搭建(使用mssql),中间通过MSSQL的链接服务器迁移数据。司机每时每刻可以录入出车任务,字段主要有出车时间、地点、公里数、用车单位等信息,前端自动完成内部台班、运费结算,同时为统计员提供更高权限下的出车任务单审核操作(增删改查),后端对接到VFP开发的老MIS系统上。

灾难恢复方法

第一种:利用云服务器系统快照,恢复到之前可用的时间点。

第二种:利用云服务器系统镜像,重装云服务器。

第三种:另购云服务器用镜像法快速重建业务系统,为灾难恢复争取时间(本文所述)。

第四种:另购云服务器从头搭建业务系统。

客观网络条件

1、单位严禁搭建自建系统,因此不能完成企业认证,购买云服务产品受限。

2、百度有两套独立的账号系统,即百度账号和百度云账号,它们拥有不同的登录入口和用户名以及密码,我已有百度账号的云服务器(以下简称源服务器),我只可以申请百度云账号去购买个人认证的云服务器(以下简称目标服务器)。

3、我的百度账号云服务器有系统盘(C盘)和数据盘(D盘)各一个,其中安装在系统盘上的MSSQL2008R2的部分数据库.mdf(数据文件)和.ldf(日志文件),因为不想多占系统盘(C盘)空间而设置在数据盘(D盘)上。

4、我购买的目标服务器虽与源服务器在同一地域(比如华东-苏州),但可用区(分A、B、C、D区)不同。

我的演练目标

使用源服务器系统盘镜像在目标服务器上快速重建业务系统。

我走过的弯路

1、我将源服务器系统盘制作镜像后,将它共享(可跨可用区,也可不跨)到目标服务器所在地域(比如华东-苏州),并利用此共享镜像安装目标服务器,成功。

2、在目标服务器打开phpStudy pro软件启动Apache和mysql服务,成功。

3、在目标服务器DOS下启动Django行车日志服务,成功。

4、在目标服务器上,本地可以访问行车日志web前端页面,但从公网不可访问。DOS下用netstat -ano查看相关服务端口,没有被占用。发工单请教百度云工程师后,进目标服务器安全组设置该端口允许入站后,公网可访问,成功。

5、在目标服务器上打开SQL Server Management Studio,发现无法连接到数据库,因为前述有部分数据库的.mdf(数据文件)和.ldf(日志文件)在数据盘(D盘)上,我需要在目标服务器上另购云磁盘,挂载数据盘(D盘),将源服务器上的数据盘镜像过来。

6、目标服务器上另购的云磁盘大小,要与源服务器上的数据盘大小匹配,否则镜像装不下,当然买小了,也可扩容的。购买的云磁盘要挂载到目标服务器上,使用前要格式化,成功。

7、百度账号或百度云账号同账号下的数据盘,在同一地域(比如华东-苏州)同一可用区下可以直接挂载数据盘实现数据迁移,但跨账号条件下不可以直接挂载。且我的源服务器上的数据盘(D盘)只能创建快照,并无创建镜像功能,无法成功。

8、同一地域(比如华东-苏州)同一可用区可以使用数据盘(D盘)镜像迁移数据。我的目标服务器受规格(1核心2G内存)限制,不能变更可用区,除非升级服务器规格,也就意味着需要加钱,我不想那样做。

9、我使用手工复制的方法,在目标服务器的数据盘(D盘)上,重建SQL Server Management Studio加载需要的.mdf(数据文件)和.ldf(日志文件)以及相应的文件夹,但SQL Server Management Studio加载数据时,依然报错,没有成功。

10、我想我将数据盘(D盘)上的.mdf(数据文件)和.ldf(日志文件)分离后附加到系统盘(C盘),然后重做系统盘(C盘)镜像并共享,就可解决问题。于是,在SQL Server Management Studio中分离存放在数据盘(D盘)上的.mdf(数据文件)和.ldf(日志文件),进入数据盘(D盘)拷贝.mdf(数据文件)和.ldf(日志文件)到系统盘(C盘)相应目录下,再重新在SQL Server Management Studio中附加该数据库,最后重做源服务器系统盘(C盘)镜像并共享安装到目标服务器上,后端MIS通过VFP访问mssql数据库问题解决,成功。

11、测试除行车日志以外的其它web服务,只要对应端口允许入站后,公网皆可访问,至此演练目标达成。

我当下的感悟

1、要多看细看云服务器官方文档。

2、要多动手实践,增长维护能力。

3、要发工单向百度云工程师讨教。

4、注意同地域同可用区功能区别。

下一步的打算

抛开镜像法,尝试完全重头搭建目标服务器,升级2008 R2 x86_64 (64bit) 中文版服务器操作系统为2022 x86_64 (64bit) 中文版,部署项目并测试功能,总结出演练脚本,当作云服务器灾难恢复指南。