一次上线总结

系统开发,测试结束,最后都期待着上线。上线完之后,就可以暂时告一段落,可以放松放松,做做自己爱做的事情。。。。但是,这次上线,是我有史以来最糟心的一次,今天写此文章,就是给自己提个醒,以后上线必须注意的事项。我很感谢让我跌倒在今天,而不是在我不可一世的将来,我必须重新梳理,坦然面对并牢牢记住。大笑

 

前提:

由于这次使用的数据库是db2,这个数据库也是我第一次接触,之前都是使用oracle,一开始就觉得没啥,反正都差不多,在这点上的大意,以及不上心,为后续的上线埋下了一颗炸弹。

 

上线:

 

时间

内容

17:30

打包文件给运维人员,传到服务器上面去。。。简单。信心十足。。。。。没问题。很简单,很快上线结束,回酒店睡觉。。。。。。。。。大笑

18:00

解压打包文件,修改.bash_profile 环境变量等内容。这个时候还是相当有信心的。。。没问题。很简单,很快上线结束,回酒店睡觉。。。。。。。。。大笑

18:20将项目部署到tomcat7下,启动服务,报了一堆错误,端口被占了。没事,小问题,改端口呗,之前都是用tomcat5,6。tomcat7也是第一次用,他们默认规定是用7,7就7啦,影响不大。改完端口,继续启动,还是报错。那就查看错误。。。。一堆莫名其妙的问题,服务启动了,但是访问服务,访问不到。认真看了下,原来这个7是他们的阉割版的猫,我就怀疑这个猫是不是没阉割干净。一直在我大脑徘徊。。。。吃饭啦。。。。。。害羞,那就先吃饭。。。。
19:00吃完了,不能光我说他的猫有问题啊,得拿出证据。我把webapp下面,我的工程干掉。接着启动猫,启动正常,继续访问服务,一样是有问题,一样不行。一段时间的探讨,继续给出理由吧,在webapp下面新建一个工程,新建WEB-INF ,拷贝web.xml,,新建inde.html.就是模拟一个最简单的工程。。。继续启动,访问,还是不行。哈哈哈。。。。。。。换只猫来吧。。。。大笑
20:00换来一只猫,改完端口,先简单跑起来,访问服务,ok。启动正常。接着把我们的工程放进去,重启。。访问。ok,成功啦。。。。心里那个美啊
20:20接着就做数据的初始化操作。。。你大爷的。。。。。出错了。。。看数据库,数据初始化成功了,但是保存文件的时候出错了。。。这个时候闪过的一个想法就是,是不是sql脚本有问题啊。。不可能啊,在测试环境上面,跑下,没问题啊。查看数据库服务器版本和测试环境会不会一样,也是一样的。。。干啊。。。连接着试了好几次,还是不行,今天人品tmd不行啊。。。。。冷静下奥,,,去喝杯水。嘴巴干啊。得意
21:00在出现问题的时候,最重要的就是冷静。。喝水啊!!!其实在喝水的过程中,虽然我一直看着窗外黑压压的一片,但是心里一直在缕了。。。不着急,不要催,肯定哪里搞错了。10分钟之后,坐下来,修改了jdbc.propertise配置文件,将这个文件配置错误,在测试环境做初始化,最后也是出现一样的问题,数据初始化好了,但是保存配置文件出错了。原因找到了。。。吼吼。。。解释下原因:jdbc.propertise一开始里面的配置文件,是测试环境的,我一开始以为没关系,以为他们这边初始化数据是用A用户进行初始化的,初始化成功之后,对B用户进行授权,给B用户权限,最后使用的是B这个用户,所以我开始想,反正还没用到数据库,没关系,配置文件里面随便配置下,等数据初始化好了,B用户授权好了,再修改。成不想,在保存配置文件的时候,已经调到了数据库,连接失败,保存文件失败。大爷的。。这个异常为什么没有抛呢。。。日志里面都没看到。。哭。先解决问题吧。。。。
22:00数据初始化成功了,看到了胜利的曙光了,后台的部署太简单了。10点了,睡意有点来了。。。。坚持下啊。解压后台服务系统(c写的),修改,数据库配置文件,接着就是编译啦。。这个没事啦,make下而已。。。。oh。。no,编译失败。。。。看看啥子问题吧。没bind权限,那就赋权呗。继续make,终于报出来了这个碉堡的问题:schema不对。。。。。。发火
 这里抱怨下啊:什么鸟毛DB2啊,没有数据还不能编译,有数据了,还得有一大堆的权限。最恶心的就是接下来的schema,你大爷的schema。。。。恼火啊。。。。
22:30之前说了,数据库是用A用户初始化的,接着授权给B用户。所以数据库表的schema是A,而不是B。 这个就是后台在编译的时候遇到的问题。肿么办啊。。。db2 对我来说,完全不知道怎么下手啊。。。找他们的DBA吧。
23:00改初始化数据,修改下sql脚本,把create table的脚本加上schema B。 先做初始化,不对。。这样子不够。COMMENT 也得加上schema ,index也得加上。就这样子来回倒腾,初始化完数据,12点了。。。困啊。平常这个时候,我媳妇早骂我,叫我早点睡觉了。
00:10喝点水吧。。。真心累啊。这些运维的哥们真心好强啊。。晚上都不睡都可以。。。
00:20继续吧哥们。。。继续make。。。。哭,哥啊。还是不行。。还是不行。。。肿么办啊。。。还是这个schema。又讨论,又打电话。找他们领导谈谈,可不可以按测试环境那样子,单独为我们这个系统搞个用户就得了啦,何必搞那么麻烦啊。。。领导淡淡的说:安全问题。。。。。。神马,神马。。。。。。接着就到了1点了我开始紧张了。
01:00那就在换个用户做初始化吧。。。不用A用户做初始化(A是管理员用户)。脚本发给他们DBA,他们自己做初始化,我们不管了。也不用我们程序带的那个初始化方式了。。。哎啊哎啊。。。。等着,等着,就不知不觉到了2点了。。。他们领导走了,说:xx,今天又是上不了,就不要上了,质保测的是什么问题啊,上线都不能上。系统没上线,和质保什么关系啊。。。忍着。
02:00数据库初始化好了。。就这么着吧。。。赶紧make吧。。心想,一下应该ok了。。。。make。。。大哭。又是一个悲催的结果。又编译不过去了。sqc里面报错了,嘿嘿,schema好像没问题了。。。这个麻烦终于解决了。为毛sqc有问题。没招了,打电话给同事,叫他起来看看什么问题。。。
02:30问题找到了,db2客户端的版本不一样。编译依赖的库不一样。都这个点了。 不要闹脾气。上线要紧。重新装个版本,no!!!运维的不装了。那就改sqc吧。让我同事一个个得改,改完继续make,有错继续改。。。就这到了3点多了吧 。接着我基本上没有时间概念了,有点模糊了。。。
03:30终于make通过了。。。。。可是我颓了。那就启动服务吧。。。
04:00系统,验证过程。。。。。基本没问题了,心放下来了。。。。忽然,叫了我一声,我心一抖,一颤。又有问题了。插入对方库的一个sql出错了。异常。那就看日志吧。。。。报的code,我也不懂,就上网找。sql打出来。。。。依然我解决不了。sql没问题。我再一次想到了db2的权限。找他们的dba吧。。。找啊找啊找啊。。。4:30 了应该有了。困了不行。泡个咖啡。终于,他们找到了问题,他们的一次触发器的问题。我根本没心思听了。。解决掉吧。。。求求你了。
05:00这个问题解决了。系统也基本上都验证过了。终端也验证过了。。。。我现在就想躺下,睡觉。快6点了。我先撤了。。。。

 

就这样子,在不断的出问题,不断解决问题的过程中,系统上线了。有史以来最悲催的一次上线。。。但是也是让我最为深思,反省的一次上线。

必须给自己做一个正确的上线指导,必须制定一个正确的上线步骤,必须有一个非常有效的上线沟通。

1,去客户现场测试的时候,测试环境搭建,必须记录下linux服务器的版本,类型。数据库服务器和客户端版本,类型。应用服务器版本。

2,系统用户的权限,数据库用户的权限。数据库用户是否是独立用户。访问对方数据的权限。

3,正式环境是否什么触发器的控制。

 

总之:测试环境什么样的环境,正式环境也必须什么样的环境(基本不可能)。。。。有不一样的地方,也要评估它的风险性。做到提早沟通。引以为戒。

 

上线本来是一件温暖美好的事情,可这一切被我打破了,我的错误行为不配得到原谅,我造成的伤害难以弥补,但我想弥补,必须弥补。所以我回去倒头就睡。。。睡到12点多起来,心里担心系统有其他问题,手机开机了。。。害羞,我还是相当靠谱的。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值