1. 概述
在前面的博客《Azure DevOps Server 数据备份》中,我们详细介绍了如何在服务器中配置数据备份,通过增量和全量备份的方式确保系统数据的安全性。
下面我们主要来介绍如何将备份的数据还原出来,避免出现数据丢失的情况。
按照Azure DevOps Server产品的设计机制和用户使用场景,一般有两种数据还原方式:本地还原和异地还原;本文主要介绍本地还原方式。
本地还原是指在用户当前运行的环境中(例如生产环境)中实现数据还原。例如用户昨天彻底删除了工作项或者代码文件,今天意识到这是一个错误操作,需要将这些数据还原到当前环境中,这种场景比较适合本地还原;
但是,我们必须清醒的认识到,本地还原的实质是将之前一个时间点的数据库备份,还原到当前环境中;因此,本地还原将清除上次备份之后的数据变更。例如在上面场景中:
- 第1日夜间,系统做了自动备份
- 第2日白天,用户甲做了错误的彻底删除操作,用户乙做了其他的数据变更,例如提交了代码或新增的需求;
- 第2日夜间,系统做了自动备份
- 第3日白天,用户甲发现了自己昨天的错误操作,需要还原到1日时的数据状况;
如果系统管理员在第3日使用第1日夜间的备份数据,实现系统还原,这样就会造成第2日期间用户乙的更改丢失;因此,使用本地还原方式恢复数据时,我们必须慎重!在实际使用经历中,除了在测试环境中验证这种方案的有效性,我们一般很少使用这种还原方式来恢复数据。下面我们先来介绍本地还原方式的具体实现步骤。
2. 本地还原
1. 使用系统管理员账户登录到应用层服务器,以管理员身份运行命令行,并执行以下指令
TFSServiceControl quiesce |
注意,上面这个工具的位置默认为:C:\Program Files\Azure DevOps Server 2022\Tools
如果在停止服务的过程中出现异常,可以重复再次执行指令。
2. 在SQL Server服务器中,将需要还原的集合对应的数据库分离,并做好备份
为了确保安全,例如有可能还需要将数据还原回来,我们将数据库文件改名,如下图
3. 打开应用层控制台,选择还原数据库
4. 输入网络备份路径(一般会自动填充好),点击列表备份,系统会自动列出我们可以使用的备份时间点,按照还原的需求选择一个时间点,点击下一步
5 勾选需要还原的团队项目集合后,点击下一步
6. 再次确认后,点击下一步
7. 等待系统完成验证后,点击还原按钮
8. 下面是还原成功的界面,我们在SQL Server Management Studio中也可以看到还原后的数据库
如果每个团队项目集合的数据库是分布式独立部署在不同的数据库服务器上,还需要对服务账户(devservice)配置数据库的访问权限,这里不做详细介绍。
9. 启动Azure DevOps Server的服务
|
完成上面的操作以后,我们就可以使用网页浏览器或者Git客户端等去验证数据是否已经还原回来了。
在文章的最后,我们再次强调,上面的这种还原方式会造成部分用户的数据丢失,必须谨慎分析后再实施还原操作!!!
如果需要了解更新详细的功能,你还可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料,也欢迎通过下面的联系方式与我沟通,相互学习,相互提高!
https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君