Win10系统之家 - 专注分享最好用的电脑系统

当前位置: Win10系统之家 >  微软新闻 >  一个拼写错误,微软误删了十七个数据库

一个拼写错误,微软误删了十七个数据库

更新时间:2023-06-06 19:19:02作者:cblsl
上个月末,南巴西地区的Microsoft Azure DevOps服务突然停止了约十个小时。事后,微软首席软件工程经理Eric Mattingly为此次故障向用户道歉,并揭示了故障的原因:一个简单的代码拼写错误导致17个生产数据库被删除。


Mattingly解释说,Azure DevOps工程师偶尔需要对生产数据库进行快照,以便调查客户升级或评估潜在的性能改进。为了确保这些快照数据库得到清理,每天都会运行一个超过特定期限便会将其删除的后台作业。


在最近一个敏捷开发的冲刺中,Azure DevOps工程师执行了一个代码升级,用受支持的Azure.ResourceManager.* NuGet包替换已弃用的Microsoft.Azure.Managment.*包。这导致了一个大的拉取请求,交换了旧包中的API调用和新包中的API调用。拼写错误就隐藏在这个拉取请求中,该错误将删除Azure SQL数据库的调用替换成删除托管数据库的Azure SQL Server的调用。由于错误的代码只在特定条件下运行,因此没能被现有测试覆盖。


根据Mattingly的事件报告,在将Sprint 222部署到Ring 0(微软的内部Azure DevOps 组织)时,由于其中不存在任何快照数据库,所以没有执行删除作业。几天后,软件更改被部署到南巴西的客户环境Ring 1。该环境中存在能够触发错误的快照数据库,导致后台作业删除了整个Azure SQL Server和所有17个生产数据库。自此不再能处理任何客户流量,所幸数据并未丢失。


一个拼写错误,微软误删了十七个数据库


在此次事件后,微软表示会采取一系列措施以避免未来发生类似的问题。例如确保所有快照数据库创建在不同的Azure SQL Server上,以避免与生产数据库冲突。



编辑:左右里

资讯来源:Microsoft

转载请注明出处和本文链接