原定于上周四进行一个项目的改版上线,结果由于各方面原因一拖再拖,直到昨天,终于开始上了。
但无巧不成书,昨天主管请假了,我只能和组内的另一个人上,生怕会出现什么问题,可怕什么来什么。中间还是出事了,造成线上的系统访问时页面直接出来了错误堆栈,我当时都傻眼了,经查是新发布的模板与原来的模板不兼容造成的,可我又太自信了,更新模板时,原模板的内容并没有备份,所以也无法回退到可用的状态,还好DBA用备份数据进行了恢复,虽然上线操作加入的数据都没有了,至少保证用户可以访问。
这事的影响很不好,主管听说后很是生气,直接在电话里把我责备了一顿,我只能默默承受。客观的说,我的发布操作和预发布操作是一样的,没有什么错误,但问题在于,我们的新版本和线上的原来版本的某些类发生冲突了,而这种冲突是不可替换的。在线上测试的时候,我们也忽略了这种可能,于是导致了无法按新版上线。
接下来的两天,我们则忙于比对导致冲突的新旧版本的所有情况并逐个更新,直到今天下午,更新终于完成。虽然完成了,但这是一次失败的更新,有很多问题本来是可以避免的,同时有很多东西需要总结。
首先是备份问题,虽然这不是导致本次更新失败的主要原因,但却是直接原因。如果我在更新模板时先对原模板做一个备份的话,那么即使有问题了,我也能快速的回退,不至于采用万不得已的全数据库恢复,而且也可以少做那么多的无用功。
其次是版本冲突问题,在线下测试时,我们只是将线上的最新数据结构导到了线下进行修改,却忽略了类及逻辑的变化,从而导致了不一致,所以,在做版本升级的时候,一定要基于上一次的版本做改动,而且要清楚本次的修改会对原版本的哪些方面产生影响,是不是可以做到无缝更新。
第三是程序的关联问题,为了避免第二点的冲突,我们其实是做了一些准备的,就是我们线上有两台服务器,上线时,先将流量导到另一台,空出一台专门发布新版本,等线上测试完毕,再做同步操作。但问题是,由于两台机器使用的相同的缓存数据库,导致在一下发布新版本时,会同时根据缓存数据更新两台机器的某些模板文件,这样实际上是没有做到隔离发布,也就避免不了产生问题。
第四是人为问题,这主要是我的问题,因为这个项目的更新主要由我来做,由于我考虑不周,没有整理好版本间的差异,也没有预见更新版本可能出现的问题,如果我自己在线下测试这一环境充分考虑这些问题的话,那就能在线下解决,不至于产生线上错误。
这是一个很严重的失误,一定要汲取教训,尤其是备份,我在这方面一直做得很差。
分享到:
相关推荐
### Linux版本发布操作知识点 #### 一、理解Linux版本发布操作流程 在Linux环境中进行版本发布操作时,通常涉及以下几个关键步骤:准备环境、备份现有应用、部署新版本以及重启服务。下面将针对这些步骤进行详细...
在使用SVN的过程中,需要注意以下几点: - 在进行重要操作之前,最好先备份工作副本。 - 定期检查工作副本的状态,确保没有未提交的更改丢失。 - 如果遇到冲突,仔细检查差异并谨慎解决。 #### 多文件/文件夹 SVN...
HCI 6.9.0 版本发布预估 11 月 2 日的主要内容包括开发需求交付进展、测试进展、变更需求说明等几个方面。下面将对这些内容进行详细的解释和知识点总结。 一、开发需求交付进展 开发需求交付进展部分主要介绍了 ...
C 语言程序设计知识点总结 C 语言是一种广泛应用的高级编程语言,它具有许多特点和优点,例如短小精悍、运算符丰富、数据结构丰富、提供了某些与汇编语言相似的功能、程序可移植性好等。 C 语言的特点 C 语言有...
在使用Struts 2.3.28.1时,开发者需要注意以下几点: 1. **迁移指南**:升级到新版本前,需阅读官方的迁移指南,了解可能的API变更和配置调整。 2. **测试**:更新后进行全面的单元测试和集成测试,确保所有功能...
【工作总结 (版本5).pptx】是一个用于骨干员工、中层经理和商务人士的工作总结报告模板,旨在提供一个结构化的方式来展示个人或团队在特定时期内的工作成果、经验教训和未来规划。以下是对该模板中可能包含的关键...
以上知识点在"JAVA知识点总结思维导图(xmind)"中可能以思维导图的形式详细展开,包括每个主题的子话题和相关实例,帮助学习者系统地理解和掌握Java编程。通过深入学习和实践这些知识点,可以成为一名熟练的Java...
### Java知识点总结 #### Java的发展历程 Java编程语言起源于1995年,最初名为Oak,由Sun Microsystems开发,最初是为家庭设备控制系统而设计的。然而由于Oak这个名字已经注册,加上Sun公司意识到Oak语言非常适合...
根据文件内容,我们可以提炼出关于计算机基础知识点的几个方面进行总结。 首先,文件中多次提及的Windows XP是微软公司发布的一个操作系统版本,是Windows 2000的后继版本,其正式发布于2001年。Windows XP提供了...
在进行项目版本转换时,需要注意以下几点: - **依赖库的兼容性**:升级项目版本时,确保所有依赖的库和组件也兼容新版本的开发环境,否则可能需要更新或替换这些依赖。 - **代码变动**:新版本的VS可能引入了语言...
当 AT&T 推出 System V Release 4 (第五版本的第四次正式发布产品)之后,它和伯克利的 4.3BSD 已经形成了当前 Unix 的两大流派。 二、 Linux 操作系统 Linux 是一个完全免费的与 Unix 兼容的操作系统,运行在非常...
### 测试总结报告知识点 #### 一、测试总结报告概览 测试总结报告是在一系列测试活动完成后编制的一份重要文档,旨在向项目经理和其他关键利益相关者汇报系统的测试情况及其是否达到预期的质量标准。该报告提供了...
在具体操作中,我们可能需要关注以下几点: 1. **依赖管理**:确保项目中没有与jar包冲突的其他库。如果有,可能需要调整版本或使用排除机制避免冲突。 2. **版本兼容性**:确认jar包的Java版本与项目的JDK版本相...
在Visual Studio 2005中发布网站,首先需要确认以下几点: - **软件要求**:必须使用Visual Web Developer,而Visual Web Developer Express Edition不支持“发布网站”功能。 - **服务器访问**:需确保能访问IIS,...
打包过程中需要注意以下几点: - **版本号管理**:确保每个版本都有唯一的版本号。 - **依赖项检查**:检查并打包所有必要的依赖库。 - **兼容性测试**:在不同的操作系统和环境中进行兼容性测试。 - **安全加固**:...
本文档是关于 ITSS 服务管理体系文件中的发布管理程序修改记录,以下是对该文档的详细解读和知识点总结。 一、目的 在 ITSS 服务管理体系文件中,发布管理程序是确保服务发布过程的顺畅和可靠性。该程序的目的在于...
根据提供的标题、描述以及部分代码内容,可以总结出几个关键点: 1. **IIS服务配置问题**:这通常涉及到IIS服务本身的安装与配置是否正确。 2. **权限问题**:应用程序在服务器上运行时,可能因为缺乏相应的文件...
最后,本文总结了创办中文学术期刊《新能源进展》的几点感悟,包括树立精品和名牌的创新意识、扎实的举措和不懈的努力等。同时,本文也抛出了《新能源进展》创刊两年以来取得的成绩和解决稿源危机等关键问题的举措,...
结合以上信息,我们可以探讨以下几点可能涵盖的知识点: 1. **会员服务系统架构**:会员平台的后台架构设计,可能包括数据库模型、服务器集群配置、缓存策略等。 2. **用户增长分析**:会员数量的增长趋势,新用户...
在使用Rampart的过程中,有几点总结可以帮助提高效率: 1. **集成与配置**:将Rampart添加到Axis2配置中是第一步,这通常通过将Rampart的mar文件放入Axis2的modules目录下完成。接着,需要在服务级别或全局级别配置...