Azure DevOps Server 数据还原方式三:增量还原
Posted 张洪君 - 微软Azure DevOps(TFS ) MVP
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure DevOps Server 数据还原方式三:增量还原相关的知识,希望对你有一定的参考价值。
Contents
- 1. 概述
- 2. 操作方式
- 2.1 创建共享文件夹,并将备份文件复制到共享文件夹中
- 2.2 还原数据
- 3 验证还原的数据库
- 3.1 方式一:核对工作项所在的表的数据
- 3.2 方式二:将数据库配置到应用层,在应用中验证数据
- 4. 常见问题:
- 4.1 不能使用\\localhost作为共享文件夹
- 4.2 还原数据库过程中,需要填写正确的数据库服务器地址
- 4.3 数据库已经存在
1. 概述
还原Azure DevOps Server的全量备份数据库,可以手动在SQL Server Management Studio中操作;但是如果需要还原增量数据库,必须使用Azure DevOps Server的控制台。
本文主要介绍还原增量数据备份的方法。
2. 操作方式
2.1 创建共享文件夹,并将备份文件复制到共享文件夹中
2.2 还原数据
在安装了Azure DevOps Server的应用层服务器上,打开Azure DevOps Server的控制台窗口,并选“计划的备份” > “还原数据库”。
在“网络备份地址”中,输入上面创建的共享文件夹地址,点击“列表备份”,可以查看到可以使用的全部备份。
选择一个时间点的备份后,点击下一步。
在数据库实例中,输入目标数据库服务器的名称或者IP
在汇总页面中,再次核对配置信息是否正确;如果是练习还原过程,必须要再次核对目标服务器,不要连接到生产服务器中。
系统自动验证是否符合还原条件,点击“还原”按钮。
还原完成后,系统会提示还原结果;如果出现警告提示,可以查看日志文件获取详细结果;一般情况下可以忽略警告信息。
下图是还原成功后的截图
3 验证还原的数据库
3.1 方式一:核对工作项所在的表的数据
3.2 方式二:将数据库配置到应用层,在应用中验证数据
4. 常见问题:
4.1 不能使用\\localhost作为共享文件夹
4.2 还原数据库过程中,需要填写正确的数据库服务器地址
否则,还原过程中,系统提示SQL Server Account Error,页面卡在这里,如下图:
4.3 数据库已经存在
如果服务器中已经存在数据库,必须要要删除已经存在的数据库,再执行还原流程。
如果需要了解更新详细的功能,你还可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料,也欢迎通过下面的联系方式与我沟通,相互学习,相互提高!
https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君
Azure Devops 私有构建代理在 nuget 还原任务中失败
【中文标题】Azure Devops 私有构建代理在 nuget 还原任务中失败【英文标题】:Azure Devops private build agent failing at nuget restore task 【发布时间】:2020-09-14 14:46:51 【问题描述】:Azure DevOps 私有构建代理正在尝试下载旧的 dotnet 版本包作为 Nuget 还原任务 的一部分,这些包不再在项目中使用,并且在特定管道中失败只要。对于相同的 nuget 还原任务,相同的构建代理在任何其他管道中都没有问题。我的问题是,特定管道是否可以单独缓存 nuget 还原并因此而失败..?
【问题讨论】:
您能否分享管道中哪个特定任务失败以及错误消息? 已经提到:Nuget 恢复任务 并且错误消息说:##[error]The nuget command failed with exit code(1) and error(Errors in packages.config项目无法找到包'Edge.js'的版本'9.3.0'。我们不再使用这个版本的edge.js,但不知何故它正在尝试下载旧包,而这个包版本在nuget repo中不存在,所以它失败了. 这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以 Accept it as an Answer ,这样它可以帮助遇到相同问题的其他社区成员,我们可以存档这个帖子,谢谢。 【参考方案1】:Azure Devops 私有构建代理在 nuget 还原任务中失败
根据您评论中的错误信息:
packages.config 项目中的错误无法找到版本“9.3.0”的 包'Edge.js'。我们不再使用这个版本的 edge.js 但不知何故,它试图下载旧包和这个包 nuget repo 中不存在版本
nuget 正在恢复一个你不再使用的 nuget 包,并且这个包版本在 nuget repo 中不存在,所以它失败了。
要解决此问题,我们需要从项目中删除该包。如果您有packages.config
,请删除其中的以下项目:
<package id="Edge.js" version="9.3.0" targetFramework="net461" />
如果您的项目是.net core
,您需要打开您的项目文件 .csproj 文件并删除其中的以下项目:
<PackageReference Include="Edge.js" Version="9.3.0" />
如果您已经这样做了,那么您需要检查与当前管道关联的 repo 和分支,以确认 关联 repo 分支上的源代码已更新。
如果以上答案没有解决您的问题,请分享有关您的构建定义和项目中的包信息的更多信息。
希望这会有所帮助。
【讨论】:
其实你的回答帮助我找到了解决方案。我在 ADO 管道中签出源代码之前激活了源代码和输出目录的清理,这解决了这个问题,所以我猜以前它是在过时的代码上运行任务。以上是关于Azure DevOps Server 数据还原方式三:增量还原的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps Server 2022.0.1升级手册
Azure Devops 私有构建代理在 nuget 还原任务中失败
Windows Azure Active Directory备份/还原[暂停]
如何将 Azure DevOps Extension for Azure CLI 与 Azure DevOps Server 一起使用?