早上,接到客户电话,dynamics CRM不能用了,此客户从开始安装程序开始二次开发期间,因电源问题导致服务器多次意外断电,至今也不加UPS电源。前几次,都不是很严重,服务器没有大量文件损坏,操作系统还能正常,远程都可以解决了。

此次,操作系统不正常了,看来问题大了去了。团队人员赶过去,惊呆了。硬盘已坏了一块,数据库没有备份。项目一直因种种原因没有验收,完全还原干净的系统我们只要半小时,但客户使用了一时间,有几万的数据。项目没有验收,先前管理机房人员已辞职,机房在一个全封闭的小仓库中,没有空调,单电源,没有UPS。这种情况,估计再好的服务器也会在高温时挂机。

还好服务器做的raid 5,一块硬盘坏了没有事,但发现在服务器不正常时,遭遇几次意外关机,数据库文件根本不能用,也没有备份。

安先前经验,重新恢复数据,处理几次还是数据质疑,最终去了日志文件,解决了质疑问题。刚松了口气,发现了更大问题。数据库的数据出错了,查询前几千条没事,再多一条就报数据类型,数据值过大等错误。Delete,也不管用。不知各位碰到过这么神奇的问题没,我听说这情况就头大了。

此时,已过了下班时间,当团队其他人都听说此时,全部自动到达客户现场,包括出差刚回济南,包括忙着别的项目,从未接触过此项目的技术人员。大家开始讨论方案,分工合作,发现select 都不能查询导出的数据,可以通过数据库角本生成数据。先将数据角本生成保存出来。一部分人还测试完全解决数据库问题,另一部分人重新生成组织,做了一套全新干净的系统,论证实验怎样通过角本数据还原所有数据。发现原来设计不到50人使用的系统,客户已有200多人用CRM 与呼叫系统,4倍压力,服务器怎么能跑动了?再深入分析数据发现,系统中有一些数据已出错,角本不能直接有,要剔除错误数据,并且修正好再处理,做了很多年系统,第一次处理这样的事。(可能以前都有备份吧)并且这样处理,真是项目浩大工程。最后,发现数据库不可能还原,只能手工修复数据了。

在多数公司中,如果碰到一个与自己无关工作,出现了要出很大力还不敢保证做好的事情,估计多数人会躲的远远的。让我感动之处是,除了我(我在外地出差),都在现场积极处理,分工合作。做过dyanmics crm 多年的同仁们,如果给你一堆角本,剔除错误数据,再分析改正,还原生成到系统中,可能吗?这此问题发生之前,我绝对不相信能搞好。但我们的团队做到了,微软不让开发着动数据库,很多人都不清楚数据放在哪,共享数据在哪,相互关联数据怎样生成。新组织的实体相关数据的ID是会变的。所有这些问题,都在模拟测试一步步攻克,当然团队加班熬夜付出就不谈了。

此次事件,让学深刻学习到了,不可以太纵容客户,实际那是不负责任的;为团队成员感动,让我看到团队很强大,相信我们以后会做得更好。另一方面,对我们云产品CRM早日上线更强烈。

中小企业项目的痛VS感人IT团队的更多相关文章

  1. 团队项目——编写项目的Spec

    团队项目--编写项目的Spec 一.Spec的目标        spec主要用来说明软件的外部功能,和用户的交互情况,主要用来说明软件内部的设计.图片编辑器是与生活息息相关的一个必备软件,随的流行, ...

  2. 干货|人人都是翻译项目的Master

    在平时的工作中,我们都会经常查阅一些英文文档来解决平时遇到的问题和拓宽视野.看到好的文章或者书籍有没有想要和小伙伴分享的冲动,那么我们一起来翻译吧- 翻译主张 "信 达 雅" .& ...

  3. 搜刮一些开源项目的APP

    iOS完整App资源收集 <iOS完整app资源收集>  <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...

  4. 如何修改MyEclipse项目的web context-root

    修改一个MyEclipse项目的名称很容易,右键点项目->rename就行了. 但此时项目的web context-root 还没有改变,需要右键点项目->properties->M ...

  5. 为什么项目的jar包会和tomcat的jar包冲突?

    为什么项目的jar包会和tomcat的jar包冲突? 碰到这个问题,猜测tomcat启动时会将自己的lib和项目的lib在逻辑上归并为一个大的lib,但是并没有做版本区分以及去重,这样相同的包可能就有 ...

  6. spring项目的 context root 修改之后,导致 WebApplicationContext 初始化两次的解决方法

    修改了 spring web 项目的 context root 为 / 之后,在启动项目时,会导致 WebApplicationContext  初始化两次,下面是其初始化日志: 第一次初始化: 四月 ...

  7. 谈谈软件项目的dependency

    说到软件项目的依赖管理,可以从三个方面来考虑: 一.由build system控制的dependency 现在的build system,都支持一定程度上的dependency management, ...

  8. Eclipse中修改Web项目的URL访问路径

    背景 访问路径,也就是指在浏览器中访问该web系统时的根路径,比如http://localhost:8080/xxxx/index.jsp  这里的xxxx,也就是request.getContext ...

  9. 系列文章:老项目的#iPhone6与iPhone6Plus适配#(持续更新中,更新日期2014年10月12日 星期日 )

    本文永久地址为http://www.cnblogs.com/ChenYilong/p/4020399.html ,转载请注明出处. ********************************** ...

随机推荐

  1. ISP图像调试工程师——自动对焦(熟悉3A算法)

    https://wenku.baidu.com/view/40ec4a14fc4ffe473368ab96.html

  2. 模拟源码深入理解Vue数据驱动原理(1)

    Vue有一核心就是数据驱动(Data Driven),允许我们采用简洁的模板语法来声明式的将数据渲染进DOM,且数据与DOM是绑定在一起的,这样当我们改变Vue实例的数据时,对应的DOM元素也就会改变 ...

  3. VMware(bridge、NAT、host-only、custom)含义

    摘自: http://www.liangston.com/?post=48 VMware(bridge.NAT.host-only.custom)含义 作者:LiangSton 发布于:2012-1- ...

  4. 封装实现JavaScript 文件的动态载入功能

    function loadScript(url, callback){ var script = document.createElement ("script") script. ...

  5. Out of office 模板

    I am out of the office until 0X/0X/201X. I will be checking my email regularly.  Please leave a comp ...

  6. CUDA编程札记

    const int N = 33 * 1024; const int threadsPerBlock = 256; const int blocksPerGrid = imin( 32, (N+thr ...

  7. 从服务端架构设计角度,深入理解大型APP架构升级

    随着智能设备普及和移动互联网发展,移动端应用逐渐成为用户新入口,重要性越来越突出.但企业一般是先有PC端应用,再推APP,APP 1.0版的功能大多从现有PC应用平移过来,没有针对移动自身特点考虑AP ...

  8. 关于RecyclerView条目复用

    前言 说下前几天遇到的一个小问题,关于RecyclerView条目选中状态的保存.众所周知,RecyclerView被创造出来用于条目的回收利用,但是,当前面回收的条目带有一些特殊的状态(区别于未选中 ...

  9. 《Java程序猿面试笔试宝典》之 什么是AOP

    AOP(Aspect-Oriented Programming.面向切面编程)是对面向对象开发的一种补充,它同意开发者在不改变原来模型的基础上动态地改动模型从而满足新的需求.比如.在不改变原来业务逻辑 ...

  10. Java学习笔记2、环境变量配置与初学者常见错误

    2.1 环境变量的配置   2.1.1 path环境变量配置的作用 程序的执行需要使用外部指令javac,但是javac指令仅仅能在JDK安装目录下的bin目录下运行,因此程序只能写入bin目录程序开 ...