【运维故事】记一次系统重大升级的经历

来源:运维人那些事儿

ID:jzjytd2016

记一次系统重大升级的经历

时光荏苒,一晃自己从事证券行业信息系统运维工作已逾十年!回顾以往运维经历,历历在目。

作为以利润为中心的证券公司,IT后台支持部门是不直接创造利润的,虽然小到日常业务处理、帐务核算,大到整个公司的经营管理、业务创新和决策支持,背后都由IT系统支撑,但是绝大多数人不了解我们的工作,也许某种程度上存在理解误区,认为系统运转正常是应该的,只有当系统出现故障时,才会意识到我们的存在。但是大家不知道的是系统正常运转的每一天,都离不开有“强迫症”运维人员的默默付出,正能量的说法是岁月静好,是有人为我们负重而行。

作为一个运维人,应该每个人都有些许不同的经历。对于我们集中交易运维小组来说,系统升级的体会却是一样的。在此我就以3.31号周六系统升级为例,来给大家展示系统重大升级的经历。对于承载着一千多万客户的集中交易系统来说,它的实时性很强,对稳定性要求很高,每一次系统重大升级,运维任务都很重,信息技术人员任何小的疏忽和拖拉,就可能造成系统的中断,影响客户群体的数量规模会逐渐放大,就可能给公司带来巨大的经济和声誉损失。所以在升级前期我们会做很多铺垫工作,保证升级万无一失。

01

升级前...

在升级前几周,我们就要开始研究升级包,并仔细检查合并升级包,了解升级变更的具体内容,分析升级后对我们现有系统业务的影响。我们还会和其他券商多做沟通交流,了解他们的升级进展情况,确定版本。同时还需要同开发商保持密切联系,看是否还有对应补充升级包,确保我们的升级补丁包是最佳版本。

考虑到我们历史库数据量庞大,升级时间很长,最长的一次历时将近40小时,因此在系统升级前的周五晚上,正常清算完成后,我们升级了一台历史库,备份另一台历史库数据,这样不仅可以充分利用时间,还能尽早验证历史脚本是否正常,便于在开市前正常完成历史库的升级。

02

升级时...

周六升级当天,我们组织营业部进行全业务的升级验证,因此我们要准备好测试环境。当清晨的天空微微泛白,我们提着家人提前准备好的早餐,坐上了新闻中早高峰拥挤不堪而现在能从头望到尾的空空地铁。7:10到达公司后,开启一天的紧张工作。

首先检查昨晚历史库升级的状态和进度,预估升级时间(其实是判断第二天才能回,还是当天能回J),发现历史库处于正常升级状态后,欣喜若狂,接下来就是升级测试环境的准备工作,譬如删除数据库复制,备份系统数据库、备份行情文件、加挂电话委托测试语音、重启并挂起交易系统数据库、提交测试环境脚本、升级包、设置相关参数等等。

测试验证期间,我们会尽可能多的验证系统的功能,争取覆盖全部业务,同时积极关注内部交流群营业部的测试信息反馈,并同网上交易中心等外围测试人员保持密切沟通,针对提出的问题进行分析,问题是否正常,还是会影响系统的正常运行,并将重要疑问及时反馈开发商,尽可能做到不带疑问升级。

03

升级后...

下午3:30测试完后,根据营业部以及网上交易等参测方测试反馈,没有特别的技术疑问,我们准备正式对生产环境当前交易数据库进行升级。首先我们关闭测试环境,恢复行情文件、恢复电话委托语音,重启所有应用服务器、重启数据库服务器、核对数据,开始升级过程,顺利完成!检查升级日志,一切正常!忍不住内心的欣喜(对于运维人来说,系统一切正常就是最开心的事情),我们继续将灾备系统的数据库升级,再通过生产库建数据库复制模式用于灾备当前库的数据同步,接下来我们将重建DTS数据导出,待所有数据库升级以及复制同步完成后,开启系统完成集中交易系统归档、系统初始化、参数检查等工作,待观察到客户委托正常进入后,已经是晚上11:00,一天的系统升级加班工作终于圆满完成。虽然回到家连眼皮都快睁不开了,心情却无比放松。

以上就是我们一天运维工作的缩影,运维不是每一天都轰轰烈烈,激情澎湃,更多的是一份耐心、一份责任感。运维工作既有万亿行情下高压超长时间“用生命在清算”,系统故障时争分夺秒的紧张处理,系统升级时的披星戴月,也有顺利完成升级后,一起坚守陪伴的兄弟们快乐归巢,品尝锅里温热的爱心加餐,还有休息期间欢乐斗地主、球技对决等等的愉快时光,这一切,是如此的饱满充实,我为我是运维人而自豪!

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2018-05-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

1995
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

922
来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5465
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2996
来自专栏吴小龙同學

时间工具类TimeUtil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...

3056
来自专栏菩提树下的杨过

遍历文件夹所有文件(示例)

//要引用 using System.Collections.Specialized; public StringCollection GetAllFile...

2159
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2288
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1191
来自专栏跟着阿笨一起玩NET

C#巧用Excel模版变成把Table打印出来

转载:http://blog.csdn.net/gwblue/article/details/38865525

1182
来自专栏跟着阿笨一起玩NET

去除DataTable中重复字段

               DataTable tbl = new DataTable();                 tbl.Columns.Add(...

741

扫码关注云+社区