一件大事儿与一些小事儿

前天晚上做了一件“大事”——核心业务系统数据库服务器迁移,用新采购的两台高配服务器代替原有的两台低配。

如果上面只是部署了数据库应用倒也好说。

两台主从复制,主库还好,从库呢,netstat一下监听的东西真不少!其他的业务包括(均要拆分走):

  1. web端合同数据实时备份
  2. 监控服务端
  3. 日志与行为收集服务端
  4. 此处是被忽略了的邮件发送客户端配置

也就是说除了要在新的服务器上部署新的系统(操作系统之前不统一,这次统一了),配置新版本的sql应用(升级为更新的稳定版),目录与用户管理重新做之外,还要考虑任务计划、监控、日志收集……

(由此可见历史包袱之沉重……)

方案内部讨论过之后确定,实施时间最终定为晚上9点到12点。实施团队由基础架构组的我,DBA,两个架构师来进行。9点了,开工!两个架构师在一边玩手机,DBA在聊天。我在电脑前疯狂敲键盘。

凌晨0点2分发出公告邮件,业务系统恢复可用。大伙各自回家睡觉。

那为什么过两天才写出来呢?

当然是继续填坑了。大体如下:

  1. 某近期新加的子系统数据库未迁移过去,导致系统无法使用(业务受影响,好在有备用方案)
  2. 主从复制报错,从库数据查询结果非最新(业务未受影响,部分同事查询受影响)
  3. 上线脚本执行失败,权限原因还有邮件发送功能未启用
  4. 监控未能全部及时恢复。(计划之内)
  5. 远控卡IP变更过程中有一个出现异常无法访问。(计划外,过阵子处理)

除了填坑,还有新的需求要做,新的主从复制,账号管理,上线与系统版本升级等,总之忙碌不堪。

以上是大概情节,没什么营养,分析一下,给大家做个参考:

  • 历史原因很多做的不到位,这是架构初期设计的缺陷,初期没运维,没人设计,能用就好。
  • 说说这次方案中遇到的点滴问题。

方案的设计

事务级别与相应的不对称:

由于这次是数据库迁移,设计所有核心业务的使用,因此注意事项的级别,并据此做出方案设计。

Bad:

一个人写出方案,发给组内同事,总监确认后发送全体通知。

Good:

定性,重大:

首先内部讨论,这个事情要做,要尽快做,需由运维主导、DBA全程辅助,各系统组中产品经理与业务部沟通确定时间安排,技术开发协助后期测试,确保可用无误。

对于方案细节要头脑风暴,多人参与(相关人)要有文档,可逐一排查。

通知的逻辑:

由于没提前和业务部门沟通,因此邮件发出后,他们便以为我们高冷。

应该和各业务部门提前沟通,确认好之后再发邮件。或者即使没沟通,也应在邮件中注明时间冲突的话找谁协调,而不是直接将他们导向boss,这样造成了误会很不好,这里就要强调部门之间的沟通,常常不差于外交层面的艺术和技巧。

时间和工作的安排:

这是近期的第三个(或第四个)重大变动,每次都有后续工作需要处理,均属于重要不紧急的,本应该紧跟步伐去做,但往往新的需求下达,难以抽取时间处理。

一堆小事儿不做好将变成一个大事儿,要解决一个大事,则要弄好每一件小事儿。

时间: 2024-10-14 06:50:57

一件大事儿与一些小事儿的相关文章

关于哲哲跳舞这件小事儿

前言 诗人 Stanis?aw_Jerzy_Lec 说过一句话:雪崩的时候,没有一片雪花是无辜的.哲哲的成长和每一位亲人都密切相关,今天我想谈谈关于哲哲跳舞这件小事儿. 初心 我们常常说一句话,叫做不忘初心,方得始终.做一件事情不要忘记了最初的目的是什么,既然叫做舞蹈兴趣学习班,那么重点就在"兴趣"和"学习",培养兴趣爱好作为一项软技能,让孩子感受到学习的乐趣,同时能够锻炼身体和开发智力,这是我们的初心.而一旦这种活动让孩子产生了逆反心理甚至是厌恶,那么这就和原来的

方荡畀食几鞭噉嘅小事儿!波澜都唔带兴起一啲嘅

方荡呢边不过系一个细插曲,甚至乎小插曲都算唔上,喺呢座云镌丹炉之下,聚集住六万火奴,仲有几万喺其他地方抓获嘅奴隶,再加看管嘅军卒,近十万人,方荡畀食几鞭噉嘅小事儿!波澜都唔带兴起一啲嘅.喺云镌丹炉对面专竖立住一座同云镌丹炉一路高楼阁. http://bbs.elecfans.com/user/3345582/ 药督就可以喺火毒城之中打横走咗,即便系火毒城中嘅大小官员们撞到咗手持抄药舂嘅儿童,都得恭敬嘅称呼一声细药师.两个儿童其中一个双目狭长,身材匀称而强健,目光坚毅,内有宿慧光泽,一睇就只能够成

[小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)

[小细节,大BUG]  1. 在不久前,一个朋友出现了这样一个BUG:当UITableView加载cell的时候,自定义的cell,怎么显示,里面的文字总是显示不完全(注意,文字不长).然后,我帮忙给看了下,甚至把在storyBoard中将cell的相关属性都试了下,虽然可以解决,但是效果不理想.最终经过排查,终于发现问题所在:当自定义cell时,因为需要布局子控件,所以他重写了layoutSubviews方法,然而在此方法中没有调用[super layoutSubviews],所以造成了布局混

【ASP.net控件】DropDownList数据绑定一个小bug

绑定数据出现这种情况,明明在第一项插入了一条数据,却始终在DropDownList中没有显示出来. 代码如下: if (!IsPostBack) { //绑定城市 DataTable dtCity = new HighSearch().GetCitySelect(); DropDownList1.DataSource = dtCity; DropDownList1.DataValueField = "citycode"; DropDownList1.DataTextField = &q

java 11-8 在大串中查找小串的案例

1.统计大串中小串出现的次数 举例: 在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun" 结果: java出现了5次 分析: 1.首先已经知道字符串 A:定义一个统计变量=0: B:在大串中查找小串是否存在,用 int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引. a:如果返回的索引值是-1,则说明 大串中并不存在这个小串,输出统计变量 b:返回

Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9

Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9 1. 主要的涉及的技术 1 2. 主要的流程 1 3. 调用法new confirmO9t(); 1 4. 设置确认在后的回溯事件 c.backHandle="window.opener.confirmSubmitBackeventHandle"; 2 5. 设置详细表格显示模板  c.tmplt="/publish/lookOverdetail_templt.jsp";

博客转移阵地——Zeakhold‘s Blog|关注大前端,折腾小后台~

现在不在博客园写博客了,自己另外搭了个博客:www.zeakhold.com——Zeakhold‘s Blog|关注大前端,折腾小后台~ 欢迎访问~

Linux大文件快速处理小方法

背景 工作中使用MapReduce任务导出一批含有路径的文件,共计行数300W+,需要检测文件是否在对应的服务器中存在,而文件所在的服务器并非hadoop集群的服务器,因此打算采用bash脚本进行.具体的方法如下(可直接看方法2,方法1效率较低): 2. 采用的方法 a. 方法1 原本打算使用如下脚本,进行简单验证: #!/bin/bash count=0 cat oriTest.txt | while read data do count=$(( $count+1 )) echo $count

开大Stack的一个小技巧

在程序头部添加一行 #pragma comment(linker, "/STACK:16777216") 可有效开大堆栈 实验效果如下: 11330179 2014-08-05 18:28:17 Wrong Answer 4920 1687MS 7776K 1327 B C++ Jeremy_wu 11272238 2014-07-31 19:50:26 Wrong Answer 4891 62MS 2368K 1402 B G++ Jeremy_wu 下面是没添加这一行的运行结果 上